nl::Weave::Perfis::DataManagement_Current

Esse namespace inclui todas as interfaces no Weave para o perfil Gerenciamento de dados do Weave (WDM, na sigla em inglês) que são compatíveis com o uso em produção.

Resumo

Enumerações

@100{
  kTag_Region = 1,
  kTag_Message = 2
}
tipo enumerado
Tags para o kNestDebug_StringLogEntryEvent.
@101{
  kTag_Token = 1,
  kTag_Args = 2
}
tipo enumerado
Tags para o kNestDebug_TokenizedLogEntryEvent
@102 tipo enumerado
Tags para persistir eventos.
@104 tipo enumerado
Os tipos de mensagem do perfil WDM.
@105 tipo enumerado
Códigos de status específicos do WDM.
@147 tipo enumerado
@95{
  kTag_CurrentImportance = 1,
  kTag_ImportanceExpiration,
  kTag_MinimumLogUploadInterval,
  kTag_MaximumLogUploadInterval,
  kTag_LoggingDestination,
  kTag_TraitLoggingImportance
}
tipo enumerado
Tags de configurações do Logging.
@96{
  kTag_SupportedLogTransports = 1,
  kTag_SupportsStreaming = 2,
  kTag_SupportsNonVolatileStorage = 3,
  kTag_SupportsPerTraitVerbosity = 4,
  kTag_LoggingVolume = 5,
  kTag_LogBufferingCapacity = 6
}
tipo enumerado
Tags para recursos de geração de registros.
@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
}
tipo enumerado
Tags para metadados de evento.
@98 tipo enumerado
Definições de perfil para a característica de depuração.
@99{
  kNestDebug_StringLogEntryEvent = 1,
  kNestDebug_TokenizedLogEntryEvent = 2,
  kNestDebug_TokenizedHeaderEntryEvent = 3
}
tipo enumerado
Tipos de evento para a característica do Nest Debug.
CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
tipo enumerado
ImportanceType{
  ProductionCritical = 1,
  Production,
  Info,
  Debug
}
tipo enumerado
A importância da entrada de registro.
LoggingManagementStates{
  kLoggingManagementState_Idle = 1,
  kLoggingManagementState_InProgress = 2,
  kLoggingManagementState_Holdoff = 3,
  kLoggingManagementState_Shutdown = 4
}
tipo enumerado
TimestampType tipo enumerado
A validade e o tipo de carimbo de data/hora incluído em EventOptions.

Typedefs

CommandFlags typedef
DataVersion typedef
uint64_t
EventProcessor typedef
void *
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData) typedef
Uma função que fornece o elemento eventData para o subsistema de registro de eventos.
FetchExternalEventsFunct)(EventLoadOutContext *aContext) typedef
Um protótipo de função para callbacks de plataforma que buscam dados de eventos.
GenericTraitSinkCatalog typedef
GenericTraitSourceCatalog typedef
ImportanceType typedef
A importância da entrada de registro.
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext) typedef
void(*
Iterador de alça de característica.
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer) typedef
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID) typedef
void(*
Um protótipo de função para um callback invocado quando eventos externos são entregues ao assinante remoto.
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv) typedef
void(*
Um protótipo de função para um callback invocado quando eventos externos são removidos dos buffers.
PropertyDictionaryKey typedef
uint16_t
PropertyPathHandle typedef
uint32_t
Um PropertyPathHandle é um hash numérico exclusivo de 32 bits de um caminho WDM em relação à raiz de uma instância de característica.
PropertySchemaHandle typedef
uint16_t
SchemaVersion typedef
uint16_t
SingleResourceSinkTraitCatalog typedef
SingleResourceSourceTraitCatalog typedef
TimestampType typedef
A validade e o tipo de carimbo de data/hora incluído em EventOptions.
TraitDataHandle typedef
uint16_t
duration_t nl::Weave::Perfis::DataManagement_Current::duration_t
uint32_t
Tipo usado para descrever a duração em milésimos de segundos.
event_id_t nl::Weave::Perfis::DataManagement_Current::event_id_t
uint32_t
O tipo de ID do evento.
timestamp_t nl::Weave::Profiles::DataManagement_Current::timestamp_t
uint32_t
Tipo usado para descrever o carimbo de data/hora em milissegundos.
utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::utc_timestamp_t
uint64_t
Tipo usado para descrever o carimbo de data/hora em milissegundos do UTC.

Variables

sInstance
sLogFileName = "topazlog"[]
char

Funções

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)
Uma função auxiliar que converte um elemento eventdata já serializado em buffer de eventos.
GetPropertyDictionaryKey(PropertyPathHandle aHandle)
PropertyDictionaryKey
GetPropertySchemaHandle(PropertyPathHandle aHandle)
PropertySchemaHandle
IsNullPropertyPathHandle(PropertyPathHandle aHandle)
bool
IsRootPropertyPathHandle(PropertyPathHandle aHandle)
bool
IsVersionNewer(const DataVersion & aVersion, const DataVersion & aReference)
bool
Essa é uma implementação otimizada do algoritmo para comparar versões.
IsVersionNewerOrEqual(const DataVersion & aVersion, const DataVersion & aReference)
bool
Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog)
Função de utilitário que encontra um TraitUpdatableDataSink em um catálogo TraitDataSink.
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
Registre um evento em um formulário pré-serializado.
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
Registre um evento de um formulário pré-serializado com opções adicionais.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
Registre um evento usando um callback.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Registre um evento usando um callback com opções.
LogFreeform(ImportanceType inImportance, const char *inFormat, ...)
O LogFreeform emite uma string de formato livre para o fluxo de eventos padrão.
LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Uma função auxiliar para emitir um texto em formato livre como um evento de depuração.
PlainTextWriter(::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Uma função auxiliar para emitir um texto em formato livre como um evento de depuração.
operator!=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool
operator==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool

Classes

nl::Weave::Perfis::DataManagement_Current::AlwaysAcceptDataElementAccessControlControlDelegate
nl::Weave::Perfis::DataManagement_Current::BuilderBase

Classe base para os codificadores de mensagens WDM.

nl::Weave::Perfis::DataManagement_Current::CircularEventReader

Um TLVReader apoiado por CircularEventBuffer.

nl::Weave::Perfis::DataManagement_Current::Comando
nl::Weave::Perfis::DataManagement_Current::CommandSender
nl::Weave::Perfis::DataManagement_Current::GenericTraitCatalogImpl

Um Weave forneceu a implementação da interface TraitCatalogBase para uma coleção de instâncias de dados de características que se referem ao mesmo recurso.

nl::Weave::Perfis::DataManagement_Current::IDataElementAccessControlDelegate

Interface que deve ser implementada por um processador de elementos de dados em uma NotifyRequest.

nl::Weave::Perfis::DataManagement_Current::IDirtyPathCut
nl::Weave::Perfis::DataManagement_Current::IPathFilter
nl::Weave::Perfis::DataManagement_Current::IWeavePublisherLock

Interface que precisa ser implementada pelo app para serializar o acesso às principais estruturas de dados do WDM.

nl::Weave::Perfis::DataManagement_Current::IWeaveWDMDesativarx

Interface de um objeto silenciadox.

nl::Weave::Perfis::DataManagement_Current::ListBuilderBase

Classe base para codificadores de mensagens WDM, especializadas em elementos de matriz TLV, como listas de dados e de versões.

nl::Weave::Perfis::DataManagement_Current::ListParserBase

Classe base para os analisadores de mensagens WDM, especializada em elementos de matriz TLV, como listas de dados e de versões.

nl::Weave::Perfis::DataManagement_Current::LogBDXUpload
nl::Weave::Perfis::DataManagement_Current::LoggingConfiguration

O LoggingConfiguration encapsula o componente configurável do subsistema Logging do evento do Weave.

nl::Weave::Perfis::DataManagement_Current::LoggingManagement

Uma classe para gerenciar os registros de eventos na memória.

nl::Weave::Perfis::DataManagement_Current::NotificationEngine
nl::Weave::Perfis::DataManagement_Current::ParserBase

Classe base para os analisadores de mensagens WDM.

nl::Weave::Perfis::DataManagement_Current::ResourceIdentifier

Estrutura que encapsula o ID de um recurso.

nl::Weave::Perfis::DataManagement_Current::SingleResourceTraitCatalog
nl::Weave::Perfis::DataManagement_Current::SubscriptionClient
nl::Weave::Perfis::DataManagement_Current::SubscriptionEngine

Este é um Singleton que hospeda todas as assinaturas do WDM Next, tanto do lado do cliente quanto do editor.

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

O mecanismo de esquema pega informações de esquema associadas a uma característica específica e fornece instalações para analisar e traduzir isso em uma forma utilizável pelo maquinário WDM.

nl::Weave::Perfis::DataManagement_Current::TraitUpdatableDataSink
nl::Weave::Perfis::DataManagement_Current::UpdateClient
nl::Weave::Perfis::DataManagement_Current::UpdateDictionaryDirtyPathCut

Classe de utilitário para colocar o dicionário de volta na fila de pendentes ao processar o caminho da propriedade que tem um filho de dicionário.

nl::Weave::Perfis::DataManagement_Current::UpdateDirtyPathFilter

Classe de utilitário para filtrar o caminho ao processar a notificação.

nl::Weave::Perfis::DataManagement_Current::UpdateEncoder

Esse objeto codifica payloads de UpdateRequest e PartialUpdateRequest do WDM.

nl::Weave::Perfis::DataManagement_Current::ViewClient

Estruturas

nl::Weave::Perfis::DataManagement_Current::CircularEventBuffer

Buffer de evento interno, construído em torno de nl::Weave::TLV::WeaveCircularTLVBuffer.

nl::Weave::Perfis::DataManagement_Current::ConstSchemaVersionRange
nl::Weave::Perfis::DataManagement_Current::CopyAndAdjustTimeTimeContext

Estrutura interna para a lista de eventos atravessados.

nl::Weave::Perfis::DataManagement_Current::DebugLogContext
nl::Weave::Perfis::DataManagement_Current::DetailedRootSection

É a estrutura que fornece uma resolução completa da instância de característica.

nl::Weave::Perfis::DataManagement_Current::EventEnvelopeContext

Estrutura interna para a transferência de eventos.

nl::Weave::Perfis::DataManagement_Current::EventLoadOutContext

Estrutura para copiar listas de eventos na saída.

nl::Weave::Perfis::DataManagement_Current::EventOptions

É a estrutura que fornece opções para os diferentes campos de eventos.

nl::Weave::Perfis::DataManagement_Current::EventSchema

A estrutura que define um esquema para metadados de evento.

nl::Weave::Perfis::DataManagement_Current::Eventos externos

Estrutura para acompanhar eventos armazenados na plataforma.

nl::Weave::Perfis::DataManagement_Current::LogStorageResources

Uma classe auxiliar usada na inicialização do gerenciamento de registros.

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

União

nl::Weave::Perfis::DataManagement_Current::Carimbo de data/hora

A união que fornece um sistema de conjunto de aplicativos ou carimbo de data/hora UTC.

Namespaces

nl::Weave::Perfis::DataManagement_Current::BaseMessageWithsubscribeId
nl::Weave::Perfis::DataManagement_Current::CustomCommand

Definição personalizada de comando do WDM.

nl::Weave::Perfis::DataManagement_Current::CustomCommandResponse

Definição de resposta personalizada do comando do WDM.

nl::Weave::Perfis::DataManagement_Current::DataElement

Definição do elemento de dados do WDM.

nl::Weave::Perfis::DataManagement_Current::DataList
nl::Weave::Perfis::DataManagement_Current::Evento
nl::Weave::Perfis::DataManagement_Current::EventList
nl::Weave::Perfis::DataManagement_Current::NotificationRequest
nl::Weave::Perfis::DataManagement_Current::Caminho

Definição de caminho do WDM.

nl::Weave::Perfis::DataManagement_Current::PathList

Definição da lista de caminho WDM.

nl::Weave::Perfis::DataManagement_Current::Plataforma
nl::Weave::Perfis::DataManagement_Current::Rejeitarion
nl::Weave::Perfis::DataManagement_Current::RejeitarionRecordList
nl::Weave::Perfis::DataManagement_Current::StatusElement

Definição do elemento de status do WDM.

nl::Weave::Perfis::DataManagement_Current::StatusList
nl::Weave::Perfis::DataManagement_Current::AssinarCancelRequest
nl::Weave::Perfis::DataManagement_Current::AssinarConfirmRequest
nl::Weave::Perfis::DataManagement_Current::AssineRequest
nl::Weave::Perfis::DataManagement_Current::AssineResponse
nl::Weave::Perfis::DataManagement_Current::UpdateRequest

A definição da solicitação de atualização de WDM.

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

Enumerações

100

 @100

Tags para o kNestDebug_StringLogEntryEvent.

Propriedades
kTag_Message

Uma string que contém a mensagem de depuração real.

kTag_Region

Um não assinado de 32 bits que indica a região do registro, ou seja, o módulo a que a mensagem de registro pertence.

@101

 @101

Tags para o kNestDebug_TokenizedLogEntryEvent

Propriedades
kTag_Args

Uma matriz de argumentos a serem enviados junto com a mensagem do token.

kTag_Token

Um valor não assinado de 32 bits correspondente ao token.

@102

 @102

Tags para persistir eventos.

@104

 @104

Os tipos de mensagem do perfil WDM.

Esses valores são destacados na especificação de gerenciamento de dados.

@105

 @105

Códigos de status específicos do WDM.

@147

 @147

95

 @95

Tags de configurações do Logging.

Propriedades
kTag_CurrentImportance

Importância da geração de registros atual. O valor é do tipo ImportanceType.

kTag_ImportanceExpiration

Horário, em segundos UTC, em que as configurações atuais de geração de registros elevadas revertem para os valores padrão.

kTag_LoggingDestination

Um URL que indica o destino do upload do registro.

kTag_MaximumLogUploadInterval

Duração máxima, em segundos, entre as tentativas de upload de registros acionadas automaticamente.

kTag_MinimumLogUploadInterval

Duração mínima, em segundos, entre as tentativas de upload de registros acionadas automaticamente.

kTag_TraitLoggingImportance

Uma matriz opcional mapeando os perfis escolhidos nos níveis de geração de registros mais altos.

Cada elemento em uma matriz usa um formulário (perfil,caminho,importação de registros) para elevar seletivamente a geração de registros de um subconjunto do sistema. A prioridade de geração de registros elevada do perfil só tem importância quando a prioridade de registro excede a da currentImportance e está sujeita ao mesmo prazo de validade da currentImportance.

96

 @96

Tags para recursos de geração de registros.

Propriedades
kTag_LogBufferingCapacity

Um número inteiro sem assinatura de 32 bits que descreve a capacidade de buffer de registros em KB.

kTag_LoggingVolume

Um número inteiro sem assinatura de 32 bits que descreve o volume esperado de registros em kB/dia.

kTag_SupportedLogTransports

Uma matriz de mecanismos de transporte de registros compatíveis.

kTag_SupportsNonVolatileStorage

É um booleano indicando se o dispositivo é compatível com o armazenamento de registros não voláteis.

kTag_SupportsPerTraitVerbosity

É um booleano indicando se o dispositivo é compatível com as configurações de verbosidade por característica.

kTag_SupportsStreaming

É um booleano indicando se o dispositivo oferece suporte a registros de streaming.

99

 @97

Tags para metadados de evento.

Para ver a semântica completa dos valores da tag, consulte a Especificação de design de eventos.

Propriedades
kTag_EventData

Opcional. Dados do evento. Se estiver vazio, o padrão será uma estrutura vazia.

kTag_EventDeltaSystemTime

Tag interna do WDM, diferença de horário do evento anterior na codificação.

kTag_EventDeltaUTCTime

Tag interna do WDM, diferença de horário do evento anterior na codificação.

kTag_EventID

Número de sequência do evento, expresso como uma quantidade de 64 bits não assinada.

Precisa ser sequencial, saltos na sequência indicam lacunas de eventos.

kTag_EventImportance

Importância do evento.

kTag_EventResourceID

Opcional.

O valor é o código do recurso a que o evento pertence. Quando omitido, o valor é igual ao valor de kTag_EventSource

kTag_EventSource

ID do nó do dispositivo que gerou o evento.

kTag_EventSystemTimestamp

Opcional. É o carimbo de data/hora do sistema em milissegundos.

kTag_EventTraitInstanceID

Opcional: a instância da característica que gerou o evento.

kTag_EventTraitProfileID

Obrigatório. Número inteiro não assinado de 32 bits, igual ao ProfileID da característica.

kTag_EventType

Obrigatório. Número inteiro sem assinatura de 16 bits que é igual a wdl.event.id para esse tipo de evento.

kTag_EventUTCTimestamp

Opcional. Carimbo de data/hora UTC do evento em milissegundos.

kTag_ExternalEventStructure

Tag interna para eventos externos. Nunca transmitida entre os fios e nunca deve ser usada fora da biblioteca Weave.

kTag_RelatedEventID

Opcional.

É o ID de um evento relacionado ao evento. Se omitido, o valor é igual ao valor de kTag_EventID.

kTag_RelatedEventImportance

Opcional.

Importância do evento relacionado. Se omitido, o valor é igual ao valor de kTag_EventImportance.

99

 @98

Definições de perfil para a característica de depuração.

99

 @99

Tipos de evento para a característica do Nest Debug.

Propriedades
kNestDebug_StringLogEntryEvent

Um evento para a mensagem de depuração de string de forma livre.

kNestDebug_TokenizedHeaderEntryEvent

Um evento para transmitir as informações do cabeçalho tokenizado.

kNestDebug_TokenizedLogEntryEvent

Um evento para a mensagem de depuração tokenizada.

Sinalizações de comando

 CommandFlags
Propriedades
kCommandFlag_ActionTimeValid

Defina quando o tempo de ação é válido.

kCommandFlag_ExpiryTimeValid

Defina o prazo de validade.

kCommandFlag_InitiationTimeValid

Defina quando o horário de inicialização é válido.

kCommandFlag_IsOneWay

Defina quando o comando é de mão única.

kCommandFlag_MustBeVersionValid

Defina quando o campo de versão é válido.

TipoDeImportância

 ImportanceType

A importância da entrada de registro.

A importância é usada como uma forma de filtrar eventos antes de serem emitidos no registro. Depois que o evento é incluído no registro, não fazemos mais disposições para eliminá-lo. O nível de importância serve para priorizar o armazenamento de eventos. Se um evento de alta importância for adicionado a um buffer completo, os eventos serão descartados em ordem de importância (e idade) para acomodá-lo. Por isso, os níveis de importância têm apenas valor relativo. Se um sistema estiver usando apenas um nível de importância, os eventos serão descartados apenas em ordem de idade, como um buffer de anel.

Propriedades
Debug

A importância de depuração indica entradas de registro de interesse para os desenvolvedores do sistema e é usada principalmente na fase de desenvolvimento.

Os registros de importância de depuração não são contabilizados nos larguras de banda ou nos orçamentos de energia dos dispositivos restritos. Como resultado, eles precisam ser usados apenas por um período limitado nos sistemas de produção.

Info

A importância das informações indica entradas de registro que fornecem insights e diagnósticos adicionais no sistema em execução.

O nível de registro de informações pode ser usado por um longo período em um sistema de produção ou pode ser usado como o nível de registro padrão em um teste de campo. Nos dispositivos restritos, as entradas registradas com o nível de informações precisam ser contabilizadas no orçamento de largura de banda e memória, mas não no orçamento de energia.

Production

A importância de produção indica as entradas de registro usadas no monitoramento e na manutenção contínuo do ecossistema Nest.

Em dispositivos restritos, as entradas registradas com importância de produção precisam ser contabilizadas no orçamento de energia e memória, já que é esperado que elas sejam sempre registradas e descarregadas do dispositivo.

ProductionCritical

A importância crítica da produção indica eventos cuja perda impactaria diretamente os recursos voltados para o cliente.

Os aplicativos podem usar a perda de eventos críticos de produção para indicar falha do sistema. Em dispositivos restritos, as entradas registradas com importância crítica de produção precisam ser contabilizadas no orçamento de energia e memória, já que é esperado que elas sejam sempre registradas e descarregadas do dispositivo.

Estado de gerenciamento de registros

 LoggingManagementStates
Propriedades
kLoggingManagementState_Holdoff

O descarregamento de registros foi concluído. Não reiniciamos o registro até que a retenção expire.

kLoggingManagementState_Idle

Nenhuma descarga de registro em andamento pode começar sem restrições.

kLoggingManagementState_InProgress

O descarregamento de registros está em andamento.

kLoggingManagementState_Shutdown

Não é possível executar nenhuma operação de geração de registros.

Carimbo de data/hora

 TimestampType

A validade e o tipo de carimbo de data/hora incluído em EventOptions.

Typedefs

Sinalizações de comando

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

Versão do dado

uint64_t DataVersion

Processador de eventos

void * EventProcessor

Função EventWriter

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

Uma função que fornece o elemento eventData para o subsistema de registro de eventos.

Funções desse tipo fornecem o elemento eventData para o subsistema de registro de eventos. As funções desse tipo são chamadas depois que o subsistema de eventos gera todos os metadados de eventos necessários. A função é chamada com um objeto nl::Weave::TLV::TLVWriter em que emitirá um único elemento TLV marcado como kTag_EventData. O valor desse elemento PRECISA ser uma estrutura que contenha os dados do evento. Os próprios dados do evento precisam ser estruturados usando tags de contexto.

Detalhes
Parâmetros
[in,out] ioWriter
Uma referência ao objeto nl::Weave::TLV::TLVWriter a ser usado para a serialização de dados do evento.
[in] inDataTag
Uma tag de contexto para o TLV que estamos gravando.
[in] appData
Um ponteiro para um contexto específico do aplicativo.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
other
Um erro adequado indicando ao autor da chamada que não foi possível concluir a serialização dos dados do evento. Os erros de chamadas para o ioWriter devem ser propagados sem remapeamento. Se a função retornar qualquer tipo de erro, a geração do evento será cancelada e o evento não será gravado no registro.
Veja também:
PlainTextWriter
EventWriterTLVCopy

Busca externa de eventos externos

WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)

Um protótipo de função para callbacks de plataforma que buscam dados de eventos.

Semelhante a FetchEvents Desde, essa função de busca retorna todos os eventos de EventLoadOutContext.mStartingEventID por ExternalEvents.mLastEventID.

O ponteiro de contexto é do tipo FetchExternalEventsContext. Isso inclui o EventLoadOutContext, com algumas variáveis auxiliares para o formato do TLV. Isso também inclui um ponteiro para o struct ExternalEvents criado no registro do callback. Especifica o intervalo de IDs de evento do callback.

Ao retornar da função, EventLoadOutContext.mCurrentEventID precisa refletir o primeiro ID de evento que não foi gravado no buffer TLV. A plataforma precisa gravar o cabeçalho e os dados de eventos no gravador TLV no formato correto, especificado pelo protocolo EventLogging. A plataforma também precisa manter a exclusividade de eventos e carimbos de data/hora.

Todos os erros de TLV precisam ser propagados para níveis mais altos. Por exemplo, ficar sem espaço no buffer acionará uma mensagem enviada, seguida por outra chamada para o callback com o ID de evento restante.

Detalhes
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Se não houver espaço para gravar eventos.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se não houver espaço para gravar eventos.
WEAVE_NO_ERROR
Em caso de sucesso.
WEAVE_END_OF_TLV
Em caso de sucesso.

GenericTraitSinkCatalog

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

GenericTraitSourceCatalog

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

TipoDeImportância

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

A importância da entrada de registro.

A importância é usada como uma forma de filtrar eventos antes de serem emitidos no registro. Depois que o evento é incluído no registro, não fazemos mais disposições para eliminá-lo. O nível de importância serve para priorizar o armazenamento de eventos. Se um evento de alta importância for adicionado a um buffer completo, os eventos serão descartados em ordem de importância (e idade) para acomodá-lo. Por isso, os níveis de importância têm apenas valor relativo. Se um sistema estiver usando apenas um nível de importância, os eventos serão descartados apenas em ordem de idade, como um buffer de anel.

Iterador

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

Iterador de alça de característica.

LoggingBufferHandler

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

NotificarExternalEventsEntregue

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

Um protótipo de função para um callback invocado quando eventos externos são entregues ao assinante remoto.

Quando os eventos externos são entregues a um assinante remoto, o mecanismo envia uma notificação ao provedor de eventos externo. O callback contém o evento do último código que foi entregue e o código do assinante que recebeu o evento.

Detalhes
Parâmetros
[in] inEv
Objeto de eventos externos correspondentes aos eventos entregues
[in] inLastDeliveredEventID
ID do último evento enviado ao assinante.
[in] inRecipientNodeID
Código do nó do Weave do destinatário

Notificação externaEventosEvictedFunct

void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)

Um protótipo de função para um callback invocado quando eventos externos são removidos dos buffers.

Quando o objeto de eventos externos for removido do buffer de mensagens de saída, o mecanismo enviará uma notificação ao provedor de eventos externo. O callback contém o evento externo que será removido.

Detalhes
Parâmetros
[in] inEv
Objeto de eventos externos a ser removido

Chave da dicionário da propriedade

uint16_t PropertyDictionaryKey

Identificador de caminho da propriedade

uint32_t PropertyPathHandle

Um PropertyPathHandle é um hash numérico exclusivo de 32 bits de um caminho WDM em relação à raiz de uma instância de característica.

Ela tem duas partes:

  • É um número menor de 16 bits que é mapeado para a parte estática do esquema.
  • Quando os últimos 16 bits se referem a um caminho dentro de um elemento do dicionário, há um número de 16 bits superior que representa a chave de dicionário associada a esse elemento. Se os 16 bits inferiores se referirem a um elemento que não é do dicionário, os de 16 bits superiores serão 0.

Algumas características:

  • Cada característica tem o próprio espaço de processamento do caminho da propriedade.
  • Cada caminho de subcaminho do WDM exclusivo terá um PropertyPathHandle também exclusivo.
  • PropertyPathHandles são gerados automaticamente (gerenciados manualmente por enquanto) por um compilador de características do IDL e são representados como uma lista de enumeração no arquivo de cabeçalho da característica correspondente.
  • Com essa construção, a lógica do aplicativo nunca precisa lidar diretamente com caminhos WDM. As interações com o WDM são realizadas exclusivamente por esses identificadores.
  • Há dois valores reservados para os identificadores de caminho que têm um significado específico:
    • 0 indica um identificador 'NULL'
    • O valor 1 indica um identificador que aponta para a raiz da instância de característica.

Esquema de propriedade

uint16_t PropertySchemaHandle

Versão do esquema

uint16_t SchemaVersion

SingleResourceSinkTraitCatalog

SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog

SingleResourceSourceTraitCatalog

SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog

Carimbo de data/hora

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

A validade e o tipo de carimbo de data/hora incluído em EventOptions.

TraitDataHandle

uint16_t TraitDataHandle

duração_t

uint32_t duration_t

Tipo usado para descrever a duração em milésimos de segundos.

ID do evento

uint32_t event_id_t

O tipo de ID do evento.

timestamp_t

uint32_t timestamp_t

Tipo usado para descrever o carimbo de data/hora em milissegundos.

Hora do carimbo de data/hora

uint64_t utc_timestamp_t

Tipo usado para descrever o carimbo de data/hora em milissegundos do UTC.

Variables

Instância

LoggingManagement sInstance

Nome do arquivo sLog

char sLogFileName[] = "topazlog"

Funções

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
)

bdxHandler

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
)

Cópia EventEventTLV

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

Uma função auxiliar que converte um elemento eventdata já serializado em buffer de eventos.

Detalhes
Parâmetros
[in,out] ioWriter
O roteirista a ser usado para gravar o evento
[in] inDataTag
Uma tag de contexto para o TLV que estamos copiando. Não é usado aqui, mas é exigido pelo typedef para EventWriterFunct.
[in] appData
Um ponteiro para TLVReader que contém dados de eventos serializados.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
other
Outros erros que retornam do 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
)

Essa é uma implementação otimizada do algoritmo para comparar versões.

No lado do cliente, uma versão recebida do serviço é sempre a mais recente.

IsVersionNewerOrEqual

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

Localizar

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

Função de utilitário que encontra um TraitUpdatableDataSink em um catálogo TraitDataSink.

Detalhes
Parâmetros
[in] aTraitDataHandle
Alça do coletor a ser pesquisado.
[in] aDataSinkCatalog
Catálogo para pesquisar
Retorna
Um ponteiro para TraitUpdatableDataSink, NULL se o identificador não existir ou apontar para um TraitDataSink não atualizável.

Evento de registro

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

Registre um evento em um formulário pré-serializado.

A função registra um evento representado como nl::Weave::TLV::TLVReader. Isso indica que a representação de dados de eventos já está serializada no armazenamento de nl::Weave::TLV::TLVReader. Espera-se que nl::Weave::TLV::TLVReader contenha pelo menos um único elemento de dados. Esse elemento precisa ser uma estrutura. O primeiro elemento lido fora do leitor é tratado como dados do evento e armazenado no log de eventos. Os dados do evento PRECISAM conter tags de contexto a serem interpretados no esquema identificado por inProfileID e inEventType. A tag do primeiro elemento será ignorada, e o sistema de registro de eventos a substituirá pela tag eventData.

O evento será registrado se a inimportance exceder o limite de geração de registros especificado na LoggingConfiguration. Se a importância do evento não atingir o limite atual, ela será descartada e a função retornará um 0 como o ID do evento resultante.

Essa variante da invocação especifica implicitamente todas as opções de eventos padrão:

  • o evento tem um carimbo de data/hora com o horário atual no ponto da chamada;
  • O evento é marcado como relacionado ao dispositivo que está fazendo a chamada.
  • o evento é independente, não relacionado a nenhum outro evento,
  • o evento é marcado como não urgente,

Detalhes
Parâmetros
[in] inSchema
Esquema que define a importância, o ID do perfil e o tipo de estrutura desse evento.
[in] inData
O leitor TLV, que contém os dados do evento como o primeiro elemento.
Retorna
event_id_t O ID do evento, se o evento foi gravado no registro, caso contrário, será 0.

Evento de registro

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

Registre um evento de um formulário pré-serializado com opções adicionais.

A função registra um evento representado como nl::Weave::TLV::TLVReader. Isso indica que a representação de dados de eventos já está serializada no armazenamento de nl::Weave::TLV::TLVReader. Espera-se que nl::Weave::TLV::TLVReader contenha pelo menos um único elemento de dados. Esse elemento precisa ser uma estrutura. O primeiro elemento lido fora do leitor é tratado como dados do evento e armazenado no log de eventos. Os dados do evento PRECISAM conter tags de contexto a serem interpretados no esquema identificado por inProfileID e inEventType. A tag do primeiro elemento será ignorada, e o sistema de registro de eventos a substituirá pela tag eventData.

O evento será registrado se a inimportance exceder o limite de geração de registros especificado na LoggingConfiguration. Se a importância do evento não atingir o limite atual, ela será descartada e a função retornará um 0 como o ID do evento resultante.

Essa variante da invocação permite que o autor da chamada defina qualquer combinação de EventOptions:

  • timestamp, quando 0 assume como padrão a hora atual no ponto da chamada,
  • Seção "quot;root" da fonte do evento (origem do evento e código da característica)". Se NULL, o padrão é o dispositivo atual. O evento é marcado como relacionado ao dispositivo que está fazendo a chamada.
  • Um ID de evento relacionado para agrupar IDs de evento. Quando o ID do evento relacionado é 0, o evento é marcado como não relacionado a outros eventos.
  • urgência; por padrão, não é urgente.

Detalhes
Parâmetros
[in] inSchema
Esquema que define a importância, o ID do perfil e o tipo de estrutura desse evento.
[in] inData
O leitor TLV, que contém os dados do evento como o primeiro elemento. Não pode ser NULL.
[in] inOptions
As opções dos metadados do evento. Pode ser NULL.
Retorna
event_id_t O ID do evento, se o evento foi gravado no registro, caso contrário, será 0.

Evento de registro

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

Registre um evento usando um callback.

A função registra um evento representado como EventWriterFunct e um contexto appData específico do app. A função grava os metadados do evento e chama a inEventWriter com uma referência nl::Weave::TLV::TLVWriter e um contexto de inAppData para que o código do usuário possa emitir os dados do evento diretamente para o log de eventos. Essa forma de registro de eventos minimiza o consumo de memória, já que os dados de eventos são serializados diretamente no buffer de destino. Os dados do evento PRECISAM conter tags de contexto para serem interpretados no esquema identificado por inProfileID e inEventType. A tag do primeiro elemento será ignorada, e o sistema de registro de eventos a substituirá pela tag eventData.

O evento será registrado se a inimportance exceder o limite de geração de registros especificado na LoggingConfiguration. Se a importância do evento não atingir o limite atual, ela será descartada e a função retornará um 0 como o ID do evento resultante.

Essa variante da invocação especifica implicitamente todas as opções de eventos padrão:

  • o evento tem um carimbo de data/hora com o horário atual no ponto da chamada;
  • O evento é marcado como relacionado ao dispositivo que está fazendo a chamada.
  • o evento é independente, não relacionado a nenhum outro evento,
  • o evento é marcado como não urgente,

Detalhes
Parâmetros
[in] inSchema
Esquema que define a importância, o ID do perfil e o tipo de estrutura desse evento.
[in] inEventWriter
O callback a ser invocado para serializar os dados do evento.
[in] inAppData
Contexto do aplicativo para o callback.
Retorna
event_id_t O ID do evento, se o evento foi gravado no registro, caso contrário, será 0.

Evento de registro

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

Registre um evento usando um callback com opções.

A função registra um evento representado como EventWriterFunct e um contexto appData específico do app. A função grava os metadados do evento e chama a inEventWriter com uma referência nl::Weave::TLV::TLVWriter e um contexto de inAppData para que o código do usuário possa emitir os dados do evento diretamente para o log de eventos. Essa forma de registro de eventos minimiza o consumo de memória, já que os dados de eventos são serializados diretamente no buffer de destino. Os dados do evento PRECISAM conter tags de contexto para serem interpretados no esquema identificado por inProfileID e inEventType. A tag do primeiro elemento será ignorada, e o sistema de registro de eventos a substituirá pela tag eventData.

O evento será registrado se a inimportance exceder o limite de geração de registros especificado na LoggingConfiguration. Se a importância do evento não atingir o limite atual, ela será descartada e a função retornará um 0 como o ID do evento resultante.

Essa variante da invocação permite que o autor da chamada defina qualquer combinação de EventOptions:

  • timestamp, quando 0 assume como padrão a hora atual no ponto da chamada,
  • Seção "quot;root" da fonte do evento (origem do evento e código da característica)". Se NULL, o padrão é o dispositivo atual. O evento é marcado como relacionado ao dispositivo que está fazendo a chamada.
  • Um ID de evento relacionado para agrupar IDs de evento. Quando o ID do evento relacionado é 0, o evento é marcado como não relacionado a outros eventos.
  • urgência; por padrão, não é urgente.

Detalhes
Parâmetros
[in] inSchema
Esquema que define a importância, o ID do perfil e o tipo de estrutura desse evento.
[in] inEventWriter
O callback a ser invocado para serializar os dados do evento.
[in] inAppData
Contexto do aplicativo para o callback.
[in] inOptions
As opções dos metadados do evento. Pode ser NULL.
Retorna
event_id_t O ID do evento, se o evento foi gravado no registro, caso contrário, será 0.

LogFreeform

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

O LogFreeform emite uma string de formato livre para o fluxo de eventos padrão.

A string será encapsulada em uma estrutura de evento de depuração, estruturalmente idêntica a outras strings registradas. O ID do perfil será de um evento do Nest Debug, e o tipo de evento será kNestDebug_StringLogEntryEvent.

Detalhes
Parâmetros
[in] inImportance
Importância da entrada de registro. Se a importância estiver abaixo da importância atual, o evento não será registrado.
[in] inFormat
String de formato compatível com printf, seguida de argumentos a serem formatados
Retorna
event_id_t O ID do evento, se o evento foi gravado no registro, caso contrário, será 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
)

Uma função auxiliar para emitir um texto em formato livre como um evento de depuração.

O evento de depuração é uma estrutura com logregion e um texto de forma livre.

Detalhes
Parâmetros
[in,out] ioWriter
O roteirista a ser usado para gravar o evento
[in] appData
Um ponteiro para o DebugLogContext, uma estrutura que contém um formato de string, argumentos e uma região de registro
[in] inDataTag
Uma tag de contexto para o TLV que estamos gravando. Não é usado aqui, mas é exigido pelo typedef para EventWriterFunct.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
other
Outros erros que retornam do ioWriter.

PlainTextWriter

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

Uma função auxiliar para emitir um texto em formato livre como um evento de depuração.

O evento de depuração é uma estrutura com logregion e um texto de forma livre.

Detalhes
Parâmetros
[in,out] ioWriter
O roteirista a ser usado para gravar o evento
[in] inDataTag
A tag a ser emitida
[in] appData
Um ponteiro para o DebugLogContext, uma estrutura que contém um formato de string, argumentos e uma região de registro
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
other
Outros erros que podem ser retornados do ioWriter.

Operador!=

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

Operador==

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