nl::Weave::Profiles::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 中包含的時間戳記有效性和類型。

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
AssetPathHandle 是 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
用於說明世界標準時間時間戳記 (以毫秒為單位) 的類型。

Variables

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::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

這個介面由 NotificationRequest 中資料元素的處理者實作。

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

結構

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 自訂 Command 定義。

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

WDM 自訂 Command 回應定義。

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

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

陣列中的每個元素都會採用表單 (設定檔、路徑、記錄重要性) 來選擇性提升系統部分的記錄。提高的設定檔記錄優先順序只會在記錄優先順序超過目前重要性時,且到期時間與目前重要性相同。

@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

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)

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

與 FetchEventsEvents 類似,這個擷取函式會透過 ExternalEvents.mLastEventID 傳回 EventLoadOutContext.m 自起事件 ID 的所有事件。

內容指標屬於 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

AssetPathHandle 是 WDM 路徑的專屬 32 位元數值雜湊,相對於特徵執行個體的根目錄。

其中包含兩個部分:

  • 對應至結構定義靜態部分的 16 位元數值。
  • 如果較低的 16 位元數參照字典元素中的路徑,系統會優先顯示 16 位元數字,代表與該元素相關聯的字典鍵。如果較低的 16 位元參照非字典元素,則前 16 位元應為 0。

以下列舉幾項特點:

  • 每個特徵都有自己的屬性路徑控點空間。
  • 每個不重複的 WDM 子路徑路徑都會有相似的屬性路徑處理常式。
  • 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

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

Variables

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
)

這個輔助函式會將已序列化的 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 (如果事件寫入記錄中),則事件 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 讀取器包含事件資料做為第一個元素。不得為空值
[in] inOptions
事件中繼資料的選項。可以是空值。
傳回
event_id_t 事件 ID (如果事件寫入記錄中),則事件 ID 為 0。

LogEvent

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

透過回呼記錄事件。

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

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

此叫用變數會以隱含方式指定所有預設事件選項:

  • 事件和呼叫當下的時間時間戳記
  • 事件已標示為與撥打電話的裝置相關,
  • 為獨立事件,與任何其他事件無關
  • 將活動標示為非緊急

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

LogEvent

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

透過回呼記錄事件,並提供選項。

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

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

這個叫用變數允許呼叫端設定任何 EventOptions 組合:

  • 時間戳記,如果 0 預設為呼叫當下的目前時間,
  • 事件來源 (事件來源和特徵 ID) 的「根」區段;如果為 NULL,則會預設為目前的裝置。事件會標示為與進行通話的裝置相關,
  • 用來分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,系統會將該事件標示為與任何其他事件無關;
  • 緊急狀況;預設為非緊急。

詳細說明
參數
[in] inSchema
結構定義會定義這個事件的重要性、設定檔 ID 和結構類型。
[in] inEventWriter
叫用此回呼,以便實際將事件資料序列化
[in] inAppData
回呼的應用程式結構定義。
[in] inOptions
事件中繼資料的選項。可以是空值。
傳回
event_id_t 事件 ID (如果事件寫入記錄中),則事件 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 (如果事件寫入記錄中),則事件 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
)