нл:: Переплетение:: Профили:: DataManagement_Current

Это пространство имен включает в себя все интерфейсы внутри Weave для профиля Weave Data Management (WDM), которые в настоящее время поддерживаются для производственного использования.

Краткое содержание

Перечисления

@100 {
kTag_Region = 1,
kTag_Message = 2
}
перечисление
Теги для kNestDebug_StringLogEntryEvent.
@101 {
kTag_Token = 1,
kTag_Args = 2
}
перечисление
Теги для события kNestDebug_TokenizedLogEntryEvent.
@102 перечисление
Теги для сохраняющихся событий.
@104 перечисление
Типы сообщений профиля WDM.
@105 перечисление
Коды состояния, специфичные для WDM.
@147 перечисление
@95 {
kTag_CurrentImportance = 1,
kTag_ImportanceExpiration ,
kTag_MinimumLogUploadInterval ,
kTag_MaximumLogUploadInterval ,
kTag_LoggingDestination ,
kTag_TraitLoggingImportance
}
перечисление
Теги настроек журналирования .
@96 {
kTag_SupportedLogTransports = 1,
kTag_SupportsStreaming = 2,
kTag_SupportsNonVolatileStorage = 3,
kTag_SupportsPerTraitVerbosity = 4,
kTag_LoggingVolume = 5,
kTag_LogBufferingCapacity = 6
}
перечисление
Теги для возможностей ведения журнала.
@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
}
перечисление
Теги для метаданных событий.
@98 перечисление
Определения профиля для признака отладки.
@99 {
kNestDebug_StringLogEntryEvent = 1,
kNestDebug_TokenizedLogEntryEvent = 2,
kNestDebug_TokenizedHeaderEntryEvent = 3
}
перечисление
Типы событий для особенности Nest Debug.
CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
перечисление
ImportanceType {
ProductionCritical = 1,
Production ,
Info ,
Debug
}
перечисление
Важность записи в журнале.
LoggingManagementStates {
kLoggingManagementState_Idle = 1,
kLoggingManagementState_InProgress = 2,
kLoggingManagementState_Holdoff = 3,
kLoggingManagementState_Shutdown = 4
}
перечисление
TimestampType перечисление
Срок действия и тип метки времени, включенной в EventOptions .

Определения типов

CommandFlags определение типа
DataVersion определение типа
uint64_t
EventProcessor определение типа
void *
EventWriterFunct )(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData) определение типа
Функция, предоставляющая элемент eventData для подсистемы регистрации событий.
FetchExternalEventsFunct )(EventLoadOutContext *aContext) определение типа
Прототип функции для обратных вызовов платформы, извлекающих данные о событиях.
GenericTraitSinkCatalog определение типа
GenericTraitSourceCatalog определение типа
ImportanceType определение типа
Важность записи в журнале.
IteratorCallback )(void *aTraitInstance, TraitDataHandle aHandle, void *aContext) определение типа
void(*
Итератор дескриптора признака.
LoggingBufferHandler )(void *inAppState, PacketBuffer *inBuffer) определение типа
NotifyExternalEventsDeliveredFunct )(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID) определение типа
void(*
Прототип функции для обратного вызова, вызываемого при доставке внешних событий удаленному подписчику.
NotifyExternalEventsEvictedFunct )(ExternalEvents *inEv) определение типа
void(*
Прототип функции обратного вызова, вызываемого при удалении внешних событий из буферов.
PropertyDictionaryKey определение типа
uint16_t
PropertyPathHandle определение типа
uint32_t
PropertyPathHandle — это уникальный 32-битный числовой хеш пути WDM относительно корня экземпляра признака.
PropertySchemaHandle определение типа
uint16_t
SchemaVersion определение типа
uint16_t
SingleResourceSinkTraitCatalog определение типа
SingleResourceSourceTraitCatalog определение типа
TimestampType определение типа
Срок действия и тип метки времени, включенной в EventOptions .
TraitDataHandle определение типа
uint16_t
duration_t nl::Weave::Profiles::DataManagement_Current::duration_t
uint32_t
Тип, используемый для описания продолжительности в миллисекундах.
event_id_t nl::Weave::Profiles::DataManagement_Current::event_id_t
uint32_t
Тип идентификатора события.
timestamp_t nl::Weave::Profiles::DataManagement_Current::timestamp_t
uint32_t
Тип, используемый для описания отметки времени в миллисекундах.
utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::utc_timestamp_t
uint64_t
Тип, используемый для описания отметки времени UTC в миллисекундах.

Переменные

sInstance
sLogFileName = "topazlog"[]
char

Функции

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)
Вспомогательная функция, которая преобразует уже сериализованный элемент eventdata в буфер событий.
GetPropertyDictionaryKey ( PropertyPathHandle aHandle)
PropertyDictionaryKey
GetPropertySchemaHandle ( PropertyPathHandle aHandle)
PropertySchemaHandle
IsNullPropertyPathHandle ( PropertyPathHandle aHandle)
bool
IsRootPropertyPathHandle ( PropertyPathHandle aHandle)
bool
IsVersionNewer (const DataVersion & aVersion, const DataVersion & aReference)
bool
Это оптимизированная реализация алгоритма сравнения версий.
IsVersionNewerOrEqual (const DataVersion & aVersion, const DataVersion & aReference)
bool
Locate (TraitDataHandle aTraitDataHandle, const TraitCatalogBase < TraitDataSink > *aDataSinkCatalog)
Служебная функция, которая находит TraitUpdatableDataSink в каталоге TraitDataSink .
LogEvent (const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
Зарегистрируйте событие из предварительно сериализованной формы.
LogEvent (const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
Зарегистрируйте событие из предварительно сериализованной формы с дополнительными параметрами.
LogEvent (const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
Зарегистрируйте событие с помощью обратного вызова.
LogEvent (const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Зарегистрируйте событие с помощью обратного вызова с опциями.
LogFreeform ( ImportanceType inImportance, const char *inFormat, ...)
LogFreeform передает строку произвольной формы в поток событий по умолчанию.
LookForElementWithTag (const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
PlainTextWriter ( TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Вспомогательная функция для вывода текста произвольной формы в качестве события отладки.
PlainTextWriter (:: nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
Вспомогательная функция для вывода текста произвольной формы в качестве события отладки.
operator!= (const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool
operator== (const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
bool

Классы

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

Базовый класс для кодировщиков сообщений WDM.

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

TTLVReader, поддерживаемый CircularEventBuffer .

nl:: Weave:: Profiles:: DataManagement_Current:: Команда
nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
nl:: Weave:: Profiles:: DataManagement_Current:: GenericTraitCatalogImpl

Weave предоставил реализацию интерфейса TraitCatalogBase для коллекции экземпляров данных признаков, которые все ссылаются на один и тот же ресурс.

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

Интерфейс, который должен быть реализован обработчиком элементов данных в NotifyRequest.

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

Интерфейс, который должен быть реализован приложением для сериализации доступа к ключевым структурам данных WDM.

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

Интерфейс объекта-мьютекса.

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

Базовый класс для кодировщиков сообщений WDM, специализирующийся на элементах массива TLV , таких как списки данных и списки версий.

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

Базовый класс для анализаторов сообщений WDM, специализирующийся на элементах массива TLV, таких как списки данных и списки версий.

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

LoggingConfiguration инкапсулирует настраиваемый компонент подсистемы регистрации событий Weave.

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

Класс для управления журналами событий в памяти.

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

Базовый класс для анализаторов сообщений WDM.

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

Структура, инкапсулирующая идентификатор ресурса.

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

Это синглтон, в котором размещаются все подписки WDM Next, как на стороне клиента, так и на стороне издателя.

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

Механизм схемы принимает информацию о схеме, связанную с конкретным признаком, и предоставляет средства для анализа и перевода ее в форму, пригодную для использования механизмом WDM.

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

Служебный класс для возврата словаря в ожидающую очередь при обработке пути к свойству, у которого есть дочерний словарь.

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

Класс утилиты для фильтрации пути при обработке уведомлений.

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

Этот объект кодирует полезные данные WDM UpdateRequest и PartialUpdateRequest.

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

Структуры

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

Внутренний буфер событий, построенный на основе nl::Weave::TLV::WeaveCircularTLVBuffer .

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

Внутренняя структура для перемещения по списку событий.

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

Структура, обеспечивающая полное разрешение экземпляра признака.

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

Внутренняя структура для обхода событий.

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

Структура копирования списков событий на вывод.

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

Структура, предоставляющая параметры для различных полей событий.

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

Структура, определяющая схему метаданных событий.

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

Структура для отслеживания событий, хранящихся на платформе.

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

Вспомогательный класс, используемый при инициализации управления журналированием.

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

Союзы

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

Объединение, предоставляющее систему набора приложений или временную метку UTC.

Пространства имен

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

Определение пользовательской команды WDM.

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

Определение ответа на пользовательскую команду WDM.

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

Определение элемента данных WDM.

nl:: Weave:: Profiles:: DataManagement_Current:: DataList
nl:: Weave:: Profiles:: DataManagement_Current:: Событие
nl:: Weave:: Profiles:: DataManagement_Current:: EventList
nl:: Weave:: Profiles:: DataManagement_Current:: NotificationRequest
nl:: Weave:: Profiles:: DataManagement_Current:: Путь

Определение пути WDM.

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

Определение списка путей WDM.

nl::Weave:: Profiles:: DataManagement_Current:: Платформа
nl:: Weave:: Profiles:: DataManagement_Current:: RejectionRecord
nl:: Weave:: Profiles:: DataManagement_Current:: RejectionRecordList
nl:: Weave:: Profiles:: DataManagement_Current:: StatusElement

Определение элемента состояния 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

Определение запроса на обновление 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

Перечисления

@100

 @100

Теги для события kNestDebug_StringLogEntryEvent.

Характеристики
kTag_Message

Строка, содержащая фактическое сообщение отладки.

kTag_Region

32-битное беззнаковое число, указывающее область журнала, т. е. модуль, к которому относится сообщение журнала.

@101

 @101

Теги для kNestDebug_TokenizedLogEntryEvent.

Характеристики
kTag_Args

Массив аргументов, которые будут отправлены вместе с сообщением токена.

kTag_Token

32-битное беззнаковое значение, соответствующее токену.

@102

 @102

Теги для сохраняющихся событий.

@104

 @104

Типы сообщений профиля WDM.

Эти значения указаны в спецификации управления данными.

@105

 @105

Коды состояния, специфичные для WDM.

@147

 @147

@95

 @95

Теги настроек журналирования .

Характеристики
kTag_CurrentImportance

Текущая важность регистрации, значение имеет тип ImportanceType.

kTag_ImportanceExpiration

Время в секундах по всемирному координированному времени, когда текущие параметры ведения журнала с повышенными правами вернутся к значениям по умолчанию.

kTag_LoggingDestination

URL-адрес, обозначающий место назначения для загрузки журнала.

kTag_MaximumLogUploadInterval

Максимальная продолжительность в секундах между автоматически запускаемыми попытками загрузки журнала.

kTag_MinimumLogUploadInterval

Минимальная продолжительность в секундах между автоматически запускаемыми попытками загрузки журнала.

kTag_TraitLoggingImportance

Дополнительный массив, выборочно отображающий выбранные профили на более высокие уровни журналирования.

Каждый элемент массива принимает форму (профиль, путь, важность ведения журнала) для выборочного повышения уровня ведения журнала в подмножестве системы. Повышенный приоритет ведения журнала профиля имеет значение только в том случае, если приоритет ведения журнала превышает приоритет currentImportance и имеет тот же срок действия, что и currentImportance.

@96

 @96

Теги для возможностей ведения журнала.

Характеристики
kTag_LogBufferingCapacity

32-битное целое число без знака, описывающее емкость буфера журнала в КБ.

kTag_LoggingVolume

32-битное целое число без знака, описывающее ожидаемый объем журнала в КБ/день.

kTag_SupportedLogTransports

Массив поддерживаемых механизмов транспортировки журналов.

kTag_SupportsNonVolatileStorage

Логическое значение, указывающее, поддерживает ли устройство энергонезависимое хранение журналов.

kTag_SupportsPerTraitVerbosity

Логическое значение, указывающее, поддерживает ли устройство настройки детализации для каждого признака.

kTag_SupportsStreaming

Логическое значение, указывающее, поддерживает ли устройство потоковую передачу журналов.

@97

 @97

Теги для метаданных событий.

Полную семантику значений тегов см. в Спецификации дизайна событий.

Характеристики
kTag_EventData

Необязательный. Сами данные о событии. Если оно пусто, по умолчанию используется пустая структура.

kTag_EventDeltaSystemTime

Внутренний тег WDM, разница во времени с предыдущим событием в кодировке.

kTag_EventDeltaUTCTime

Внутренний тег WDM, разница во времени с предыдущим событием в кодировке.

kTag_EventID

Порядковый номер события, выраженный как 64-битная беззнаковая величина.

Должны быть последовательными, скачки в последовательности указывают на разрывы событий.

kTag_EventImportance

Важность мероприятия.

kTag_EventResourceID

Необязательный.

Значением является идентификатор ресурса, к которому относится событие. Если этот параметр опущен, значение совпадает со значением kTag_EventSource.

kTag_EventSource

NodeID устройства, сгенерировавшего событие.

kTag_EventSystemTimestamp

Необязательный. Системная временная метка события в миллисекундах.

kTag_EventTraitInstanceID

Необязательно, экземпляр признака, сгенерировавшего событие.

kTag_EventTraitProfileID

Обязательный. 32-битное целое число без знака, равное ProfileID признака.

kTag_EventType

Обязательный. 16-битное целое число без знака, равное wdl.event.id для этого типа события.

kTag_EventUTCTimestamp

Необязательный. Временная метка события в формате UTC в миллисекундах.

kTag_ExternalEventStructure

Внутренний тег для внешних событий. Никогда не передается по сети и никогда не должен использоваться за пределами библиотеки Weave.

kTag_RelatedEventID

Необязательный.

Идентификатор события, с которым связано это событие. Если этот параметр опущен, значение равно значению kTag_EventID.

kTag_RelatedEventImportance

Необязательный.

Важность соответствующего события. Если этот параметр опущен, значение равно значению kTag_EventImportance.

@98

 @98

Определения профиля для признака отладки.

@99

 @99

Типы событий для особенности Nest Debug.

Характеристики
kNestDebug_StringLogEntryEvent

Событие для отладочного сообщения произвольной строки.

kNestDebug_TokenizedHeaderEntryEvent

Событие для передачи токенизированной информации заголовка.

kNestDebug_TokenizedLogEntryEvent

Событие для токенизированного отладочного сообщения.

Командные флаги

 CommandFlags
Характеристики
kCommandFlag_ActionTimeValid

Установите, когда время действия действительно.

kCommandFlag_ExpiryTimeValid

Установите, когда срок годности действителен.

kCommandFlag_InitiationTimeValid

Установите, когда время инициализации действительно.

kCommandFlag_IsOneWay

Установите, когда команда односторонняя.

kCommandFlag_MustBeVersionValid

Установите, когда поле версии действительно.

Тип важности

 ImportanceType

Важность записи в журнале.

Важность используется как способ фильтрации событий до того, как они будут фактически занесены в журнал. После того как событие занесено в журнал, мы не предпринимаем никаких дополнительных мер по его удалению из журнала. Уровень важности служит для определения приоритета хранения событий. Если событие высокой важности добавляется в полный буфер, события удаляются в порядке важности (и возраста), чтобы разместить его. Таким образом, уровни важности имеют лишь относительную ценность. Если система использует только один уровень важности, события отбрасываются только в порядке возраста, как в кольцевом буфере.

Характеристики
Debug

Важность отладки обозначает записи журнала, представляющие интерес для разработчиков системы, и используется в основном на этапе разработки.

Журналы важности отладки не учитываются в бюджете пропускной способности или мощности ограниченных устройств; в результате их необходимо использовать в производственных системах только в течение ограниченного периода времени.

Info

Важность информации обозначает записи журнала, которые обеспечивают дополнительную информацию и диагностику работающей системы.

Уровень регистрации информации можно использовать в течение длительного периода времени в производственной системе или в качестве уровня журнала по умолчанию при полевых испытаниях. На устройствах с ограничениями записи, зарегистрированные на уровне Info, должны учитываться в бюджете пропускной способности и памяти, но не в бюджете мощности.

Production

Производственная важность обозначает записи журнала, которые используются для постоянного мониторинга и обслуживания экосистемы Nest.

На устройствах с ограничениями записи, зарегистрированные с производственной важностью, должны учитываться в бюджете мощности и памяти, поскольку ожидается, что они всегда регистрируются и выгружаются с устройства.

ProductionCritical

Критическая важность производства означает события, потеря которых напрямую повлияет на функции, ориентированные на клиента.

Приложения могут использовать события потери производственных критических событий для обозначения сбоя системы. На устройствах с ограничениями записи, зарегистрированные с критической важностью для производства, должны учитываться в бюджете мощности и памяти, поскольку ожидается, что они всегда регистрируются и выгружаются с устройства.

Состояния управления журналированием

 LoggingManagementStates
Характеристики
kLoggingManagementState_Holdoff

Выгрузка журнала завершена; мы не перезапускаем журнал до истечения срока задержки.

kLoggingManagementState_Idle

Выгрузка журнала не выполняется, выгрузку журнала можно начать без каких-либо ограничений.

kLoggingManagementState_InProgress

Выполняется выгрузка журнала.

kLoggingManagementState_Shutdown

Не способен выполнять какие-либо операции регистрации.

Тип метки времени

 TimestampType

Срок действия и тип метки времени, включенной в EventOptions .

Определения типов

Командные флаги

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

Версия данных

uint64_t DataVersion

Событийный процессор

void * EventProcessor

СобытиеПисательФункция

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

Функция, предоставляющая элемент eventData для подсистемы регистрации событий.

Ожидается, что функции этого типа будут предоставлять элемент eventData для подсистемы регистрации событий. Функции этого типа вызываются после того, как подсистема событий сгенерировала все необходимые метаданные события. Функция вызывается с объектом nl::Weave::TLV::TLVWriter, в который она будет передавать один элемент TLV с тегом kTag_EventData; значение этого элемента ДОЛЖНО быть структурой, содержащей данные о событии. Сами данные о событии должны быть структурированы с использованием контекстных тегов.

Подробности
Параметры
[in,out] ioWriter
Ссылка на объект nl::Weave::TLV::TLVWriter, который будет использоваться для сериализации данных событий.
[in] inDataTag
Тег контекста для TLV , который мы записываем.
[in] appData
Указатель на контекст конкретного приложения.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Соответствующая ошибка, сигнализирующая вызывающей стороне о том, что сериализация данных события не может быть завершена. Ошибки от вызовов ioWriter должны распространяться без переназначения. Если функция возвращает ошибку любого типа, генерация события прерывается, и событие не записывается в журнал.
Смотрите также:
PlainTextWriter
EventWriterTLVCopy

Функция FetchExternalEventsFunct

WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)

Прототип функции для обратных вызовов платформы, извлекающих данные о событиях.

Подобно FetchEventsSince, эта функция выборки возвращает все события от EventLoadOutContext.mStartingEventID до ExternalEvents.mLastEventID .

Указатель контекста имеет тип FetchExternalEventsContext. Сюда входит EventLoadOutContext с некоторыми вспомогательными переменными для формата TLV . Он также включает указатель на структуру ExternalEvents , созданную при регистрации обратного вызова. Это указывает диапазон идентификаторов событий для обратного вызова.

При возврате из функции EventLoadOutContext.mCurrentEventID должен отражать первый идентификатор события, который не был успешно записан в буфер TLV . Платформа должна записать заголовок события и данные в модуль записи TLV в правильном формате, указанном протоколом EventLogging. Платформа также должна поддерживать уникальность событий и временных меток.

Все ошибки TLV должны распространяться на более высокие уровни. Например, нехватка места в буфере вызовет отправку сообщения, за которым последует еще один вызов обратного вызова с тем идентификатором события, который останется.

Подробности
Возвращаемые значения
WEAVE_ERROR_NO_MEMORY
Если нет места для записи событий.
WEAVE_ERROR_BUFFER_TOO_SMALL
Если нет места для записи событий.
WEAVE_NO_ERROR
Об успехе.
WEAVE_END_OF_TLV
Об успехе.

GenericTraitSinkCatalog

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

GenericTraitSourceКаталог

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

Тип важности

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

Важность записи в журнале.

Важность используется как способ фильтрации событий до того, как они будут фактически занесены в журнал. После того как событие занесено в журнал, мы не предпринимаем никаких дополнительных мер по его удалению из журнала. Уровень важности служит для определения приоритета хранения событий. Если событие высокой важности добавляется в полный буфер, события удаляются в порядке важности (и возраста), чтобы разместить его. Таким образом, уровни важности имеют лишь относительную ценность. Если система использует только один уровень важности, события отбрасываются только в порядке возраста, как в кольцевом буфере.

ИтераторОбратный вызов

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

Итератор дескриптора признака.

ЖурналированиеBufferHandler

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

NotifyExternalEventsDeliveredFunct

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

Прототип функции для обратного вызова, вызываемого при доставке внешних событий удаленному подписчику.

Когда внешние события доставляются удаленному подписчику, механизм отправляет уведомление поставщику внешних событий. Обратный вызов содержит событие с последним доставленным идентификатором и идентификатор подписчика, получившего событие.

Подробности
Параметры
[in] inEv
Объект внешних событий, соответствующий доставленным событиям
[in] inLastDeliveredEventID
Идентификатор последнего события, доставленного подписчику.
[in] inRecipientNodeID
ID узла Weave получателя

УведомитьExternalEventsEvictedFunct

void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)

Прототип функции обратного вызова, вызываемого при удалении внешних событий из буферов.

Когда объект внешних событий удаляется из буфера исходящих сообщений, механизм отправляет уведомление внешнему поставщику событий. Обратный вызов содержит внешнее событие, которое необходимо вытеснить.

Подробности
Параметры
[in] inEv
Объект внешних событий, подлежащий выселению

PropertyDictionaryKey

uint16_t PropertyDictionaryKey

PropertyPathHandle

uint32_t PropertyPathHandle

PropertyPathHandle — это уникальный 32-битный числовой хеш пути WDM относительно корня экземпляра признака.

Он состоит из двух частей:

  • Младшее 16-битное число, соответствующее статической части схемы.
  • Там, где нижние 16 бит относятся к пути внутри элемента словаря, присутствует верхнее 16-битное число, которое представляет ключ словаря, связанный с этим элементом. Если нижние 16 бит относятся к элементу, не являющемуся словарем, то старшие 16 бит должны быть равны 0.

Некоторые характеристики:

  • У каждого типажа есть свое собственное пространство для дескрипторов пути к свойствам.
  • Каждый уникальный путь подпути WDM будет иметь аналогичный уникальный PropertyPathHandle.
  • PropertyPathHandles автоматически генерируются (на данный момент вручную) компилятором типажей из IDL и представлены в виде перечислимого списка в заголовочном файле соответствующего типажа.
  • Благодаря этой конструкции логике приложения никогда не приходится напрямую иметь дело с путями WDM. Скорее, их взаимодействие с WDM осуществляется исключительно через эти дескрипторы.
  • Существует два зарезервированных значения для дескрипторов пути, которые имеют конкретное значение:
    • 0 указывает на дескриптор NULL.
    • 1 указывает на дескриптор, указывающий на корень экземпляра признака.

PropertySchemaHandle

uint16_t PropertySchemaHandle

СхемаВерсия

uint16_t SchemaVersion

SingleResourceSinkTraitCatalog

SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog

SingleResourceSourceTraitCatalog

SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog

Тип метки времени

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

Срок действия и тип метки времени, включенной в EventOptions .

TraitDataHandle

uint16_t TraitDataHandle

продолжительность_t

uint32_t duration_t

Тип, используемый для описания продолжительности в миллисекундах.

event_id_t

uint32_t event_id_t

Тип идентификатора события.

временная метка_t

uint32_t timestamp_t

Тип, используемый для описания отметки времени в миллисекундах.

utc_timestamp_t

uint64_t utc_timestamp_t

Тип, используемый для описания отметки времени UTC в миллисекундах.

Переменные

Экземпляр

LoggingManagement sInstance

имя_файла_лога

char sLogFileName[] = "topazlog"

Функции

Бдксеррорхандлер

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
)

Бдксксфереррорхандлер

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
)

Вспомогательная функция, которая преобразует уже сериализованный элемент eventdata в буфер событий.

Подробности
Параметры
[in,out] ioWriter
Писатель, который будет использоваться для записи события
[in] inDataTag
Контекстный тег для TLV , который мы копируем. Здесь не используется, но требуется определением типа для EventWriterFunct.
[in] appData
Указатель на TLVReader, содержащий сериализованные данные о событиях.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Другие ошибки, которые могут быть возвращены ioWriter.

GetPropertyDictionaryKey

PropertyDictionaryKey GetPropertyDictionaryKey(
  PropertyPathHandle aHandle
)

GetPropertySchemaHandle

PropertySchemaHandle GetPropertySchemaHandle(
  PropertyPathHandle aHandle
)

IsNullPropertyPathHandle

bool IsNullPropertyPathHandle(
  PropertyPathHandle aHandle
)

IsRootPropertyPathHandle

bool IsRootPropertyPathHandle(
  PropertyPathHandle aHandle
)

IsVersionНовый

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

Это оптимизированная реализация алгоритма сравнения версий.

На стороне клиента версия, полученная от сервиса, всегда является самой последней.

IsVersionNewerOrEqual

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

Найдите

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

Служебная функция, которая находит TraitUpdatableDataSink в каталоге TraitDataSink .

Подробности
Параметры
[in] aTraitDataHandle
Дескриптор раковины для поиска.
[in] aDataSinkCatalog
Каталог для поиска.
Возврат
Указатель на TraitUpdatableDataSink ; NULL, если дескриптор не существует или указывает на необновляемый TraitDataSink .

ЖурналСобытие

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

Зарегистрируйте событие из предварительно сериализованной формы.

Функция регистрирует событие, представленное как nl::Weave::TLV::TLVReader . Это означает, что представление данных события уже сериализовано в хранилище, лежащем в основе nl::Weave::TLV::TLVReader . Ожидается , что nl::Weave::TLV::TLVReader будет содержать как минимум один элемент данных, этот элемент должен быть структурой. Первый элемент, считанный из считывателя, рассматривается как данные события и сохраняется в журнале событий. Данные о событии ДОЛЖНЫ содержать теги контекста для интерпретации в рамках схемы, идентифицируемой inProfileID и inEventType. Тег первого элемента будет игнорироваться; система регистрации событий заменит его тегом eventData.

Событие регистрируется, если его inImportance превышает порог регистрации, указанный в LoggingConfiguration . Если важность события не соответствует текущему порогу, оно отбрасывается, и функция возвращает 0 в качестве идентификатора результирующего события.

Этот вариант вызова неявно определяет все параметры событий по умолчанию:

  • событию присваивается текущее время в момент вызова,
  • событие помечается как относящееся к устройству, с которого осуществляется вызов,
  • событие является самостоятельным, не связанным с другими событиями,
  • событие помечено как несрочное,

Подробности
Параметры
[in] inSchema
Схема, определяющая важность, идентификатор профиля и тип структуры этого события.
[in] inData
Устройство чтения TLV , содержащее данные о событии в качестве первого элемента.
Возврат
event_id_t Идентификатор события, если событие было записано в журнал, в противном случае — 0.

ЖурналСобытие

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

Зарегистрируйте событие из предварительно сериализованной формы с дополнительными параметрами.

Функция регистрирует событие, представленное как nl::Weave::TLV::TLVReader . Это означает, что представление данных события уже сериализовано в хранилище, лежащем в основе nl::Weave::TLV::TLVReader . Ожидается , что nl::Weave::TLV::TLVReader будет содержать как минимум один элемент данных, этот элемент должен быть структурой. Первый элемент, считанный из считывателя, рассматривается как данные события и сохраняется в журнале событий. Данные о событии ДОЛЖНЫ содержать теги контекста для интерпретации в рамках схемы, идентифицируемой inProfileID и inEventType. Тег первого элемента будет игнорироваться; система регистрации событий заменит его тегом eventData.

Событие регистрируется, если его inImportance превышает порог регистрации, указанный в LoggingConfiguration . Если важность события не соответствует текущему порогу, оно отбрасывается, и функция возвращает 0 в качестве идентификатора результирующего события.

Этот вариант вызова позволяет вызывающей стороне установить любую комбинацию EventOptions :

  • временная метка, когда 0 по умолчанию соответствует текущему времени в момент вызова,
  • «корневой» раздел источника событий (источник события и идентификатор признака); если NULL, по умолчанию используется текущее устройство. событие помечается как относящееся к устройству, с которого осуществляется вызов,
  • связанный идентификатор события для группировки идентификаторов событий; когда идентификатор связанного события равен 0, событие помечается как не относящееся ни к каким другим событиям,
  • острая необходимость; по умолчанию несрочное.

Подробности
Параметры
[in] inSchema
Схема, определяющая важность, идентификатор профиля и тип структуры этого события.
[in] inData
Устройство чтения TLV , содержащее данные о событии в качестве первого элемента. Не должно быть НУЛЕМ
[in] inOptions
Параметры метаданных события. Может быть НУЛЬ.
Возврат
event_id_t Идентификатор события, если событие было записано в журнал, в противном случае — 0.

ЖурналСобытие

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

Зарегистрируйте событие с помощью обратного вызова.

Функция регистрирует событие, представленное как EventWriterFunct , и контекст appData , специфичный для приложения. Функция записывает метаданные события и вызывает inEventWriter со ссылкой на nl::Weave::TLV::TLVWriter и контекстом inAppData , чтобы пользовательский код мог отправлять данные о событии непосредственно в журнал событий. Эта форма регистрации событий минимизирует потребление памяти, поскольку данные о событиях сериализуются непосредственно в целевой буфер. Данные о событии ДОЛЖНЫ содержать теги контекста, которые будут интерпретироваться в схеме, идентифицируемой inProfileID и inEventType . Тег первого элемента будет игнорироваться; система регистрации событий заменит его тегом eventData.

Событие регистрируется, если его inImportance превышает порог регистрации, указанный в LoggingConfiguration . Если важность события не соответствует текущему порогу, оно отбрасывается, и функция возвращает 0 в качестве идентификатора результирующего события.

Этот вариант вызова неявно определяет все параметры событий по умолчанию:

  • событию присваивается текущее время в момент вызова,
  • событие помечается как относящееся к устройству, с которого осуществляется вызов,
  • событие является самостоятельным, не связанным с другими событиями,
  • событие помечено как несрочное,

Подробности
Параметры
[in] inSchema
Схема, определяющая важность, идентификатор профиля и тип структуры этого события.
[in] inEventWriter
Обратный вызов, который нужно вызвать для фактической сериализации данных события.
[in] inAppData
Контекст приложения для обратного вызова.
Возврат
event_id_t Идентификатор события, если событие было записано в журнал, в противном случае — 0.

ЖурналСобытие

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

Зарегистрируйте событие с помощью обратного вызова с опциями.

Функция регистрирует событие, представленное как EventWriterFunct , и контекст appData , специфичный для приложения. Функция записывает метаданные события и вызывает inEventWriter со ссылкой на nl::Weave::TLV::TLVWriter и контекстом inAppData , чтобы пользовательский код мог отправлять данные о событии непосредственно в журнал событий. Эта форма регистрации событий минимизирует потребление памяти, поскольку данные о событиях сериализуются непосредственно в целевой буфер. Данные о событии ДОЛЖНЫ содержать теги контекста, которые будут интерпретироваться в схеме, идентифицируемой inProfileID и inEventType . Тег первого элемента будет игнорироваться; система регистрации событий заменит его тегом eventData.

Событие регистрируется, если его inImportance превышает порог регистрации, указанный в LoggingConfiguration . Если важность события не соответствует текущему порогу, оно отбрасывается, и функция возвращает 0 в качестве идентификатора результирующего события.

Этот вариант вызова позволяет вызывающей стороне установить любую комбинацию EventOptions :

  • временная метка, когда 0 по умолчанию соответствует текущему времени в момент вызова,
  • «корневой» раздел источника событий (источник события и идентификатор признака); если NULL, по умолчанию используется текущее устройство. событие помечается как относящееся к устройству, с которого осуществляется вызов,
  • связанный идентификатор события для группировки идентификаторов событий; когда идентификатор связанного события равен 0, событие помечается как не относящееся ни к каким другим событиям,
  • острая необходимость; по умолчанию несрочное.

Подробности
Параметры
[in] inSchema
Схема, определяющая важность, идентификатор профиля и тип структуры этого события.
[in] inEventWriter
Обратный вызов, который нужно вызвать для фактической сериализации данных события.
[in] inAppData
Контекст приложения для обратного вызова.
[in] inOptions
Параметры метаданных события. Может быть НУЛЬ.
Возврат
event_id_t Идентификатор события, если событие было записано в журнал, в противном случае — 0.

ЖурналFreeform

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

LogFreeform передает строку произвольной формы в поток событий по умолчанию.

Строка будет инкапсулирована в структуру событий отладки, структурно идентичную другим зарегистрированным строкам. Идентификатор профиля события будет идентификатором события Nest Debug, а тип события — kNestDebug_StringLogEntryEvent .

Подробности
Параметры
[in] inImportance
Важность записи журнала; если важность падает ниже текущей важности, событие фактически не регистрируется
[in] inFormat
строка формата, совместимая с printf , за которой следуют аргументы для форматирования
Возврат
event_id_t Идентификатор события, если событие было записано в журнал, в противном случае — 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
)

Вспомогательная функция для вывода текста произвольной формы в качестве события отладки.

Событие отладки представляет собой структуру с областью журнала и текстом произвольной формы.

Подробности
Параметры
[in,out] ioWriter
Писатель, который будет использоваться для записи события
[in] appData
Указатель на DebugLogContext — структуру, содержащую строковый формат, аргументы и область журнала.
[in] inDataTag
Тег контекста для TLV , который мы записываем. Здесь не используется, но требуется определением типа для EventWriterFunct.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Другие ошибки, которые могут быть возвращены ioWriter.

PlainTextWriter

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

Вспомогательная функция для вывода текста произвольной формы в качестве события отладки.

Событие отладки представляет собой структуру с областью журнала и текстом произвольной формы.

Подробности
Параметры
[in,out] ioWriter
Писатель, который будет использоваться для записи события
[in] inDataTag
Тег, который нужно выдать
[in] appData
Указатель на DebugLogContext — структуру, содержащую строковый формат, аргументы и область журнала.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Другие ошибки, которые могут быть возвращены ioWriter.

оператор!=

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

оператор==

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