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
)