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
此缓冲区中第一个事件的世界协调时间 (UTC) 时间戳。
mImportance
缓冲区是此重要性事件的最后一个分桶。
mLastEventID
为此重要性添加的最后一个事件 ID。
mLastEventTimestamp
此缓冲区中最后事件的时间戳。
mLastEventUTCTimestamp
此缓冲区中最后一个事件的世界协调时间 (UTC) 时间戳。
mNext
存储更重要事件的指针 CircularEventBuffer
mNonPersistedCounter
mPrev
一个指针 CircularEventBuffer,用于存储不太重要的事件。
mUTCInitialized
bool
指明是否已在此缓冲区中初始化世界协调时间 (UTC) 时间戳。

公共函数

AddEvent(timestamp_t inEventTimestamp)
void
在给定事件的时间戳后,计算要存储在日志中的增量时间。
AddEventUTC(utc_timestamp_t inEventTimestamp)
void
在给定事件的时间戳后,计算要存储在日志中的增量 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

此缓冲区中第一个事件的世界协调时间 (UTC) 时间戳。

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

此缓冲区中最后一个事件的世界协调时间 (UTC) 时间戳。

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
)

在给定事件的时间戳后,计算要存储在日志中的增量 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
)