Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

nl :: 編織:: 個人資料:: 數據管理_當前

該名稱空間包括Weave中Weave數據管理(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是WDM路徑相對於特徵實例根的唯一32位數字哈希。
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
事件ID的類型。
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)
TraitDataSink目錄中找到TraitUpdatableDataSink的實用程序函數。
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 ::編織::配置文件:: DataManagement_Current :: AlwaysAcceptDataElementAccessControlDelegate
nl ::編織::配置文件:: DataManagement_Current :: BuilderBase

WDM消息編碼器的基類。

nl ::編織::配置文件:: DataManagement_Current :: CircularEventReader

CircularEventBuffer支持的TLVReader。

nl ::編織::配置文件:: DataManagement_Current ::命令
nl ::編織::配置文件:: DataManagement_Current :: CommandSender
nl ::編織::配置文件:: DataManagement_Current :: GenericTraitCatalogImpl

Weave提供了TraitCatalogBase接口的實現,用於所有都引用同一資源的特徵數據實例的集合。

nl ::編織::配置文件:: DataManagement_Current :: IDataElementAccessControlDelegate

由NotifyRequest中的數據元素的處理器實現的接口。

nl ::編織::配置文件:: DataManagement_Current :: IDirtyPathCut
nl ::編織::配置文件:: DataManagement_Current :: IPathFilter
nl :: Weave :: Profiles :: DataManagement_Current :: IWeavePublisherLock

由應用程序實現的接口,用於序列化對關鍵WDM數據結構的訪問。

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

互斥對象的接口。

nl ::編織::配置文件:: DataManagement_Current :: ListBuilderBase

WDM消息編碼器的基類,專門用於TLV數組元素(如數據列表和版本列表)。

nl ::編織::配置文件:: DataManagement_Current :: ListParserBase

WDM消息解析器的基類,專門用於TLV數組元素(如數據列表和版本列表)。

nl ::編織::配置文件:: DataManagement_Current :: LogBDXUpload
nl ::編織::配置文件:: DataManagement_Current :: LoggingConfiguration

LoggingConfiguration封裝了Weave Event Logging子系統的可配置組件。

nl ::編織::配置文件:: DataManagement_Current :: LoggingManagement

用於管理內存中事件日誌的類。

nl ::編織::配置文件:: DataManagement_Current :: NotificationEngine
nl ::編織::配置文件:: DataManagement_Current :: ParserBase

WDM消息解析器的基類。

nl ::編織::配置文件:: DataManagement_Current :: ResourceIdentifier

封裝資源ID的結構。

nl ::編織::配置文件:: DataManagement_Current :: SingleResourceTraitCatalog
nl ::編織::配置文件:: DataManagement_Current :: SubscriptionClient
nl ::編織::配置文件:: DataManagement_Current :: SubscriptionEngine

這是一個託管所有WDM Next訂閱(客戶端和發布者端)的單例。

nl ::編織::配置文件:: DataManagement_Current :: SubscriptionHandler
nl ::編織::配置文件:: DataManagement_Current :: TraitCatalogBase
nl ::編織::配置文件:: DataManagement_Current :: TraitDataSink
nl ::編織::配置文件:: DataManagement_Current :: TraitDataSource
nl ::編織::配置文件:: DataManagement_Current :: TraitSchemaEngine

模式引擎獲取與特定特徵相關的模式信息,並提供將其解析並轉換為WDM機械可用形式的便利。

nl ::編織::配置文件:: DataManagement_Current :: TraitUpdatableDataSink
nl ::編織::配置文件:: DataManagement_Current :: UpdateClient
nl ::編織::配置文件:: DataManagement_Current :: UpdateDictionaryDirtyPathCut

實用程序類,用於在處理具有字典子級的屬性路徑時將字典放回暫掛隊列。

nl ::編織::配置文件:: DataManagement_Current :: UpdateDirtyPathFilter

處理通知時過濾路徑的實用程序類。

nl ::編織::配置文件:: DataManagement_Current :: UpdateEncoder

該對像對WDM UpdateRequest和PartialUpdateRequest有效負載進行編碼。

nl ::編織::配置文件:: DataManagement_Current :: ViewClient

結構

nl ::編織::配置文件:: DataManagement_Current :: CircularEventBuffer

內部事件緩衝區,圍繞nl :: Weave :: TLV :: WeaveCircularTLVBuffer構建

nl ::編織::配置文件:: DataManagement_Current :: ConstSchemaVersionRange
nl ::編織::配置文件:: DataManagement_Current :: CopyAndAdjustDeltaTimeContext

遍歷事件列表的內部結構。

nl ::編織::配置文件:: DataManagement_Current :: DebugLogContext
nl ::編織::配置文件:: DataManagement_Current :: DetailsRootSection

提供特徵實例完整解析的結構。

nl ::編織::配置文件:: DataManagement_Current :: EventEnvelopeContext

遍歷事件的內部結構。

nl ::編織::配置文件:: DataManagement_Current :: EventLoadOutContext

用於在輸出中復制事件列表的結構。

nl ::編織::配置文件:: DataManagement_Current :: EventOptions

提供不同事件字段選項的結構。

nl ::編織::配置文件:: DataManagement_Current :: EventSchema

定義事件元數據架構的結構。

nl ::編織::配置文件:: DataManagement_Current :: ExternalEvents

跟踪平台存儲事件的結構。

nl ::編織::配置文件:: DataManagement_Current :: LogStorageResources

用於初始化日誌記錄管理的幫助程序類。

nl ::編織::配置文件:: DataManagement_Current :: ReclaimEventCtx
nl ::編織::配置文件:: DataManagement_Current :: SchemaVersionRange
nl ::編織::配置文件:: DataManagement_Current :: TraitPath
nl ::編織::配置文件:: DataManagement_Current :: TraitPathStore
nl ::編織::配置文件:: DataManagement_Current :: VersionedTraitPath

工會

nl ::編織::配置文件:: DataManagement_Current ::時間戳

提供應用程序集系統或UTC時間戳記的聯合。

命名空間

nl ::編織::配置文件:: DataManagement_Current :: BaseMessageWithSubscribeId
nl ::編織::配置文件:: DataManagement_Current :: CustomCommand

WDM自定義命令定義。

nl ::編織::配置文件:: DataManagement_Current :: CustomCommandResponse

WDM自定義命令響應定義。

nl ::編織::配置文件:: DataManagement_Current :: DataElement

WDM數據元素定義。

nl ::編織::配置文件:: DataManagement_Current :: DataList
nl ::編織::配置文件:: DataManagement_Current ::事件
nl ::編織::配置文件:: DataManagement_Current :: EventList
nl ::編織::配置文件:: DataManagement_Current :: NotificationRequest
nl ::編織::配置文件:: DataManagement_Current ::路徑

WDM 路徑定義。

nl ::編織::配置文件:: DataManagement_Current ::路徑列表

WDM 路徑列表定義。

nl ::編織::配置文件:: DataManagement_Current ::平台
nl ::編織::配置文件:: DataManagement_Current :: RejectionRecord
nl ::編織::配置文件:: DataManagement_Current :: RejectionRecordList
nl ::編織::配置文件:: DataManagement_Current :: StatusElement

WDM狀態元素定義。

nl ::編織::配置文件:: DataManagement_Current :: StatusList
nl ::編織::配置文件:: DataManagement_Current :: SubscribeCancelRequest
nl ::編織::配置文件:: DataManagement_Current :: SubscribeConfirmRequest
nl ::編織::配置文件:: DataManagement_Current :: SubscribeRequest
nl ::編織::配置文件:: DataManagement_Current :: SubscribeResponse
nl ::編織::配置文件:: DataManagement_Current :: UpdateRequest

WDM更新請求請求定義。

nl ::編織::配置文件:: DataManagement_Current :: UpdateResponse
nl ::編織::配置文件:: DataManagement_Current :: VersionList
nl ::編織::配置文件:: DataManagement_Current :: ViewRequest
nl ::編織::配置文件:: DataManagement_Current :: ViewResponse

枚舉

@ 100

 @100

kNestDebug_StringLogEntryEvent的標籤。

物產
kTag_Message

包含實際調試消息的字符串。

kTag_Region

32位無符號表示日誌區域,即日誌消息所屬的模塊。

@ 101

50分貝

kNestDebug_TokenizedLogEntryEvent的標籤。

物產
kTag_Args

與令牌消息一起發送的參數數組。

kTag_Token

與令牌相對應的32位無符號值。

@ 102

 @102

持續事件的標籤。

@ 104

 @104

WDM配置文件消息類型。

這些值在數據管理規範中列出。

@ 105

 @105

WDM特定的狀態代碼。

@ 147

 @147

@ 95

 @95

記錄設置標籤。

物產
kTag_CurrentImportance

當前記錄的重要性,該值的類型為ImportanceType。

kTag_ImportanceExpiration

當前提升的日誌記錄設置恢復為默認值的時間,以UTC秒為單位。

kTag_LoggingDestination

表示日誌上傳目標的URL。

kTag_MaximumLogUploadInterval

自動觸發的日誌上傳嘗試之間的最長持續時間(以秒為單位)。

kTag_MinimumLogUploadInterval

自動觸發的日誌上載嘗試之間的最短持續時間(以秒為單位)。

kTag_TraitLoggingImportance

可選陣列,有選擇地將選定的配置文件映射到更高的日誌記錄級別。

數組中的每個元素都採用一種形式(配置文件,路徑,日誌記錄重要性)來有選擇地提升系統子集的日誌記錄。僅當日誌記錄優先級超過currentImportance的優先級時,升高的配置文件日誌記錄優先級才有意義,並且與currentImportance具有相同的到期時間。

@ 96

 @96

日誌記錄功能的標籤。

物產
kTag_LogBufferingCapacity

一個32位無符號整數,以kB為單位描述日誌緩衝容量。

kTag_LoggingVolume

一個32位無符號整數,以kB /天為單位描述預期的日誌記錄量。

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

可選的。

該值是事件所屬資源的ID。省略時,該值與kTag_EventSource的值相同

kTag_EventSource

生成事件的設備的NodeID。

kTag_EventSystemTimestamp

可選的。事件的系統時間戳 (以毫秒為單位)。

kTag_EventTraitInstanceID

可選的,生成事件的特徵的實例。

kTag_EventTraitProfileID

必選與特徵的ProfileID相等的32位無符號整數。

kTag_EventType

必選16位無符號整數,它等於此事件類型的wdl.event.id。

kTag_EventUTCTimestamp

可選的。事件的UTC 時間戳 (以毫秒為單位)。

kTag_ExternalEventStructure

外部事件的內部標籤。切勿通過導線傳輸,切勿在Weave庫外部使用。

kTag_RelatedEventID

可選的。

與該事件相關的事件的ID。如果省略,則該值等於kTag_EventID的值。

kTag_RelatedEventImportance

可選的。

相關事件的重要性。如果省略,則該值等於kTag_EventImportance的值。

@ 98

 @98

調試特徵的概要文件定義。

@ 99

 @99

Nest Debug特徵的事件類型。

物產
kNestDebug_StringLogEntryEvent

自由格式字符串調試消息的事件。

kNestDebug_TokenizedHeaderEntryEvent

用於傳達標記化頭信息的事件。

kNestDebug_TokenizedLogEntryEvent

標記化調試消息的事件。

CommandFlags

 CommandFlags
物產
kCommandFlag_ActionTimeValid

當動作時間有效時設置。

kCommandFlag_ExpiryTimeValid

到期時間有效時設置。

kCommandFlag_InitiationTimeValid

初始化時間有效時設置。

kCommandFlag_IsOneWay

當命令為單向時設置。

kCommandFlag_MustBeVersionValid

在版本字段有效時設置。

重要性類型

738

日誌條目的重要性。

重要性用作在事件實際發送到日誌之前對其進行過濾的方法。事件記錄在日誌中後,我們不再做任何準備將其從日誌中刪除。重要性級別用於確定事件存儲的優先級。如果將高度重要的事件添加到完整緩衝區中,則會按照重要性(和年齡)的順序刪除事件以適應事件。因此,重要性等級僅具有相對價值。如果系統僅使用一個重要級別,則事件僅按時間順序丟棄,例如環形緩衝區。

物產
Debug

調試重要性表示系統開發人員感興趣的日誌條目,主要用於開發階段。

調試重要性日誌未在受限設備的帶寬或功耗預算中考慮;因此,它們只能在生產系統中有限的時間內使用。

Info

信息重要性表示日誌條目,可為正在運行的系統提供額外的見解和診斷。

信息日誌記錄級別可以在生產系統中長時間使用,也可以在現場試用中用作默認日誌級別。在受限的設備上,以信息級別記錄的條目必須在帶寬和內存預算中考慮,但不能在電源預算中考慮。

Production

生產重要性表示在持續監視和維護Nest生態系統中使用的日誌條目。

在受限的設備上,必須在電源和內存預算中考慮以生產重要性記錄的條目,因為可以預期它們總是被記錄並從設備中卸載。

ProductionCritical

生產關鍵重要性表示事件,這些事件的損失將直接影響面向客戶的功能。

應用程序可能會使用“生產關鍵事件”丟失來指示系統故障。在受限的設備上,必須在電源和內存預算中考慮具有“生產至關重要”重要性的日誌記錄,因為期望它們始終被記錄並從設備中卸載。

日誌管理狀態

 LoggingManagementStates
物產
kLoggingManagementState_Holdoff

日誌卸載已完成;在釋抑期滿之前,我們不會重新啟動日誌。

kLoggingManagementState_Idle

沒有正在進行的日誌卸載,日誌卸載可以不受任何限制地開始。

kLoggingManagementState_InProgress

正在進行日誌卸載。

kLoggingManagementState_Shutdown

無法執行任何日誌記錄操作。

時間戳類型

 TimestampType

EventOptions中包含的時間戳的有效性和類型。

類型定義

CommandFlags

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

數據版本

uint64_t DataVersion

事件處理器

void * EventProcessor

EventWriterFunct

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

為事件日誌記錄子系統提供eventData元素的函數。

預期此類函數將為事件記錄子系統提供eventData元素。在事件子系統生成所有必需的事件元數據之後,將調用此類函數。該函數通過nl :: Weave :: TLV :: TLVWriter對象調用,該對象將向其中發出一個標記為kTag_EventData的TLV元素;該元素的值必須是包含事件數據的結構。事件數據本身必須使用上下文標籤進行結構化。

細節
參量
[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類似,此fetch函數通過ExternalEvents.mLastEventID從EventLoadOutContext.mStartingEventID返回所有事件。

上下文指針的類型為FetchExternalEventsContext。這包括EventLoadOutContext ,以及一些用於TLV格式的幫助程序變量。它還包括一個指向在註冊回調時創建的ExternalEvents結構的指針。這指定了回調的事件ID範圍。

從函數返回時,EventLoadOutContext.mCurrentEventID應該反映尚未成功寫入TLV緩衝區的第一個事件ID。平台必須以EventLogging協議指定的正確格式將事件標頭和數據寫入TLV寫入器。該平台還必須保持事件和時間戳的唯一性。

所有TLV錯誤應傳播到更高級別。例如,緩衝區中的空間不足將觸發已發送的消息,然後再次調用回調,並保留任何事件ID。

細節
返回值
WEAVE_ERROR_NO_MEMORY
如果沒有空間寫入事件。
WEAVE_ERROR_BUFFER_TOO_SMALL
如果沒有空間寫入事件。
WEAVE_NO_ERROR
成功。
WEAVE_END_OF_TLV
成功。

通用性狀接收器目錄

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

GenericTraitSourceCatalog

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

重要性類型

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

日誌條目的重要性。

重要性用作在事件實際發送到日誌之前對其進行過濾的方法。事件記錄在日誌中後,我們不再做任何準備將其從日誌中刪除。重要性級別用於確定事件存儲的優先級。如果將高度重要的事件添加到完整緩衝區中,則會按照重要性(和年齡)的順序刪除事件以適應事件。因此,重要性級別僅具有相對價值。如果系統僅使用一個重要級別,則事件僅按時間順序丟棄,例如環形緩衝區。

IteratorCallback

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

特性處理迭代器。

LoggingBufferHandler

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

NotifyExternalEventsDeliveredFunct

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

當外部事件傳遞到遠程訂戶時調用的回調函數原型。

當外部事件傳遞給遠程訂戶時,引擎將向外部事件提供程序提供通知。回調包含最後傳遞的ID的事件以及接收該事件的訂戶的ID。

細節
參量
[in] inEv
與傳遞的事件相對應的外部事件對象
[in] inLastDeliveredEventID
傳遞給訂戶的最後一個事件的ID。
[in] inRecipientNodeID
編織收件人的節點ID

NotifyExternalEventsEvictedFunct

void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)

從緩衝區清除外部事件時調用的回調函數原型。

從出站消息緩衝區中退出外部事件對象時,引擎將向外部事件提供程序提供通知。回調包含將被驅逐的外部事件。

細節
參量
[in] inEv
外部事件對象將被驅逐

PropertyDictionaryKey

uint16_t PropertyDictionaryKey

PropertyPathHandle

uint32_t PropertyPathHandle

PropertyPathHandle是WDM路徑相對於特徵實例根的唯一32位數字哈希。

它包括兩個部分:

  • 映射到架構的靜態部分的低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

duration_t

uint32_t duration_t

用於描述持續時間的類型(以毫秒為單位)。

event_id_t

uint32_t event_id_t

事件ID的類型。

timestamp_t

uint32_t timestamp_t

用於描述時間戳的類型(以毫秒為單位)。

utc_timestamp_t

uint64_t utc_timestamp_t

用於描述UTC時間戳的類型(以毫秒為單位)。

變數

實例

LoggingManagement sInstance

sLogFileName

char sLogFileName[] = "topazlog"

功能

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

第63章

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
)

一個輔助函數,用於將已序列化的eventdata元素轉換為事件緩衝區。

細節
參量
[in,out] ioWriter
用於編寫事件的作者
[in] inDataTag
我們要復制的TLV的上下文標籤。此處未使用,但EventWriterFunct的typedef必需。
[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
)

IsVersionNewer

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
)

TraitDataSink目錄中找到TraitUpdatableDataSink的實用程序函數。

細節
參量
[in] aTraitDataHandle
查找的接收器句柄。
[in] aDataSinkCatalog
要搜索的目錄。
退貨
指向TraitUpdatableDataSink的指針;如果該句柄不存在或指向不可更新的TraitDataSink,則為NULL

LogEvent

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作為結果事件ID。

調用的此變體隱式指定所有默認事件選項:

  • 該事件會在通話時加上當前時間,
  • 該事件被標記為與進行呼叫的設備有關,
  • 該事件是獨立的,與其他事件無關,
  • 該事件被標記為非緊急事件,

細節
參量
[in] inSchema
架構定義重要性,簡檔ID,並且該事件的結構類型。
[in] inData
TLV閱讀器包含事件數據作為第一個元素。
退貨
event_id_t如果將事件寫入日誌,則為事件ID,否則為0。

LogEvent

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作為結果事件ID。

調用的此變體允許調用方設置EventOptions任意組合:

  • 時間戳記,當呼叫時默認為0為當前時間,
  • 事件源的“根”部分(事件源和特徵ID);如果為NULL,則默認為當前設備。該事件被標記為與進行呼叫的設備有關,
  • 用於對事件ID進行分組的相關事件ID;當相關事件ID為0時,該事件被標記為與其他任何事件都不相關,
  • 緊迫感默認情況下非緊急。

細節
參量
[in] inSchema
架構定義重要性,簡檔ID,並且該事件的結構類型。
[in] inData
TLV閱讀器包含事件數據作為第一個元素。不能為NULL
[in] inOptions
事件元數據的選項。可能為NULL。
退貨
event_id_t如果將事件寫入日誌,則為事件ID,否則為0。

LogEvent

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

通過回調記錄事件。

該函數記錄表示為EventWriterFunct的事件和特定appData應用程序的appData上下文。該函數將寫入事件元數據,並使用nl :: Weave :: TLV :: TLVWriter引用和inAppData上下文調用inEventWriter ,以便用戶代碼可以將事件數據直接發送到事件日誌中。事件記錄的這種形式最大程度地減少了內存消耗,因為事件數據直接序列化到目標緩衝區中。事件數據必須包含上下文標記,該上下文標記將在由inProfileIDinEventType標識的模式中進行解釋。第一個元素的標籤將被忽略;事件記錄系統會將其替換為eventData標籤。

如果其超過inImportance在指定的日誌記錄閾值被記錄事件LoggingConfiguration 。如果事件的重要性未達到當前閾值,則將其刪除,函數將返回0作為結果事件ID。

調用的此變體隱式指定所有默認事件選項:

  • 該事件會在通話時加上當前時間,
  • 該事件被標記為與進行呼叫的設備有關,
  • 該事件是獨立的,與其他事件無關,
  • 該事件被標記為非緊急事件,

細節
參量
[in] inSchema
架構定義重要性,簡檔ID,並且該事件的結構類型。
[in] inEventWriter
調用以實際序列化事件數據的回調
[in] inAppData
回調的應用程序上下文。
退貨
event_id_t如果將事件寫入日誌,則為事件ID,否則為0。

LogEvent

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

通過帶有選項的回調記錄事件。

該函數記錄表示為EventWriterFunct的事件和特定appData應用的appData上下文。該函數將寫入事件元數據,並使用nl :: Weave :: TLV :: TLVWriter引用和inAppData上下文調用inEventWriter ,以便用戶代碼可以將事件數據直接發送到事件日誌中。事件記錄的這種形式最大程度地減少了內存消耗,因為事件數據直接序列化到目標緩衝區中。事件數據必須包含上下文標記,該上下文標記將在由inProfileIDinEventType標識的模式中進行解釋。第一個元素的標籤將被忽略;事件記錄系統會將其替換為eventData標籤。

如果其超過inImportance在指定的日誌記錄閾值被記錄事件LoggingConfiguration 。如果事件的重要性未達到當前閾值,則將其刪除,函數將返回0作為結果事件ID。

調用的此變體允許調用方設置EventOptions任意組合:

  • 時間戳記,當呼叫時默認為0為當前時間,
  • 事件源的“根”部分(事件源和特徵ID);如果為NULL,則默認為當前設備。該事件被標記為與撥打電話的設備有關,
  • 用於對事件ID進行分組的相關事件ID;當相關事件ID為0時,該事件被標記為與其他任何事件都不相關,
  • 緊急默認情況下非緊急。

細節
參量
[in] inSchema
架構定義重要性,簡檔ID,並且該事件的結構類型。
[in] inEventWriter
調用以實際序列化事件數據的回調
[in] inAppData
回調的應用程序上下文。
[in] inOptions
事件元數據的選項。可能為NULL。
退貨
event_id_t如果將事件寫入日誌,則為事件ID,否則為0。

LogFreeform

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

LogFreeform向默認事件流發出一個自由格式的字符串。

該字符串將封裝在調試事件結構中,其結構與其他記錄的字符串相同。事件配置文件ID為Nest Debug事件的ID,事件類型為kNestDebug_StringLogEntryEvent

細節
參量
[in] inImportance
日誌條目的重要性;如果重要性低於當前重要性,則不會實際記錄該事件
[in] inFormat
符合printf的格式字符串,後跟要格式化的參數
退貨
event_id_t如果將事件寫入日誌,則為事件ID,否則為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的typedef必需。
返回值
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
)