nl::Weave::Profiles::DataManagement_Current

Questo spazio dei nomi include tutte le interfacce all'interno di Weave per il profilo Weave Data Management (WDM) attualmente supportate per l'uso in produzione.

Riepilogo

Enumerazioni

@100{
  kTag_Region = 1,
  kTag_Message = 2
}
enum
Tag per kNestDebug_StringLogEntryEvent.
@101{
  kTag_Token = 1,
  kTag_Args = 2
}
enum
Tag per kNestDebug_TokenizedLogEntryEvent.
@102 enum
Tag per eventi persistenti.
@104 enum
I tipi di messaggi del profilo WDM.
@105 enum
Codici di stato specifici di WDM.
@147 enum
@95{
  kTag_CurrentImportance = 1,
  kTag_ImportanceExpiration,
  kTag_MinimumLogUploadInterval,
  kTag_MaximumLogUploadInterval,
  kTag_LoggingDestination,
  kTag_TraitLoggingImportance
}
enum
Tag Impostazioni di Logging.
@96{
  kTag_SupportedLogTransports = 1,
  kTag_SupportsStreaming = 2,
  kTag_SupportsNonVolatileStorage = 3,
  kTag_SupportsPerTraitVerbosity = 4,
  kTag_LoggingVolume = 5,
  kTag_LogBufferingCapacity = 6
}
enum
Tag per le funzionalità di logging.
@97{
  kTag_EventSource = 1,
  kTag_EventImportance = 2,
  kTag_EventID = 3,
  kTag_RelatedEventImportance = 10,
  kTag_RelatedEventID = 11,
  kTag_EventUTCTimestamp = 12,
  kTag_EventSystemTimestamp = 13,
  kTag_EventResourceID = 14,
  kTag_EventTraitProfileID = 15,
  kTag_EventTraitInstanceID = 16,
  kTag_EventType = 17,
  kTag_EventDeltaUTCTime = 30,
  kTag_EventDeltaSystemTime = 31,
  kTag_EventData = 50,
  kTag_ExternalEventStructure = 99
}
enum
Tag per i metadati degli eventi.
@98 enum
Definizioni dei profili per il trait di debug.
@99{
  kNestDebug_StringLogEntryEvent = 1,
  kNestDebug_TokenizedLogEntryEvent = 2,
  kNestDebug_TokenizedHeaderEntryEvent = 3
}
enum
Tipi di eventi per il trait di debug Nest.
CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
ImportanceType{
  ProductionCritical = 1,
  Production,
  Info,
  Debug
}
enum
L'importanza della voce di log.
LoggingManagementStates{
  kLoggingManagementState_Idle = 1,
  kLoggingManagementState_InProgress = 2,
  kLoggingManagementState_Holdoff = 3,
  kLoggingManagementState_Shutdown = 4
}
enum
TimestampType enum
La validità e il tipo di timestamp inclusi in EventOptions.

Typedef

CommandFlags typedef
DataVersion typedef
uint64_t
EventProcessor typedef
void *
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData) typedef
Una funzione che fornisce l'elemento eventData per il sottosistema di logging degli eventi.
FetchExternalEventsFunct)(EventLoadOutContext *aContext) typedef
Un prototipo di funzione per i callback della piattaforma che recuperano i dati degli eventi.
GenericTraitSinkCatalog typedef
GenericTraitSourceCatalog typedef
ImportanceType typedef
L'importanza della voce di log.
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext) typedef
void(*
Iteratore per la gestione dei trait.
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer) typedef
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID) typedef
void(*
Un prototipo di funzione per un callback attivato quando vengono consegnati eventi esterni all'abbonato remoto.
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv) typedef
void(*
Un prototipo di funzione per un callback attivato quando gli eventi esterni vengono eliminati dai buffer.
PropertyDictionaryKey typedef
uint16_t
PropertyPathHandle typedef
uint32_t
Un PropertyPathHandle è un hash numerico univoco a 32 bit di un percorso WDM rispetto alla radice di un'istanza trait.
PropertySchemaHandle typedef
uint16_t
SchemaVersion typedef
uint16_t
SingleResourceSinkTraitCatalog typedef
SingleResourceSourceTraitCatalog typedef
TimestampType typedef
La validità e il tipo di timestamp inclusi in EventOptions.
TraitDataHandle typedef
uint16_t
duration_t nl::Weave::Profiles::DataManagement_Current::duration_t
uint32_t
Tipo utilizzato per descrivere la durata, in millisecondi.
event_id_t nl::Weave::Profiles::DataManagement_Current::event_id_t
uint32_t
Il tipo di ID evento.
timestamp_t nl::Weave::Profiles::DataManagement_Current::timestamp_t
uint32_t
Tipo utilizzato per descrivere il timestamp in millisecondi.
utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::utc_timestamp_t
uint64_t
Tipo utilizzato per descrivere il timestamp UTC in millisecondi.

Variabili

sInstance
sLogFileName = "topazlog"[]
char

Funzioni

BdxErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, WEAVE_ERROR aErrorCode)
void
BdxGetBlockHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aIsLastBlock)
void
BdxRejectHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aReport)
void
BdxSendAcceptHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg)
BdxXferDoneHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer)
void
BdxXferErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aXferError)
void
CreatePropertyPathHandle(PropertySchemaHandle aPropertyPathSchemaId, PropertyDictionaryKey aPropertyPathDictionaryKey)
EventWriterTLVCopy(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Una funzione helper che converte un elemento eventdata già serializzato nel buffer degli eventi.
GetPropertyDictionaryKey(PropertyPathHandle aHandle)
PropertyDictionaryKey
GetPropertySchemaHandle(PropertyPathHandle aHandle)
PropertySchemaHandle
IsNullPropertyPathHandle(PropertyPathHandle aHandle)
bool
IsRootPropertyPathHandle(PropertyPathHandle aHandle)
bool
IsVersionNewer(const DataVersion & aVersion, const DataVersion & aReference)
bool
Si tratta di un'implementazione ottimizzata dell'algoritmo per confrontare le versioni.
IsVersionNewerOrEqual(const DataVersion & aVersion, const DataVersion & aReference)
bool
Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog)
Funzione di utilità che trova un TraitUpdatableDataSink in un catalogo TraitDataSink.
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
Registra un evento da un modulo preserializzato.
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
Registra un evento da un modulo preserializzato, con opzioni aggiuntive.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
Registra un evento tramite callback.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Registra un evento tramite callback, con le opzioni disponibili.
LogFreeform(ImportanceType inImportance, const char *inFormat, ...)
LogFreeform emette una stringa in formato libero nel flusso di eventi predefinito.
LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Una funzione helper per emettere un testo in formato libero come evento di debug.
PlainTextWriter(::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Una funzione helper per emettere un testo in formato libero come evento di debug.
operator!=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool
operator==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool

Corsi

nl::Weave::Profiles::DataManagement_Current::AlwaysAcceptDataElementAccessControlDelegate
nl::Weave::Profiles::DataManagement_Current::BuilderBase

Classe di base per i codificatori di messaggi WDM.

nl::Weave::Profiles::DataManagement_Current::CircularEventReader

Un TLVReader supportato da CircularEventBuffer.

nl::Weave::Profiles::DataManagement_Current::Command
nl::Weave::Profiles::DataManagement_Current::CommandSender
nl::Weave::Profiles::DataManagement_Current::GenericTraitCatalogImpl

Un'implementazione Weave ha fornito l'implementazione dell'interfaccia TraitCatalogBase per una raccolta di istanze di dati sui trait che fanno tutte riferimento alla stessa risorsa.

nl::Weave::Profiles::DataManagement_Current::IDataElementAccessControlDelegate

Interfaccia che deve essere implementata da un responsabile del trattamento degli elementi di dati in un oggetto NotifyRequest.

nl::Weave::Profiles::DataManagement_Current::IDirtyPathCut
nl::Weave::Profiles::DataManagement_Current::IPathFilter
nl::Weave::Profiles::DataManagement_Current::IWeavePublisherLock

Interfaccia che deve essere implementata dall'app per serializzare l'accesso alle principali strutture di dati WDM.

nl::Weave::Profiles::DataManagement_Current::IWeaveWDMMutex

Interfaccia di un oggetto mutex.

nl::Weave::Profiles::DataManagement_Current::ListBuilderBase

Classe base per i codificatori di messaggi WDM, specializzata in elementi array TLV come elenchi di dati ed elenchi di versioni.

nl::Weave::Profiles::DataManagement_Current::ListParserBase

Classe base per analizzatori sintattici di messaggi WDM, specializzata in elementi array TLV come elenchi di dati ed elenchi di versioni.

nl::Weave::Profiles::DataManagement_Current::LogBDXUpload
nl::Weave::Profiles::DataManagement_Current::LoggingConfiguration

LoggingConfiguration incapsula il componente configurabile del sottosistema Logging dell'evento Weave Event.

nl::Weave::Profiles::DataManagement_Current::LoggingManagement

Una classe per la gestione dei log eventi in memoria.

nl::Weave::Profiles::DataManagement_Current::NotificationEngine
nl::Weave::Profiles::DataManagement_Current::ParserBase

Classe di base per i parser di messaggi WDM.

nl::Weave::Profiles::DataManagement_Current::ResourceIdentifier

Struttura che incapsula l'ID di una risorsa.

nl::Weave::Profiles::DataManagement_Current::SingleResourceTraitCatalog
nl::Weave::Profiles::DataManagement_Current::SubscriptionClient
nl::Weave::Profiles::DataManagement_Current::SubscriptionEngine

Si tratta di un singleton che ospita tutti gli abbonamenti WDM Next, sia lato client che lato publisher.

nl::Weave::Profiles::DataManagement_Current::SubscriptionHandler
nl::Weave::Profiles::DataManagement_Current::TraitCatalogBase
nl::Weave::Profiles::DataManagement_Current::TraitDataSink
nl::Weave::Profiles::DataManagement_Current::TraitDataSource
nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine

Il motore dello schema prende le informazioni sullo schema associate a un particolare tratto e fornisce servizi per analizzarle e tradurle in un modulo utilizzabile dai macchinari WDM.

nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink
nl::Weave::Profiles::DataManagement_Current::UpdateClient
nl::Weave::Profiles::DataManagement_Current::UpdateDictionaryDirtyPathCut

Classe di utilità per reinserire il dizionario nella coda in attesa durante l'elaborazione del percorso della proprietà contenente l'elemento secondario del dizionario.

nl::Weave::Profiles::DataManagement_Current::UpdateDirtyPathFilter

Classe di utilità per filtrare il percorso durante la gestione della notifica.

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

Questo oggetto codifica i payload WDM UpdateRequest e PartialUpdateRequest.

nl::Weave::Profiles::DataManagement_Current::ViewClient

Strutture

nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer

Buffer interno degli eventi, basato su nl::Weave::TLV::WeaveCircularTLVBuffer.

nl::Weave::Profiles::DataManagement_Current::ConstSchemaVersionRange
nl::Weave::Profiles::DataManagement_Current::CopyAndAdjustDeltaTimeContext

Struttura interna per l'elenco di eventi di attraversamento.

nl::Weave::Profiles::DataManagement_Current::DebugLogContext
nl::Weave::Profiles::DataManagement_Current::DetailedRootSection

La struttura che fornisce una massima risoluzione dell'istanza del trait.

nl::Weave::Profiles::DataManagement_Current::EventEnvelopeContext

Struttura interna per gli eventi.

nl::Weave::Profiles::DataManagement_Current::EventLoadOutContext

Struttura per la copia degli elenchi di eventi nell'output.

nl::Weave::Profiles::DataManagement_Current::EventOptions

La struttura che fornisce opzioni per i diversi campi evento.

nl::Weave::Profiles::DataManagement_Current::EventSchema

La struttura che definisce uno schema per i metadati degli eventi.

nl::Weave::Profiles::DataManagement_Current::ExternalEvents

Struttura per il monitoraggio degli eventi archiviati dalla piattaforma.

nl::Weave::Profiles::DataManagement_Current::LogStorageResources

Una classe helper utilizzata per l'inizializzazione della gestione del logging.

nl::Weave::Profiles::DataManagement_Current::ReclaimEventCtx
nl::Weave::Profiles::DataManagement_Current::SchemaVersionRange
nl::Weave::Profiles::DataManagement_Current::TraitPath
nl::Weave::Profiles::DataManagement_Current::TraitPathStore
nl::Weave::Profiles::DataManagement_Current::VersionedTraitPath

Unione

nl::Weave::Profiles::DataManagement_Current::Timestamp

L'unione che fornisce un sistema set di applicazioni o un timestamp UTC.

Spazi dei nomi

nl::Weave::Profiles::DataManagement_Current::BaseMessageWithSubscribeId
nl::Weave::Profiles::DataManagement_Current::CustomCommand

Definizione del comando personalizzato WDM.

nl::Weave::Profiles::DataManagement_Current::CustomCommandResponse

Definizione della risposta del comando personalizzato WDM.

nl::Weave::Profiles::DataManagement_Current::DataElement

Definizione dell'elemento di dati WDM.

nl::Weave::Profiles::DataManagement_Current::DataList
nl::Weave::Profiles::DataManagement_Current::Event
nl::Weave::Profiles::DataManagement_Current::EventList
nl::Weave::Profiles::DataManagement_Current::NotificationRequest
nl::Weave::Profiles::DataManagement_Current::Path

Definizione del percorso WDM.

nl::Weave::Profiles::DataManagement_Current::PathList

Definizione dell'elenco di percorso WDM.

nl::Weave::Profiles::DataManagement_Current::Platform
nl::Weave::Profiles::DataManagement_Current::RejectionRecord
nl::Weave::Profiles::DataManagement_Current::RejectionRecordList
nl::Weave::Profiles::DataManagement_Current::StatusElement

Definizione dell'elemento di stato WDM.

nl::Weave::Profiles::DataManagement_Current::StatusList
nl::Weave::Profiles::DataManagement_Current::SubscribeCancelRequest
nl::Weave::Profiles::DataManagement_Current::SubscribeConfirmRequest
nl::Weave::Profiles::DataManagement_Current::SubscribeRequest
nl::Weave::Profiles::DataManagement_Current::SubscribeResponse
nl::Weave::Profiles::DataManagement_Current::UpdateRequest

Definizione della richiesta di aggiornamento WDM.

nl::Weave::Profiles::DataManagement_Current::UpdateResponse
nl::Weave::Profiles::DataManagement_Current::VersionList
nl::Weave::Profiles::DataManagement_Current::ViewRequest
nl::Weave::Profiles::DataManagement_Current::ViewResponse

Enumerazioni

@100

 @100

Tag per kNestDebug_StringLogEntryEvent.

Proprietà
kTag_Message

Una stringa contenente il messaggio di debug effettivo.

kTag_Region

Un segno non firmato a 32 bit che indica la regione di log, ovvero il modulo a cui appartiene il messaggio di log.

@101

 @101

Tag per kNestDebug_TokenizedLogEntryEvent.

Proprietà
kTag_Args

Un array di argomenti da inviare insieme al messaggio token.

kTag_Token

Un valore senza segno a 32 bit corrispondente al token.

@102

 @102

Tag per eventi persistenti.

@104

 @104

I tipi di messaggi del profilo WDM.

Questi valori vengono richiamati nella specifica di gestione dei dati.

@105

 @105

Codici di stato specifici di WDM.

@147

 @147

@95

 @95

Tag Impostazioni di Logging.

Proprietà
kTag_CurrentImportance

Attuale importanza del logging, il valore è di tipo ImportanceType.

kTag_ImportanceExpiration

L'ora, in secondi UTC, in cui le attuali impostazioni di logging elevato vengono ripristinate ai valori predefiniti.

kTag_LoggingDestination

Un URL che indica la destinazione del caricamento del log.

kTag_MaximumLogUploadInterval

Durata massima, in secondi, tra i tentativi di caricamento dei log attivati automaticamente.

kTag_MinimumLogUploadInterval

Durata minima, in secondi, tra i tentativi di caricamento dei log attivati automaticamente.

kTag_TraitLoggingImportance

Un array facoltativo che mappa selettivamente i profili scelti sui livelli di logging più elevati.

Ogni elemento dell'array assume un formato (profile,path,loggingimportance) per elevare selettivamente il logging da un sottoinsieme del sistema. La priorità di logging del profilo elevata è importante solo quando la priorità di logging supera quella di currentImportance ed è soggetta alla stessa scadenza dell'currentImportance.

@96

 @96

Tag per le funzionalità di logging.

Proprietà
kTag_LogBufferingCapacity

Un numero intero senza segno a 32 bit che descrive la capacità di buffering dei log in kB.

kTag_LoggingVolume

Un numero intero senza segno a 32 bit che descrive il volume di logging previsto in kB/giorno.

kTag_SupportedLogTransports

Una serie di meccanismi di trasporto dei log supportati.

kTag_SupportsNonVolatileStorage

Un valore booleano che indica se il dispositivo supporta l'archiviazione dei log permanente.

kTag_SupportsPerTraitVerbosity

Un valore booleano che indica se il dispositivo supporta le impostazioni di Preferenze di lettura per Trait.

kTag_SupportsStreaming

Un valore booleano che indica se il dispositivo supporta il flusso di log.

@97

 @97

Tag per i metadati degli eventi.

Per la semantica completa dei valori dei tag, vedere la specifica della progettazione dell'evento.

Proprietà
kTag_EventData

Campo facoltativo. Dati sugli eventi stessi. Se vuoto, per impostazione predefinita viene mostrata una struttura vuota.

kTag_EventDeltaSystemTime

Tag interno WDM, differenza di tempo rispetto all'evento precedente nella codifica.

kTag_EventDeltaUTCTime

Tag interno WDM, differenza di tempo rispetto all'evento precedente nella codifica.

kTag_EventID

Numero di sequenza dell'evento, espresso come quantità senza firma a 64 bit.

Deve essere sequenziale; i salti della sequenza indicano lacune negli eventi.

kTag_EventImportance

Importanza dell'evento.

kTag_EventResourceID

Campo facoltativo.

Il valore è l'ID della risorsa a cui appartiene l'evento. Se omesso, il valore corrisponde a quello di kTag_EventSource

kTag_EventSource

NodeID del dispositivo che ha generato l'evento.

kTag_EventSystemTimestamp

Campo facoltativo. Timestamp di sistema dell'evento in millisecondi.

kTag_EventTraitInstanceID

(Facoltativo) L'istanza del trait che ha generato l'evento.

kTag_EventTraitProfileID

Obbligatorio. Numero intero senza segno a 32 bit uguale al ProfileID del trait.

kTag_EventType

Obbligatorio. Numero intero senza segno a 16 bit uguale a wdl.event.id per questo tipo di evento.

kTag_EventUTCTimestamp

Campo facoltativo. Timestamp UTC dell'evento in millisecondi.

kTag_ExternalEventStructure

Tag interno per eventi esterni. Non deve mai essere trasmessa attraverso il cavo e non deve mai essere utilizzata al di fuori della raccolta Weave.

kTag_RelatedEventID

Campo facoltativo.

ID di un evento a cui è correlato l'evento. Se omesso, il valore corrisponde al valore di kTag_EventID.

kTag_RelatedEventImportance

Campo facoltativo.

Importanza dell'evento correlato. Se omesso, il valore corrisponde al valore di kTag_EventImportance.

@98

 @98

Definizioni dei profili per il trait di debug.

@99

 @99

Tipi di eventi per il trait di debug Nest.

Proprietà
kNestDebug_StringLogEntryEvent

Un evento per il messaggio di debug della stringa in formato libero.

kNestDebug_TokenizedHeaderEntryEvent

Un evento per trasmettere le informazioni dell'intestazione tokenizzata.

kNestDebug_TokenizedLogEntryEvent

Un evento per il messaggio di debug tokenizzato.

CommandFlags

 CommandFlags
Proprietà
kCommandFlag_ActionTimeValid

Da impostare quando il tempo dell'azione è valido.

kCommandFlag_ExpiryTimeValid

Imposta quando la data di scadenza è valida.

kCommandFlag_InitiationTimeValid

Da impostare quando l'ora di inizializzazione è valida.

kCommandFlag_IsOneWay

Da impostare quando il comando è unidirezionale.

kCommandFlag_MustBeVersionValid

Da impostare quando il campo della versione è valido.

ImportanceType

 ImportanceType

L'importanza della voce di log.

L'importanza viene utilizzata per filtrare gli eventi prima che vengano effettivamente emessi nel log. Una volta che l'evento è stato inserito nel log, non applichiamo ulteriori disposizioni per eliminarlo. Il livello di importanza serve a dare la priorità all'archiviazione degli eventi. Se un evento di importanza elevata viene aggiunto a un buffer completo, gli eventi vengono eliminati in ordine di importanza (ed età) per adattarlo. Pertanto, i livelli di importanza hanno solo un valore relativo. Se un sistema utilizza un solo livello di importanza, gli eventi vengono eliminati solo in ordine di età, come nel caso di un ring buffer.

Proprietà
Debug

L'importanza del debug indica le voci di log interessanti per gli sviluppatori del sistema e viene utilizzata principalmente nella fase di sviluppo.

I log dell'importanza di debug non vengono presi in considerazione nella larghezza di banda o nell'alimentazione dei dispositivi vincolati; di conseguenza, devono essere utilizzati solo per un periodo di tempo limitato nei sistemi di produzione.

Info

L'importanza delle informazioni indica le voci di log che forniscono informazioni e diagnostica aggiuntive sul sistema in esecuzione.

Il livello di registrazione delle informazioni può essere utilizzato per un periodo di tempo prolungato in un sistema di produzione oppure come livello di log predefinito in una prova sul campo. Sui dispositivi vincolati, le voci registrate con livello di informazione devono essere prese in considerazione nel budget relativo alla larghezza di banda e alla memoria, ma non nel budget della potenza.

Production

Per importanza della produzione si intendono le voci di log utilizzate per il monitoraggio e la manutenzione costanti dell'ecosistema Nest.

Sui dispositivi con limitazioni, le voci registrate con importanza per la produzione devono essere prese in considerazione per quanto riguarda il budget relativo all'alimentazione e alla memoria, in quanto ci si aspetta che vengano sempre registrate e scaricate dal dispositivo.

ProductionCritical

L'importanza critica della produzione indica gli eventi la cui perdita influirebbe direttamente sulle funzionalità rivolte ai clienti.

Le applicazioni potrebbero utilizzare la perdita di eventi critici di produzione per indicare un errore di sistema. Sui dispositivi con limitazioni, le voci registrate con importanza critica per la produzione devono essere prese in considerazione per quanto riguarda il budget di potenza e memoria, perché ci si aspetta che vengano sempre registrate e scaricate dal dispositivo.

LoggingManagementStates

 LoggingManagementStates
Proprietà
kLoggingManagementState_Holdoff

L'offload del log è stato completato. Il log non verrà riavviato fino alla scadenza dell'holdoff.

kLoggingManagementState_Idle

Non è in corso l'offload dei log, che può iniziare senza vincoli.

kLoggingManagementState_InProgress

Offload log in corso.

kLoggingManagementState_Shutdown

Impossibile eseguire operazioni di logging.

TimestampType

 TimestampType

La validità e il tipo di timestamp inclusi in EventOptions.

Typedef

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::CommandFlags CommandFlags

DataVersion

uint64_t DataVersion

EventProcessor

void * EventProcessor

EventWriterFunct

WEAVE_ERROR(* EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)

Una funzione che fornisce l'elemento eventData per il sottosistema di logging degli eventi.

Le funzioni di questo tipo dovrebbero fornire l'elemento eventData per il sottosistema di logging degli eventi. Le funzioni di questo tipo vengono richiamate dopo che il sottosistema degli eventi ha generato tutti i metadati evento richiesti. La funzione viene richiamata con un oggetto nl::Weave::TLV::TLVWriter in cui emette un singolo elemento TLV con tag kTag_EventData; il valore di tale elemento DEVE essere una struttura contenente i dati dell'evento. I dati sugli eventi devono essere strutturati utilizzando tag di contesto.

Dettagli
Parametri
[in,out] ioWriter
Un riferimento all'oggetto nl::Weave::TLV::TLVWriter da utilizzare per la serializzazione dei dati sugli eventi.
[in] inDataTag
Un tag di contesto per il TLV che stiamo scrivendo.
[in] appData
Un puntatore a un contesto specifico dell'applicazione.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Un errore appropriato che segnali al chiamante che non è stato possibile completare la serializzazione dei dati sugli eventi. Gli errori delle chiamate a ioWriter devono essere propagati senza rimappatura. Se la funzione restituisce qualsiasi tipo di errore, la generazione dell'evento viene interrotta e l'evento non viene scritto nel log.
Vedi anche:
PlainTextWriter
EventWriterTLVCopy

FetchExternalEventsFunct

WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)

Un prototipo di funzione per i callback della piattaforma che recuperano i dati degli eventi.

Analogamente a FetchEventsFrom, questa funzione di recupero restituisce tutti gli eventi da EventLoadOutContext.mStartingEventID tramite ExternalEvents.mLastEventID.

Il puntatore al contesto è di tipo FetchExternalEventsContext. Questo include EventLoadOutContext, con alcune variabili di supporto per il formato di TLV. Include inoltre un puntatore allo struct ExternalEvents creato al momento della registrazione del callback. Specifica l'intervallo di ID evento per il callback.

Al ritorno dalla funzione, EventLoadOutContext.mCurrentEventID dovrebbe riflettere il primo ID evento che non è stato scritto correttamente nel buffer TLV. La piattaforma deve scrivere l'intestazione e i dati degli eventi nell'autore di TLV nel formato corretto, specificato dal protocollo EventLogging. La piattaforma deve inoltre mantenere l'unicità degli eventi e dei timestamp.

Tutti gli errori TLV devono essere propagati a livelli superiori. Ad esempio, l'esaurimento dello spazio nel buffer attiverà un messaggio inviato, seguito da un'altra chiamata al callback con l'ID evento rimasto.

Dettagli
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non c'è spazio per scrivere eventi.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se non c'è spazio per scrivere eventi.
WEAVE_NO_ERROR
In caso di successo.
WEAVE_END_OF_TLV
In caso di successo.

GenericTraitSinkCatalog

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

GenericTraitSourceCatalog

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

ImportanceType

enum nl::Weave::Profiles::DataManagement_Current::ImportanceType ImportanceType

L'importanza della voce di log.

L'importanza viene utilizzata per filtrare gli eventi prima che vengano effettivamente emessi nel log. Una volta che l'evento è stato inserito nel log, non applichiamo ulteriori disposizioni per eliminarlo. Il livello di importanza serve a dare la priorità all'archiviazione degli eventi. Se un evento di importanza elevata viene aggiunto a un buffer completo, gli eventi vengono eliminati in ordine di importanza (ed età) per adattarlo. Pertanto, i livelli di importanza hanno solo un valore relativo. Se un sistema utilizza un solo livello di importanza, gli eventi vengono eliminati solo in ordine di età, come nel caso di un ring buffer.

IteratorCallback

void(* IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)

Iteratore per la gestione dei trait.

LoggingBufferHandler

WEAVE_ERROR(* LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)

NotifyExternalEventsDeliveredFunct

void(* NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)

Un prototipo di funzione per un callback attivato quando vengono consegnati eventi esterni all'abbonato remoto.

Quando gli eventi esterni vengono inviati a un abbonato remoto, il motore invia una notifica al fornitore di eventi esterno. Il callback contiene l'evento dell'ultimo ID pubblicato e l'ID dell'iscritto che ha ricevuto l'evento.

Dettagli
Parametri
[in] inEv
Oggetto eventi esterni corrispondente a eventi pubblicati
[in] inLastDeliveredEventID
ID dell'ultimo evento consegnato al sottoscrittore.
[in] inRecipientNodeID
ID nodo Weave del destinatario

NotifyExternalEventsEvictedFunct

void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)

Un prototipo di funzione per un callback attivato quando gli eventi esterni vengono eliminati dai buffer.

Quando l'oggetto eventi esterni viene rimosso dal buffer dei messaggi in uscita, il motore invia una notifica al provider di eventi esterno. Il callback contiene l'evento esterno da rimuovere.

Dettagli
Parametri
[in] inEv
Oggetto eventi esterni da rimuovere

PropertyDictionaryKey

uint16_t PropertyDictionaryKey

PropertyPathHandle

uint32_t PropertyPathHandle

Un PropertyPathHandle è un hash numerico univoco a 32 bit di un percorso WDM rispetto alla radice di un'istanza trait.

Si compone di due parti:

  • Un numero a 16 bit inferiore che corrisponde alla parte statica dello schema.
  • Dove i 16 bit inferiori si riferiscono a un percorso all'interno di un elemento di dizionario, è presente un numero superiore a 16 bit che rappresenta la chiave di dizionario associata all'elemento. Se i 16 bit inferiori si riferiscono a un elemento non di dizionario, i 16 bit superiori devono essere 0.

Alcune caratteristiche:

  • Ogni tratto ha il proprio percorso di proprietà che gestisce lo spazio.
  • Ogni percorso del percorso secondario WDM univoco avrà un PropertyPathHandle univoco simile.
  • I PropertyPathHandles sono generati automaticamente (per il momento manualmente) da un compilatore di trait di IDL e sono rappresentati come un elenco enumerativo nel file di intestazione del trait corrispondente.
  • Con questo costrutto, la logica dell'applicazione non ha mai a che fare con i percorsi WDM direttamente. Piuttosto, le loro interazioni con WDM vengono condotte esclusivamente tramite questi handle.
  • Esistono due valori riservati per gli handle del percorso che hanno un significato specifico:
    • 0 indica un handle "NULL"
    • 1 indica un handle che rimanda alla radice dell'istanza del trait.

PropertySchemaHandle

uint16_t PropertySchemaHandle

SchemaVersion

uint16_t SchemaVersion

SingleResourceSinkTraitCatalog

SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog

SingleResourceSourceTraitCatalog

SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog

TimestampType

enum nl::Weave::Profiles::DataManagement_Current::TimestampType TimestampType

La validità e il tipo di timestamp inclusi in EventOptions.

TraitDataHandle

uint16_t TraitDataHandle

duration_t

uint32_t duration_t

Tipo utilizzato per descrivere la durata, in millisecondi.

event_id_t

uint32_t event_id_t

Il tipo di ID evento.

timestamp_t

uint32_t timestamp_t

Tipo utilizzato per descrivere il timestamp in millisecondi.

utc_timestamp_t

uint64_t utc_timestamp_t

Tipo utilizzato per descrivere il timestamp UTC in millisecondi.

Variabili

sInstance

LoggingManagement sInstance

sLogFileName

char sLogFileName[] = "topazlog"

Funzioni

BdxErrorHandler

void BdxErrorHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer,
  WEAVE_ERROR aErrorCode
)

BdxGetBlockHandler

void BdxGetBlockHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer,
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aIsLastBlock
)

BdxRejectHandler

void BdxRejectHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer,
  nl::Weave::Profiles::StatusReporting::StatusReport *aReport
)

BdxSendAcceptHandler

WEAVE_ERROR BdxSendAcceptHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer,
  nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg
)

BdxXferDoneHandler

void BdxXferDoneHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer
)

BdxXferErrorHandler

void BdxXferErrorHandler(
  nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer,
  nl::Weave::Profiles::StatusReporting::StatusReport *aXferError
)

CreatePropertyPathHandle

PropertyPathHandle CreatePropertyPathHandle(
  PropertySchemaHandle aPropertyPathSchemaId,
  PropertyDictionaryKey aPropertyPathDictionaryKey
)

EventWriterTLVCopy

WEAVE_ERROR EventWriterTLVCopy(
  TLVWriter & ioWriter,
  uint8_t inDataTag,
  void *appData
)

Una funzione helper che converte un elemento eventdata già serializzato nel buffer degli eventi.

Dettagli
Parametri
[in,out] ioWriter
L'autore da utilizzare per scrivere l'evento
[in] inDataTag
Un tag di contesto per il TLV che stiamo copiando. Non utilizzato qui, ma richiesto dal typedef per EventWriterFunct.
[in] appData
Un puntatore a TLVReader che contiene i dati degli eventi serializzati.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Altri errori che possono essere restituiti da ioWriter.

GetPropertyDictionaryKey

PropertyDictionaryKey GetPropertyDictionaryKey(
  PropertyPathHandle aHandle
)

GetPropertySchemaHandle

PropertySchemaHandle GetPropertySchemaHandle(
  PropertyPathHandle aHandle
)

IsNullPropertyPathHandle

bool IsNullPropertyPathHandle(
  PropertyPathHandle aHandle
)

IsRootPropertyPathHandle

bool IsRootPropertyPathHandle(
  PropertyPathHandle aHandle
)

IsVersionNewer

bool IsVersionNewer(
  const DataVersion & aVersion,
  const DataVersion & aReference
)

Si tratta di un'implementazione ottimizzata dell'algoritmo per confrontare le versioni.

Sul lato client, una versione ricevuta dal servizio è sempre quella più recente.

IsVersionNewerOrEqual

bool IsVersionNewerOrEqual(
  const DataVersion & aVersion,
  const DataVersion & aReference
)

Localizza

TraitUpdatableDataSink * Locate(
  TraitDataHandle aTraitDataHandle,
  const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog
)

Funzione di utilità che trova un TraitUpdatableDataSink in un catalogo TraitDataSink.

Dettagli
Parametri
[in] aTraitDataHandle
Punto di manipolazione del sink da cercare.
[in] aDataSinkCatalog
Catalogo per la ricerca.
Restituisce
Un puntatore a TraitUpdatableDataSink; NULL se l'handle non esiste o rimanda a un TraitDataSink non aggiornabile.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  nl::Weave::TLV::TLVReader & inData
)

Registra un evento da un modulo preserializzato.

La funzione registra un evento rappresentato come nl::Weave::TLV::TLVReader. Ciò implica che la rappresentazione dei dati sugli eventi è già serializzata nello spazio di archiviazione sottostante nl::Weave::TLV::TLVReader. L'elemento nl::Weave::TLV::TLVReader deve contenere almeno un singolo elemento di dati, che deve essere una struttura. Il primo elemento letto dal lettore viene considerato come dati di eventi e archiviato nel log eventi. I dati sugli eventi DEVONO contenere tag di contesto per essere interpretati all'interno dello schema identificato da inProfileID e inEventType. Il tag del primo elemento verrà ignorato; il sistema di logging degli eventi lo sostituirà con il tag eventData.

L'evento viene registrato se la sua importazione supera la soglia di logging specificata in LoggingConfiguration. Se l'importanza dell'evento non soddisfa la soglia attuale, viene eliminato e la funzione restituisce 0 come ID evento risultante.

Questa variante della chiamata specifica implicitamente tutte le opzioni predefinite dell'evento:

  • l'evento ha un timestamp con l'ora attuale al momento della chiamata
  • l'evento viene contrassegnato come relativo al dispositivo che sta effettuando la chiamata,
  • l'evento è indipendente, non è correlato ad altri eventi
  • l'evento viene contrassegnato come non urgente,

Dettagli
Parametri
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inData
Il lettore TLV che contiene i dati sugli eventi come primo elemento.
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  nl::Weave::TLV::TLVReader & inData,
  const EventOptions *inOptions
)

Registra un evento da un modulo preserializzato, con opzioni aggiuntive.

La funzione registra un evento rappresentato come nl::Weave::TLV::TLVReader. Ciò implica che la rappresentazione dei dati sugli eventi è già serializzata nello spazio di archiviazione sottostante nl::Weave::TLV::TLVReader. L'elemento nl::Weave::TLV::TLVReader deve contenere almeno un singolo elemento di dati, che deve essere una struttura. Il primo elemento letto dal lettore viene considerato come dati di eventi e archiviato nel log eventi. I dati sugli eventi DEVONO contenere tag di contesto per essere interpretati all'interno dello schema identificato da inProfileID e inEventType. Il tag del primo elemento verrà ignorato; il sistema di logging degli eventi lo sostituirà con il tag eventData.

L'evento viene registrato se la sua importazione supera la soglia di logging specificata in LoggingConfiguration. Se l'importanza dell'evento non soddisfa la soglia attuale, viene eliminato e la funzione restituisce 0 come ID evento risultante.

Questa variante della chiamata consente al chiamante di impostare qualsiasi combinazione di EventOptions:

  • timestamp, quando 0 viene impostato in modo predefinito sull'ora corrente al momento della chiamata,
  • sezione "root" dell'origine dell'evento (origine evento e ID trait); se NULL, per impostazione predefinita viene utilizzato il dispositivo corrente. L'evento è contrassegnato come relativo al dispositivo che effettua la chiamata.
  • un ID evento correlato per raggruppare gli ID evento; se l'ID evento correlato è 0, l'evento viene contrassegnato come non correlato ad altri eventi.
  • urgenza; non urgente per impostazione predefinita.

Dettagli
Parametri
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inData
Il lettore TLV che contiene i dati sugli eventi come primo elemento. Non deve essere NULL
[in] inOptions
Le opzioni per i metadati dell'evento. Può essere NULL.
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData
)

Registra un evento tramite callback.

La funzione registra un evento rappresentato come EventWriterFunct e un contesto appData specifico per l'app. La funzione scrive i metadati dell'evento e chiama inEventWriter con un riferimento nl::Weave::TLV::TLVWriter e un contesto inAppData, in modo che il codice utente possa emettere i dati dell'evento direttamente nel log eventi. Questa forma di logging degli eventi riduce al minimo il consumo di memoria, poiché i dati degli eventi vengono serializzati direttamente nel buffer di destinazione. I dati sugli eventi DEVONO contenere tag di contesto per essere interpretati all'interno dello schema identificato da inProfileID e inEventType. Il tag del primo elemento verrà ignorato; il sistema di logging degli eventi lo sostituirà con il tag eventData.

L'evento viene registrato se la sua importazione supera la soglia di logging specificata in LoggingConfiguration. Se l'importanza dell'evento non soddisfa la soglia attuale, viene eliminato e la funzione restituisce 0 come ID evento risultante.

Questa variante della chiamata specifica implicitamente tutte le opzioni predefinite dell'evento:

  • l'evento ha un timestamp con l'ora attuale al momento della chiamata
  • l'evento viene contrassegnato come relativo al dispositivo che sta effettuando la chiamata,
  • l'evento è indipendente, non è correlato ad altri eventi
  • l'evento viene contrassegnato come non urgente,

Dettagli
Parametri
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inEventWriter
Il callback da richiamare per serializzare effettivamente i dati dell'evento
[in] inAppData
Contesto dell'applicazione per il callback.
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

Registra un evento tramite callback, con le opzioni disponibili.

La funzione registra un evento rappresentato come EventWriterFunct e un contesto appData specifico per l'app. La funzione scrive i metadati dell'evento e chiama inEventWriter con un riferimento nl::Weave::TLV::TLVWriter e un contesto inAppData, in modo che il codice utente possa emettere i dati dell'evento direttamente nel log eventi. Questa forma di logging degli eventi riduce al minimo il consumo di memoria, poiché i dati degli eventi vengono serializzati direttamente nel buffer di destinazione. I dati sugli eventi DEVONO contenere tag di contesto per essere interpretati all'interno dello schema identificato da inProfileID e inEventType. Il tag del primo elemento verrà ignorato; il sistema di logging degli eventi lo sostituirà con il tag eventData.

L'evento viene registrato se la sua importazione supera la soglia di logging specificata in LoggingConfiguration. Se l'importanza dell'evento non soddisfa la soglia attuale, viene eliminato e la funzione restituisce 0 come ID evento risultante.

Questa variante della chiamata consente al chiamante di impostare qualsiasi combinazione di EventOptions:

  • timestamp, quando 0 viene impostato in modo predefinito sull'ora corrente al momento della chiamata,
  • sezione "root" dell'origine dell'evento (origine evento e ID trait); se NULL, per impostazione predefinita viene utilizzato il dispositivo corrente. L'evento è contrassegnato come relativo al dispositivo che effettua la chiamata.
  • un ID evento correlato per raggruppare gli ID evento; se l'ID evento correlato è 0, l'evento viene contrassegnato come non correlato ad altri eventi.
  • urgenza; non urgente per impostazione predefinita.

Dettagli
Parametri
[in] inSchema
Uno schema che definisce l'importanza, l'ID profilo e il tipo di struttura di questo evento.
[in] inEventWriter
Il callback da richiamare per serializzare effettivamente i dati dell'evento
[in] inAppData
Contesto dell'applicazione per il callback.
[in] inOptions
Le opzioni per i metadati dell'evento. Può essere NULL.
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LogFreeform

event_id_t LogFreeform(
  ImportanceType inImportance,
  const char *inFormat,
  ...
)

LogFreeform emette una stringa in formato libero nel flusso di eventi predefinito.

La stringa verrà incapsulata in una struttura di eventi di debug, strutturalmente identica ad altre stringhe registrate. L'ID profilo evento sarà quello di un evento di debug Nest e il tipo di evento sarà kNestDebug_StringLogEntryEvent.

Dettagli
Parametri
[in] inImportance
Importanza della voce di log; se l'importanza è inferiore a quella attuale, l'evento non viene effettivamente registrato
[in] inFormat
Stringa di formato conforme a printf, seguita da argomenti da formattare
Restituisce
event_id_t L'ID evento se l'evento è stato scritto nel log, altrimenti 0.

LookForElementWithTag

WEAVE_ERROR LookForElementWithTag(
  const nl::Weave::TLV::TLVReader & aSrcReader,
  const uint64_t aTagInApiForm,
  nl::Weave::TLV::TLVReader *apDstReader
)

PlainTextWriter

WEAVE_ERROR PlainTextWriter(
  TLVWriter & ioWriter,
  uint8_t inDataTag,
  void *appData
)

Una funzione helper per emettere un testo in formato libero come evento di debug.

L'evento di debug è una struttura con una regione log e un testo in formato libero.

Dettagli
Parametri
[in,out] ioWriter
L'autore da utilizzare per scrivere l'evento
[in] appData
Un puntatore a DebugLogContext, una struttura che contiene un formato stringa, argomenti e una regione di log
[in] inDataTag
Un tag di contesto per il TLV che stiamo scrivendo. Non utilizzato qui, ma richiesto dal typedef per EventWriterFunct.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Altri errori che possono essere restituiti da ioWriter.

PlainTextWriter

WEAVE_ERROR PlainTextWriter(
  ::nl::Weave::TLV::TLVWriter & ioWriter,
  uint8_t inDataTag,
  void *appData
)

Una funzione helper per emettere un testo in formato libero come evento di debug.

L'evento di debug è una struttura con una regione log e un testo in formato libero.

Dettagli
Parametri
[in,out] ioWriter
L'autore da utilizzare per scrivere l'evento
[in] inDataTag
Il tag da emettere
[in] appData
Un puntatore a DebugLogContext, una struttura che contiene un formato stringa, argomenti e una regione di log
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Altri errori che potrebbero essere restituiti da ioWriter.

operatore!=

bool operator!=(
  const ResourceIdentifier & lhs,
  const ResourceIdentifier & rhs
)

operatore==

bool operator==(
  const ResourceIdentifier & lhs,
  const ResourceIdentifier & rhs
)