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

#include <src/lib/profiles/data-management/Current/LoggingManagement.h>

nl::Weave::TLV::WeaveCircularTLVBuffer 為建構基礎的內部事件緩衝區。

摘要

建構函式和解構函式

CircularEventBuffer(uint8_t *inBuffer, size_t inBufferLength, CircularEventBuffer *inPrev, CircularEventBuffer *inNext)
CircularEventBuffer (內部 API) 的建構函式。

公開屬性

mBuffer
基礎 TLV 緩衝區,將事件以 TLV 表示法儲存。
mEventIdCounter
mFirstEventID
這個重要性儲存在記錄子系統中的第一個事件 ID。
mFirstEventTimestamp
這個緩衝區中第一個事件的時間戳記。
mFirstEventUTCTimestamp
這個緩衝區中第一個事件的世界標準時間時間戳記。
mImportance
緩衝區是此重要性事件的最終值區。
mLastEventID
最終活動 ID 不受這項重要性影響。
mLastEventTimestamp
這個緩衝區中最後一個事件的時間戳記。
mLastEventUTCTimestamp
這個緩衝區中最後一個事件的世界標準時間時間戳記 (以世界標準時間為準)。
mNext
用來儲存較重要事件的 CircularEventBuffer 指標。
mNonPersistedCounter
mPrev
用來儲存較不重要事件的 CircularEventBuffer 指標。
mUTCInitialized
bool
指出世界標準時間時間戳記是否在這個緩衝區中初始化。

公用函式

AddEvent(timestamp_t inEventTimestamp)
void
針對事件的時間戳記,計算要儲存在記錄中的差異時間。
AddEventUTC(utc_timestamp_t inEventTimestamp)
void
根據事件時間戳記,計算要儲存在記錄中的差異遷移時間。
IsFinalDestinationForImportance(ImportanceType inImportance) const
bool
這個輔助函式可判斷指定重要性的事件是否從這個緩衝區捨棄。
LoadEvents(TLVReader & reader)
RemoveEvent(size_t aNumEvents)
void
SerializeEvents(TLVWriter & writer)
VendEventID(void)
根據事件重要性分配新的活動 ID,如果有事件 ID,請推進計數器。

公開的靜態函式

GetNextBufferFunct(nl::Weave::TLV::TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)

公開屬性

mBuffer

nl::Weave::TLV::WeaveCircularTLVBuffer nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mBuffer

基礎 TLV 緩衝區,將事件以 TLV 表示法儲存。

mEventIdCounter

nl::Weave::MonotonicallyIncreasingCounter * nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mEventIdCounter

mFirstEventID

event_id_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mFirstEventID

這個重要性儲存在記錄子系統中的第一個事件 ID。

mFirstEventTimestamp

timestamp_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mFirstEventTimestamp

這個緩衝區中第一個事件的時間戳記。

mFirstEventUTCTimestamp

utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mFirstEventUTCTimestamp

這個緩衝區中第一個事件的世界標準時間時間戳記。

mImportance

ImportanceType nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mImportance

緩衝區是此重要性事件的最終值區。

當事件從這個緩衝區中移出時,重要性較低的活動就會捨棄

mLastEventID

event_id_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mLastEventID

最終活動 ID 不受這項重要性影響。

mLastEventTimestamp

timestamp_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mLastEventTimestamp

這個緩衝區中最後一個事件的時間戳記。

mLastEventUTCTimestamp

utc_timestamp_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mLastEventUTCTimestamp

這個緩衝區中最後一個事件的世界標準時間時間戳記 (以世界標準時間為準)。

mNext

CircularEventBuffer * nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mNext

用來儲存較重要事件的 CircularEventBuffer 指標。

mNonPersistedCounter

nl::Weave::MonotonicallyIncreasingCounter nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mNonPersistedCounter

mPrev

CircularEventBuffer * nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mPrev

用來儲存較不重要事件的 CircularEventBuffer 指標。

mUTCInitialized

bool nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::mUTCInitialized

指出世界標準時間時間戳記是否在這個緩衝區中初始化。

公用函式

AddEvent

void nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::AddEvent(
  timestamp_t inEventTimestamp
)

針對事件的時間戳記,計算要儲存在記錄中的差異時間。

詳細說明
參數
inEventTimestamp
事件時間戳記。
傳回
int32_t 時間差異值,以便為事件編碼。

AddEventUTC

void nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::AddEventUTC(
  utc_timestamp_t inEventTimestamp
)

根據事件時間戳記,計算要儲存在記錄中的差異遷移時間。

詳細說明
參數
inEventTimestamp
事件的 utc 時間戳記
傳回
int64_t 時間差異值,以便為事件編碼。

CircularEventBuffer

 nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::CircularEventBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength,
  CircularEventBuffer *inPrev,
  CircularEventBuffer *inNext
)

CircularEventBuffer (內部 API) 的建構函式。

詳細說明
參數
[in] inBuffer
事件儲存空間實際使用的儲存空間。
[in] inBufferLength
inBuffer 的長度 (以位元組為單位)。
[in] inPrev
儲存優先順序較低事件的 CircularEventBuffer 指標。
[in] inNext
儲存優先順序較高的事件的 CircularEventBuffer 指標。
傳回

IsFinalDestinationForImportance

bool nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::IsFinalDestinationForImportance(
  ImportanceType inImportance
) const 

這個輔助函式可判斷指定重要性的事件是否從這個緩衝區捨棄。

詳細說明
參數
[in] inImportance
事件的重要性。
傳回值
true
因為佇列溢位,事件將從這個緩衝區中捨棄。
false
該事件會移至下一個佇列。

LoadEvents

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::LoadEvents(
  TLVReader & reader
)

RemoveEvent

void nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::RemoveEvent(
  size_t aNumEvents
)

SerializeEvents

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::SerializeEvents(
  TLVWriter & writer
)

VendEventID

event_id_t nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::VendEventID(
  void
)

根據事件重要性分配新的活動 ID,如果有事件 ID,請推進計數器。

詳細說明
傳回
這項重要性的 event_id_t 事件 ID。

公開的靜態函式

GetNextBufferFunct

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::CircularEventBuffer::GetNextBufferFunct(
  nl::Weave::TLV::TLVReader & ioReader,
  uintptr_t & inBufHandle,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)