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
指出是否在這個緩衝區中初始化 UTC 時間戳記。

公開函式

AddEvent(timestamp_t inEventTimestamp)
void
提供事件時間戳記,計算儲存在記錄中的差異時間。
AddEventUTC(utc_timestamp_t inEventTimestamp)
void
提供事件的時間戳記,計算要儲存在記錄中的 Delta utc 時間。
IsFinalDestinationForImportance(ImportanceType inImportance) const
bool
這個輔助函式可判斷指定重要性事件是否已從這個緩衝區中捨棄。
LoadEvents(TLVReader & reader)
RemoveEvent(size_t aNumEvents)
void
SerializeEvents(TLVWriter & writer)
VendEventID(void)
根據事件重要性分配新的事件 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

指出是否在這個緩衝區中初始化 UTC 時間戳記。

公開函式

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
)

提供事件的時間戳記,計算要儲存在記錄中的 Delta utc 時間。

詳細資料
參數
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;如果有,則推進計數器。

詳細資料
傳回
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
)