nl::編織::設定檔: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
}
列舉
Logging 設定標記。
@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 中包含的時間戳記有效性與類型。

Typedefs

CommandFlags typedef
DataVersion typedef
uint64_t
EventProcessor typedef
void *
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData) typedef
為事件記錄子系統提供 eventData 元素的函式。
FetchExternalEventsFunct)(EventLoadOutContext *aContext) typedef
用於擷取事件資料的平台回呼函式原型。
GenericTraitSinkCatalog typedef
GenericTraitSourceCatalog typedef
ImportanceType typedef
記錄項目的重要性。
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext) typedef
void(*
Trait 處理疊代器。
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer) typedef
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID) typedef
void(*
將外部事件傳送至遠端訂閱者時,為回呼叫用的函式原型。
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv) typedef
void(*
從緩衝區中移除外部事件時,針對回呼叫用的函式原型。
PropertyDictionaryKey typedef
uint16_t
PropertyPathHandle typedef
uint32_t
PropertyPathHandling 是 3DM 位元不重複雜湊的相對 WDM 路徑雜湊值。
PropertySchemaHandle typedef
uint16_t
SchemaVersion typedef
uint16_t
SingleResourceSinkTraitCatalog typedef
SingleResourceSourceTraitCatalog typedef
TimestampType typedef
EventOptions 中包含的時間戳記有效性與類型。
TraitDataHandle typedef
uint16_t
duration_t nl::Weave::Profiles::DataManagement_Current::duration_t
uint32_t
用於表示持續時間的類型,以毫秒為單位。
event_id_t nl::編織::設定檔::資料管理_目前::活動_ID_t
uint32_t
事件 ID 的類型。
timestamp_t nl::編織::設定檔::資料管理_目前::時間戳記_t
uint32_t
用於描述時間戳記的類型 (以毫秒為單位)。
utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::utc_timestamp_t
uint64_t
用於說明世界標準時間時間戳記的類型,以毫秒為單位。

變數

sInstance
sLogFileName = "topazlog"[]
char

Functions

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)
輔助函式,可將已序列化的事件資料元素轉譯至事件緩衝區。
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::Command
nl::編織::設定檔::DataManagement_Current::CommandSeller
nl::編織::設定檔::DataManagement_Current::GenericTraitCatalogImpl

Weave 實作 TraitCatalogBase 介面的集合,適用於參照相同資源的所有特性資料執行個體。

nl::編織::設定檔::DataManagement_Current::IDataElementAccessControlDelegate

由 NotificationRequest 中由資料元素處理器實作的介面。

nl::編織::設定檔::DataManagement_Current::IDirtyPathCut
nl::編織::設定檔::DataManagement_Current::IPathFilter
nl::編織::設定檔::DataManagement_Current::IWeavePublisherLock

為應用程式將序列化 WDM 資料結構序列化的介面。

nl::編織::設定檔::DataManagement_Current::IWeaveWDMIgnorex

互斥物體的介面。

nl::編織::設定檔::DataManagement_Current::ListBuilderBase

WDM 訊息編碼器的基本類別,專門用於資料清單和版本清單等 TLV 陣列元素。

nl::編織::設定檔::DataManagement_Current::ListParserBase

WDM 訊息剖析器的基礎類別,專門處理資料清單和版本清單等 TLV 陣列元素。

nl::編織::設定檔::DataManagement_Current::LogBDXUpload
nl::編織::設定檔::DataManagement_Current::LoggingConfiguration

LoggingConfiguration 會封裝 Weave 事件 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::時間戳記

提供應用程式組系統或世界標準時間時間戳記的聯集。

命名空間

nl::編織::設定檔::DataManagement_Current::BaseMessageWithSubscriptionId
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::RejectedionRecord
nl::編織::設定檔::DataManagement_Current::RejectedionRecordList
nl::編織::設定檔::DataManagement_Current::StatusElement

WDM 狀態元素定義。

nl::編織::設定檔::DataManagement_Current::StatusList
nl::編織::設定檔::DataManagement_Current::SubscriptionCancelRequest
nl::編織::設定檔::DataManagement_Current::SubscriptionConfirmRequest
nl::編織::設定檔::DataManagement_Current::SubscriptionRequest
nl::編織::設定檔::DataManagement_Current::SubscriptionResponse
nl::編織::設定檔::DataManagement_Current::UpdateRequest

WDM 更新要求定義。

nl::編織::設定檔::DataManagement_Current::UpdateResponse
nl::編織::設定檔::DataManagement_Current::版本清單
nl::編織::設定檔::DataManagement_Current::ViewRequest
nl::編織::設定檔::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

Logging 設定標記。

屬性
kTag_CurrentImportance

目前的記錄重要性,值是 ImportanceType 類型。

kTag_ImportanceExpiration

時間 (以世界標準時間為單位),目前的目前記錄設定已還原為預設值。

kTag_LoggingDestination

指向記錄上傳目的地的網址。

kTag_MaximumLogUploadInterval

自動觸發記錄檔上傳嘗試的時間長度上限 (以秒為單位)。

kTag_MinimumLogUploadInterval

每次自動觸發記錄檔上傳事件的時間下限,以秒為單位。

kTag_TraitLoggingImportance

選用的陣列 (選擇性) 會將所選的設定檔對應至較高的記錄層級。

陣列中的每個元素都會採用形式 (profile,path,loggingimportance) 選項,選擇性提高系統子集的記錄功能,提高的記錄記錄優先順序僅限於記錄優先順序高於 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

產生事件的裝置節點 ID。

kTag_EventSystemTimestamp

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

kTag_EventTraitInstanceID

選用,產生事件的特徵。

kTag_EventTraitProfileID

必填。32 位元不帶正負號的整數,等同於特性的 ProfileID。

kTag_EventType

必填。16 位元未簽署整數,相當於這類事件的 wdl.event.id。

kTag_EventUTCTimestamp

選用,事件的世界標準時間時間戳記 (以毫秒為單位)。

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

設定版本欄位有效的時間。

重要性類型

 ImportanceType

記錄項目的重要性。

在事件實際傳送至記錄之前,用途是篩選事件的方式。在記錄中完成事件後,我們就不會再提供進一步處置,將記錄從記錄中清除。優先等級用來優先儲存事件儲存空間。如果將重要事件新增至完整的緩衝區,系統會按照重要程度 (和年齡) 捨棄事件以符合其需求。因此,重要性等級只會有相對值。如果系統僅使用一個重要性等級,系統只會按照年齡順序捨棄事件,例如環形緩衝區。

屬性
Debug

偵錯重要性代表系統開發人員的記錄項目,主要用於開發階段。

偵錯重要性記錄不會限制受限裝置的頻寬或電源預算,因此只能在正式版系統的時限內使用。

Info

資訊重要性表示記錄項目為執行中系統提供額外的深入分析資訊和診斷資訊。

資訊記錄等級可在正式版系統中長時間使用,或做為實際測試的預設記錄層級。在受限裝置上,使用資訊層級記錄的項目必須在頻寬和記憶體預算中納入考量,而非電源預算。

Production

實際工作環境重要性是指 Nest 生態系統持續監控與維護時使用的記錄項目。

在受限裝置上,如果裝置具有生產重要性,則在電源和記憶體預算中必須考量到這些因素,因為系統預計一律會在裝置上記錄及卸載這些項目。

ProductionCritical

「重要業務重要性」是指的遺失事件會直接影響客戶的功能。

應用程式可能會使用「實際工作環境關鍵」事件,以指出系統故障。在受限裝置上,如果裝置的生產效能和重要資產記錄在供應力和記憶體預算中,就必須考量到影響,因為裝置通常會記錄到裝置卸載。

LoggingManagementState

 LoggingManagementStates
屬性
kLoggingManagementState_Holdoff

記錄卸載已完成;在保留期結束前,我們不會重新啟動記錄。

kLoggingManagementState_Idle

未卸載記錄卸載,可以開始沒有任何記錄限制。

kLoggingManagementState_InProgress

記錄卸載中。

kLoggingManagementState_Shutdown

無法執行任何記錄作業。

時間戳記類型

 TimestampType

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

Typedefs

CommandFlags

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

擷取外部事件函式

WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)

用於擷取事件資料的平台回呼函式原型。

與 FetchEventsEvents 類似,這個擷取函式會透過 EventExternalOutContext.mBeginEventID 透過 ExternalEvents.mLastEventID 傳回所有事件。

內容指標的類型為 FetchExternalEventsContext。這包括 EventLoadOutContext,以及一些適用於 TLV 格式的輔助變數。還提供指向註冊回呼時建立的 ExternalEvents 結構的指標。這會指定回呼的事件 ID 範圍。

從函式傳回時,EventLoadOutContext.mCurrentEventID 應反映尚未成功寫入 TLV 緩衝區的第一個事件 ID。平台必須以事件格式,將事件標頭和資料寫入 TLV 寫入者,並由 EventLogging 通訊協定指定。平台也必須維持事件和時間戳記的獨特性。

所有 TLV 錯誤都必須傳播至較高層級。例如,如果緩衝區空間不足,將會觸發傳送的訊息,接著以其他事件 ID 再次呼叫回呼。

詳情
傳回值
WEAVE_ERROR_NO_MEMORY
如果沒有可以寫入事件的空間,
WEAVE_ERROR_BUFFER_TOO_SMALL
如果沒有可以寫入事件的空間,
WEAVE_NO_ERROR
上傳成功。
WEAVE_END_OF_TLV
上傳成功。

通用 TrainkCatalog

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

一般管道來源目錄

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

重要性類型

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

記錄項目的重要性。

在事件實際傳送至記錄之前,用途是篩選事件的方式。在記錄中完成事件後,我們就不會再提供進一步處置,將記錄從記錄中清除。優先等級用來優先儲存事件儲存空間。如果將重要事件新增至完整的緩衝區,系統會按照重要程度 (和年齡) 捨棄事件以符合其需求。因此,重要性等級只會有相對值。如果系統僅使用一個重要性等級,系統只會按照年齡順序捨棄事件,例如環形緩衝區。

Iterator 回呼

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

Trait 處理疊代器。

LoggingBufferHandler

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

NotificationExternalEventsDeliveredFunct

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

將外部事件傳送至遠端訂閱者時,為回呼叫用的函式原型。

當外部事件傳送給遠端訂閱者時,引擎就會向外部事件提供者發出通知。回呼包含最新傳送 ID 的事件,以及接收該事件的訂閱者 ID。

詳情
參數
[in] inEv
與已提交事件相對應的外部事件物件
[in] inLastDeliveredEventID
傳送給訂閱者的最後一個事件 ID。
[in] inRecipientNodeID
收件者的編織節點 ID

通知 ExternalEventsEvictedFunct

void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)

從緩衝區中移除外部事件時,針對回呼叫用的函式原型。

當從外部訊息緩衝區移除外部事件物件時,引擎就會向外部事件提供者發出通知。回呼包含要移除的外部事件。

詳情
參數
[in] inEv
要移出的外部事件物件

PropertyDictionaryKey

uint16_t PropertyDictionaryKey

屬性路徑控點

uint32_t PropertyPathHandle

PropertyPathHandling 是 3DM 位元不重複雜湊的相對 WDM 路徑雜湊值。

這份報表包含兩個部分:

  • 對應至結構定義靜態部分的 16 位元數字。
  • 如果較低的 16 位元數字是指字典元素內部的路徑,該數字會有一個 16 位元的數字,代表與該元素相關聯的字典金鑰。如果較低的 16 位元指的是非字典元素,則前 16 位元應為 0。

特性如下:

  • 每個屬性都有專屬的屬性路徑控制空間。
  • 每個不重複的 WDM 子路徑路徑都會有類似的不重複路徑路徑控制代碼。
  • PropertyPathHandles 是由 IDL 的 trait 編譯器自動產生 (目前手動完成),並顯示為對應 tit' 標頭檔案中的列舉清單。
  • 透過這個結構,應用程式邏輯不需要直接處理 WDM 路徑。而是透過這些帳號來處理與 WDM 的互動。
  • 路徑控點有兩個保留值,具有特定意義:
    • 0 代表 'NULL'控制
    • 1 表示指向其特徵點的控點。

屬性結構定義

uint16_t PropertySchemaHandle

結構定義版本

uint16_t SchemaVersion

SingleResourceSinkTraitCatalog

SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog

單一資源來源路徑目錄

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

事件 ID 的類型。

timestamp_t [時間戳記]

uint32_t timestamp_t

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

utc_timestamp_t

uint64_t utc_timestamp_t

用於說明世界標準時間時間戳記的類型,以毫秒為單位。

變數

執行個體

LoggingManagement sInstance

sLog 檔案名稱

char sLogFileName[] = "topazlog"

Functions

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
)

BdxRejectedHandler

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
)

建立屬性路徑控制代碼

PropertyPathHandle CreatePropertyPathHandle(
  PropertySchemaHandle aPropertyPathSchemaId,
  PropertyDictionaryKey aPropertyPathDictionaryKey
)

EventWriterTLVCopy

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

輔助函式,可將已序列化的事件資料元素轉譯至事件緩衝區。

詳情
參數
[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
)

IsNullPropertyPathHandling

bool IsNullPropertyPathHandle(
  PropertyPathHandle aHandle
)

是根路徑控點

bool IsRootPropertyPathHandle(
  PropertyPathHandle aHandle
)

版本較新

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。

記錄檔事件

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。

記錄檔事件

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) 的「root」;如果設為 NULL,則預設為目前的裝置。該事件標示為與呼叫的裝置有關,
  • 用來將事件 ID 分組的相關事件 ID;如果相關事件 ID 為 0,該事件就會標示為與任何其他事件無關;
  • 急迫性;預設為未處理。

詳情
參數
[in] inSchema
用於定義此事件重要性、設定檔 ID 和結構類型的結構定義
[in] inData
包含事件資料的第一個 TLV 讀取器。不得為 NULL
[in] inOptions
事件中繼資料的選項。可以是 NULL。
傳回
event_id_t:如果事件寫入記錄,則為事件 ID,否則為 0。

記錄檔事件

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

透過回呼記錄事件。

這個函式會記錄以 EventWriterFunct 和應用程式特定 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。

記錄檔事件

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

您可以透過包含選項的回呼記錄事件。

這個函式會記錄以 EventWriterFunct 和應用程式特定 appData 結構定義的事件。這個函式會寫入事件中繼資料,並使用 nl::Weave::TLV::TLVWriter 參考資料和 inAppData 結構定義呼叫 inEventWriter,以便使用者程式碼能夠將事件資料直接傳送至事件記錄。這種事件記錄方式會最小化記憶體用量,因為事件資料會直接序列化為目標緩衝區。事件資料「必須」包含 inProfileIDinEventType 識別的結構定義中的情境標記。系統會忽略第一個元素的標記;事件記錄系統會用 eventData 標記取代。

如果 inImportance 超過 LoggingConfiguration 中指定的記錄門檻,則系統會記錄該事件。如果事件的重要程度不符合目前的門檻,系統就會捨棄該函式,並傳回 0 做為產生的事件 ID。

這個叫用的變化版本可讓呼叫端設定任何 EventOptions 的組合:

  • 時間戳記,當 0 預設為通話時的目前時間時,
  • 「事件來源」(事件來源和特性 ID) 的「root」;如果設為 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 偵錯事件的 ID,事件類型則是 kNestDebug_StringLogEntryEvent

詳情
參數
[in] inImportance
記錄項目的重要性;如果重要性低於目前重要性,那麼系統並不會實際記錄該事件
[in] inFormat
printf」相容格式字串,後面接著要格式化的引數
傳回
event_id_t:如果事件寫入記錄,則為事件 ID,否則為 0。

LookForElement 標記

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

純文字寫入工具

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

輸出任意形式文字的偵錯函式。

偵錯事件是包含 logregion 和任意形式文字的結構。

詳情
參數
[in,out] ioWriter
用於撰寫活動的作者
[in] appData
指向 DebugLogContext 的指標,這個結構會保存字串格式、引數和記錄區域
[in] inDataTag
用於編寫 TLV 的內容標記。此處不使用,但對 EventWriterFunct 的 typedef 需要。
傳回值
WEAVE_NO_ERROR
上傳成功。
other
ioWriter 傳回的其他錯誤。

純文字寫入工具

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

輸出任意形式文字的偵錯函式。

偵錯事件是包含 logregion 和任意形式文字的結構。

詳情
參數
[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
)