nl::Weave::Profiles::DataManagement_Current

這個命名空間包含 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 中包含的時間戳記有效性和類型。

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(*
特徵處理疊代器。
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
PropertyPathHandle 是相對於特徵執行個體根的 WDM 路徑獨有的 32 位元數值雜湊。
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::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
用來說明世界標準時間時間戳記的類型 (以毫秒為單位)。

變數

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)
這個輔助函式可將已經序列化的事件資料元素轉譯為事件緩衝區。
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::Weave::Profiles::DataManagement_Current::AlwaysAcceptDataElementAccessControlDelegate
nl::Weave::Profiles::DataManagement_Current::BuilderBase

WDM 訊息編碼器的基礎類別。

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

CircularEventBuffer 支援的 TLVReader。

nl::Weave::Profiles::DataManagement_Current::Command
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 事件 Logging 子系統的可設定元件。

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

封裝資源 ID 的結構。

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

Structs

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

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

命名空間

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::Event
nl::Weave::Profiles::DataManagement_Current::EventList
nl::Weave::Profiles::DataManagement_Current::NotificationRequest
nl::Weave::Profiles::DataManagement_Current::Path

WDM 路徑定義。

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

WDM 路徑清單定義。

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

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

表示記錄上傳目的地的網址。

kTag_MaximumLogUploadInterval

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

kTag_MinimumLogUploadInterval

每次自動觸發記錄上傳嘗試之間的最短時間 (以秒為單位)。

kTag_TraitLoggingImportance

選擇性的陣列,可選擇性地將所選設定檔對應至較高記錄層級。

陣列中的每個元素都採用形式 (profile、path、loggingimportance),以選擇性地提高系統子集的記錄。改善設定檔記錄優先順序只有在記錄優先順序超過目前重要性的範圍,且其到期時間與目前重要性相同時,系統才會判斷設定檔記錄優先順序。

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

必要欄位。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

 ImportanceType

記錄項目的重要性。

重要性可在事件實際發送到記錄前,先行篩選。記錄中的事件之後,系統不會再提供進一步的規定,無法將其從記錄中清除。重要性等級是用來優先儲存事件儲存空間。如果系統在完整緩衝區中加入高重要性的事件,系統就會按照重要性 (和年齡) 的順序捨棄事件,以便配合該事件。因此重要性等級只會有相對值。如果系統只使用一個重要程度等級,系統只會按照年齡順序捨棄事件 (例如環形緩衝區)。

屬性
Debug

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

偵錯重要性記錄,不會計入受限裝置的頻寬或耗電量因此,只能在實際工作環境系統中使用。

Info

資訊重要性代表記錄項目,為運作中的系統提供額外的深入分析和診斷資訊。

資訊記錄等級可以在生產系統中延長使用,也可以當做實際測試的預設記錄層級。在受限裝置上,資訊等級記錄的項目必須根據頻寬和記憶體預算考慮,而不是在電源預算中。

Production

實際工作環境重要性代表 Nest 生態系統持續監控及維護的記錄項目。

在受到限制的裝置上,由於系統一律會記錄並卸載「生產」重要性記錄的項目,這類項目必須一併計入耗電量和記憶體預算中。

ProductionCritical

實際工作環境的重要性 - 表示損失會直接影響客戶端功能的事件。

應用程式可能會運用遺失的正式環境事件來表示系統故障。在受到限制的裝置上,由於系統一律會記錄並卸載「實際工作環境重大」重要性的項目,其電力和記憶體預算都必須一併計入。

LoggingManagementStates

 LoggingManagementStates
屬性
kLoggingManagementState_Holdoff

記錄卸載作業已完成;等到保留期結束後,系統才會重新記錄。

kLoggingManagementState_Idle

沒有正在執行記錄檔卸載,記錄檔卸載作業可以開始,不受任何限制。

kLoggingManagementState_InProgress

記錄卸載中。

kLoggingManagementState_Shutdown

無法執行任何記錄作業。

TimestampType

 TimestampType

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

Typedefs

CommandFlags

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

DataVersion

uint64_t DataVersion

EventProcessor

void * EventProcessor

EventWriterFunct

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

為事件記錄子系統提供 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)

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

與 FetchEvents 論 類似,此擷取函式會透過 ExternalEvents.mLastEventID 傳回 EventLoadOutContext.mBeginEventID 中的所有事件。

結構定義指標屬於 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
成功時。

GenericTraitSinkCatalog

GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog

GenericTraitSourceCatalog

GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog

ImportanceType

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
接收者的 Weave 節點 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。
  • PropertyPathHandle 是由 IDL 的特徵編譯器自動產生 (目前需手動完成),並在對應特徵的標頭檔案中以列舉清單表示。
  • 採用這種結構,應用程式邏輯就不必直接處理 WDM 路徑。他們與 WDM 的互動只能透過這些控制代碼執行。
  • 路徑控點有兩個保留值,具有特定意義:
    • 0 代表「NULL」帳號代碼
    • 1 表示指向特徵執行個體根的控點。

PropertySchemaHandle

uint16_t PropertySchemaHandle

SchemaVersion

uint16_t SchemaVersion

SingleResourceSinkTraitCatalog

SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog

SingleResourceSourceTraitCatalog

SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog

TimestampType

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

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

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

變數

sInstance

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

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

BdxXferDoneHandler

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

BdxXferErrorHandler

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

CreatePropertyPathHandle

PropertyPathHandle CreatePropertyPathHandle(
  PropertySchemaHandle aPropertyPathSchemaId,
  PropertyDictionaryKey aPropertyPathDictionaryKey
)

EventWriterTLVCopy

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

這個輔助函式可將已經序列化的事件資料元素轉譯為事件緩衝區。

詳細資料
參數
[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 代碼。

如果事件的「重要性」超過 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 代碼。

如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。

此叫用的變體允許呼叫端設定任何 EventOptions 的組合:

  • 時間戳記 (如果 0 預設為呼叫時的目前時間),
  • 「根」事件來源的區段 (事件來源和特徵 ID);如果為 NULL,則預設為目前的裝置。事件會標示為與發出呼叫的裝置相關,
  • 用於分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,該事件會標示為與任何其他事件無關;
  • 急迫性;預設為不會緊急

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

LogEvent

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

透過回呼記錄事件。

該函式會記錄以 EventWriterFunct 表示的事件,以及應用程式專屬的 appData 情境。函式會寫入事件中繼資料,並使用 nl::Weave::TLV::TLVWriter 參照和 inAppData 結構定義呼叫 inEventWriter,如此一來,使用者程式碼就可以將事件資料直接發送到事件記錄中。這種形式的事件記錄會使記憶體用量降到最低,因為事件資料會直接序列化到目標緩衝區中。事件資料「必須」包含要在 inProfileIDinEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。

如果事件的「重要性」超過 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 情境。函式會寫入事件中繼資料,並使用 nl::Weave::TLV::TLVWriter 參照和 inAppData 結構定義呼叫 inEventWriter,如此一來,使用者程式碼就可以將事件資料直接發送到事件記錄中。這種形式的事件記錄會使記憶體用量降到最低,因為事件資料會直接序列化到目標緩衝區中。事件資料「必須」包含要在 inProfileIDinEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。

如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。

此叫用的變體允許呼叫端設定任何 EventOptions 的組合:

  • 時間戳記 (如果 0 預設為呼叫時的目前時間),
  • 「根」事件來源的區段 (事件來源和特徵 ID);如果為 NULL,則預設為目前的裝置。事件會標示為與發出呼叫的裝置相關,
  • 用於分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,該事件會標示為與任何其他事件無關;
  • 急迫性;預設為不會緊急

詳細資料
參數
[in] inSchema
結構定義用來定義這項事件的重要性、設定檔 ID 和結構類型。
[in] inEventWriter
此回呼會叫用以實際序列化事件資料
[in] inAppData
回呼的應用程式結構定義。
[in] inOptions
事件中繼資料的選項。可以是空值。
傳回
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。

LogFreeform

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

LogFreeform 會向預設事件串流發出任意形式的字串。

此字串會封裝在偵錯事件結構中,結構與其他記錄的字串相同。事件設定檔 ID 會是 Nest Debug 事件,事件類型則是 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 可能傳回的其他錯誤。

operator!=

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

運算子==

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