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
)