Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/toolkit/components/telemetry/core/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  TelemetryScalar.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef TelemetryScalar_h__
#define TelemetryScalar_h__

#include <stdint.h>
#include "mozilla/TelemetryProcessEnums.h"
#include "mozilla/TelemetryScalarEnums.h"
#include "nsTArray.h"
#include "TelemetryCommon.h"

// This module is internal to Telemetry. It encapsulates Telemetry's
// scalar accumulation and storage logic. It should only be used by
// Telemetry.cpp. These functions should not be used anywhere else.
// For the public interface to Telemetry functionality, see Telemetry.h.

namespace mozilla {
namespace Telemetry {
struct ScalarAction;
struct KeyedScalarAction;
struct DiscardedData;
struct DynamicScalarDefinition;
}  // namespace Telemetry
}  // namespace mozilla

namespace TelemetryScalar {

void InitializeGlobalState(bool canRecordBase, bool canRecordExtended);
void DeInitializeGlobalState();

void SetCanRecordBase(bool b);
void SetCanRecordExtended(bool b);

// JS API Endpoints.
nsresult CreateSnapshots(unsigned int aDataset, bool aClearScalars,
                         JSContext* aCx, uint8_t optional_argc,
                         JS::MutableHandle<JS::Value> aResult, bool aFilterTest,
                         const nsACString& aStoreName);

// Keyed JS API Endpoints.
nsresult CreateKeyedSnapshots(unsigned int aDataset, bool aClearScalars,
                              JSContext* aCx, uint8_t optional_argc,
                              JS::MutableHandle<JS::Value> aResult,
                              bool aFilterTest, const nsACString& aStoreName);

// C++ API Endpoints.
void Add(mozilla::Telemetry::ScalarID aId, uint32_t aValue);
void Set(mozilla::Telemetry::ScalarID aId, uint32_t aValue);
void Set(mozilla::Telemetry::ScalarID aId, const nsAString& aValue);
void Set(mozilla::Telemetry::ScalarID aId, bool aValue);

// Keyed C++ API Endpoints.
void Add(mozilla::Telemetry::ScalarID aId, const nsAString& aKey,
         uint32_t aValue);
void Set(mozilla::Telemetry::ScalarID aId, const nsAString& aKey,
         uint32_t aValue);
void Set(mozilla::Telemetry::ScalarID aId, const nsAString& aKey, bool aValue);

nsresult RegisterScalars(const nsACString& aCategoryName,
                         JS::Handle<JS::Value> aScalarData, JSContext* cx);

// Event Summary
void SummarizeEvent(const nsCString& aUniqueEventName,
                    mozilla::Telemetry::ProcessID aProcessType);

// Only to be used for testing.
void ClearScalars();

size_t GetMapShallowSizesOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf);
size_t GetScalarSizesOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf);

void UpdateChildData(
    mozilla::Telemetry::ProcessID aProcessType,
    const nsTArray<mozilla::Telemetry::ScalarAction>& aScalarActions);

void UpdateChildKeyedData(
    mozilla::Telemetry::ProcessID aProcessType,
    const nsTArray<mozilla::Telemetry::KeyedScalarAction>& aScalarActions);

void RecordDiscardedData(
    mozilla::Telemetry::ProcessID aProcessType,
    const mozilla::Telemetry::DiscardedData& aDiscardedData);

void GetDynamicScalarDefinitions(
    nsTArray<mozilla::Telemetry::DynamicScalarDefinition>&);
void AddDynamicScalarDefinitions(
    const nsTArray<mozilla::Telemetry::DynamicScalarDefinition>&);

/**
 * Append the list of registered stores to the given set.
 * This includes dynamic stores.
 */

nsresult GetAllStores(mozilla::Telemetry::Common::StringHashSet& set);
}  // namespace TelemetryScalar

#endif  // TelemetryScalar_h__

Messung V0.5
C=84 H=100 G=92

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.