nl::Weave::Profiles::DataManagement_Current::LoggingManagement

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

인메모리 이벤트 로그를 관리하기 위한 클래스입니다.

요약

생성자 및 소멸자

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement 생성자.
LoggingManagement(void)
LoggingManagement 기본 생성자.

공개 함수

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
이벤트 로깅 프로토콜에 따라 이벤트 헤더 및 데이터를 쓰는 도우미 함수입니다.
CancelShutdownInProgress(void)
void
mShutdownInProgress 플래그를 false로 설정합니다.
CheckShouldRunWDM(void)
bool
업로드가 예약되지 않은 이벤트 버퍼의 바이트 수를 기준으로 이벤트를 오프로드할지 결정합니다.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
지정된 이벤트 ID 이후 지정된 중요도의 이벤트를 검색하는 함수입니다.
GetBytesWritten(void) const
uint32_t
인스턴스화 후 이 로그에 기록된 모든 이벤트 중요도 전체에서 총 바이트 수를 가져옵니다.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
메모리 내 로그 버퍼를 검사하는 데 유용한 도우미 메서드입니다.
GetFirstEventID(ImportanceType inImportance)
현재 특정 중요도 수준에 대해 저장된 첫 번째 이벤트 ID를 가져옵니다.
GetLastEventID(ImportanceType inImportance)
특정 중요도 수준에서 가장 최근에 판매된 ID를 가져옵니다.
IsShutdownInProgress(void)
bool
mShutdownInProgress 플래그를 확인합니다.
IsValid(void)
bool
IsValid는 LoggingManagement 인스턴스가 유효한지 여부를 반환합니다.
LoadEvents(TLVReader & reader)
이전에 유지된 Weave 이벤트를 로드합니다.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
옵션을 사용하여 콜백을 통해 이벤트를 로깅합니다.
MarkShutdownInProgress(void)
void
mShutdownInProgress 플래그를 true로 설정합니다.
NotifyEventsDelivered(ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
void
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.
ScheduleFlushIfNeeded(bool inFlushRequested)
로그 오프로드 작업을 예약합니다.
SerializeEvents(TLVWriter & writer)
모든 중요도 유형의 Weave 이벤트를 직렬화합니다.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
이 로깅 하위 시스템과 함께 사용할 WeaveExchangeManager를 설정합니다.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
할당된 이벤트 ID에 해당하는 이벤트 작성을 건너뛰는 도우미 함수입니다.
ThrottleLogger(void)
void
ThrottleLogger는 유효한 로깅 수준을 프로덕션 수준으로 높입니다.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
외부에 저장된 이벤트 집합을 등록 취소하기 위한 공개 API입니다.
UnthrottleLogger(void)
void
UnthrottleLogger는 유효한 로깅 수준을 구성된 로깅 수준으로 복원합니다.

공개 정적 함수

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
LoggingManagement 객체를 만들고 제공된 리소스로 로깅 관리 하위 시스템을 초기화합니다.
DestroyLoggingManagement(void)
void
종료 시 필요한 모든 작업을 실행합니다.
GetInstance(void)

공개 함수

BlitEvent

WEAVE_ERROR BlitEvent(
  EventLoadOutContext *aContext,
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

이벤트 로깅 프로토콜에 따라 이벤트 헤더 및 데이터를 쓰는 도우미 함수입니다.

세부정보
매개변수
[in,out] aContext
EventLoadOutContext: 버퍼의 스테이트풀(Stateful) 정보로 초기화됩니다. 상태는 이 컨텍스트를 사용하여 BlitEvent에 의해 업데이트되고 보존됩니다.
[in] inSchema
스키마: 이 이벤트의 중요도, 프로필 ID, 구조 유형을 정의합니다.
[in] inEventWriter
이벤트 데이터를 직렬화하기 위해 호출할 콜백입니다.
[in] inAppData
콜백의 애플리케이션 컨텍스트입니다.
[in] inOptions
이 이벤트와 관련된 타임스탬프 및 기타 태그를 설명하는 EventOptions

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 false로 설정합니다.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

업로드가 예약되지 않은 이벤트 버퍼의 바이트 수를 기준으로 이벤트를 오프로드할지 결정합니다.

함수의 동작은 WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD 상수를 통해 제어됩니다. WDM 알림이 마지막으로 전송된 이후 시스템에서 작성한 바이트 수가 이보다 많으면 함수는 NotificationEngine을 트리거할 때가 되었음을 나타냅니다.

세부정보
반환 값
true
이벤트를 오프로드해야 함
false
그렇지 않은 경우 다음 단계를 따릅니다.

FetchEventsSince

WEAVE_ERROR FetchEventsSince(
  nl::Weave::TLV::TLVWriter & ioWriter,
  ImportanceType inImportance,
  event_id_t & ioEventID
)

지정된 이벤트 ID 이후 지정된 중요도의 이벤트를 검색하는 함수입니다.

nl::Weave::TLV::TLVWriter, 중요도 유형, 이벤트 ID가 주어지면 함수는 지정된 이벤트 이후 지정된 중요도의 이벤트를 가져옵니다. 이 함수는 nl::Weave::TLV::TLVWriter 또는 로그의 공간이 소진될 때까지 계속해서 이벤트를 가져옵니다. 이 함수는 이벤트 경계에서 이벤트 쓰기를 종료합니다.

세부정보
매개변수
[in] ioWriter
이벤트 스토리지에 사용할 작성자입니다.
[in] inImportance
가져올 이벤트의 중요도
[in,out] ioEventID
입력 시 가져오는 이벤트 직전의 이벤트 ID입니다. 완료 시 마지막으로 가져온 이벤트의 ID입니다.
반환 값
WEAVE_END_OF_TLV
함수가 지정된 중요도 수준에서 사용 가능한 로그 항목의 끝에 도달했습니다.
WEAVE_ERROR_NO_MEMORY
ioWriter의 함수가 부족하여 로그에 더 많은 이벤트가 있습니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
ioWriter의 함수가 부족하여 로그에 더 많은 이벤트가 있습니다.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

인스턴스화 후 이 로그에 기록된 모든 이벤트 중요도 전체에서 총 바이트 수를 가져옵니다.

세부정보
반환
로그에 쓴 바이트 수입니다.

GetEventReader

WEAVE_ERROR GetEventReader(
  nl::Weave::TLV::TLVReader & ioReader,
  ImportanceType inImportance
)

메모리 내 로그 버퍼를 검사하는 데 유용한 도우미 메서드입니다.

세부정보
매개변수
[in,out] ioReader
이벤트 로그의 백업 저장소로 초기화될 리더에 대한 참조입니다.
[in] inImportance
독자의 시작 중요도입니다. 이 경우 시작 중요도는 다소 직관적이지 않습니다. 더 중요한 이벤트는 전용 버퍼 외에도 덜 중요한 이벤트와 버퍼를 공유합니다. 따라서 판독기는 디버그 중요도가 전달될 때 최소 데이터를 순회합니다.
반환
WEAVE_NO_ERROR. 무조건적으로.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

현재 특정 중요도 수준에 대해 저장된 첫 번째 이벤트 ID를 가져옵니다.

세부정보
매개변수
inImportance
중요도 수준
반환
event_id_t 해당 이벤트 중요도에 대해 현재 처음 저장된 이벤트 ID

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

특정 중요도 수준에서 가장 최근에 판매된 ID를 가져옵니다.

세부정보
매개변수
inImportance
중요도 수준
반환
event_id_t 해당 이벤트 중요도에 대해 가장 최근에 생성된 이벤트 ID입니다.

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 확인합니다.

IsValid

bool IsValid(
  void
)

IsValid는 LoggingManagement 인스턴스가 유효한지 여부를 반환합니다.

세부정보
반환 값
true
인스턴스가 유효합니다 (적절한 지원 저장소로 초기화됨).
false
그렇지 않은 경우 다음 단계를 따릅니다.

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

이전에 유지된 Weave 이벤트를 로드합니다.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

옵션을 사용하여 콜백을 통해 이벤트를 로깅합니다.

이 함수는 EventWriterFunct 및 앱별 appData 컨텍스트로 표시된 이벤트를 로깅합니다. 이 함수는 사용자 코드가 이벤트 데이터를 이벤트 로그에 직접 내보낼 수 있도록 이벤트 메타데이터를 작성하고 nl::Weave::TLV::TLVWriter 참조 및 inAppData 컨텍스트를 사용하여 inEventWriter를 호출합니다. 이러한 형식의 이벤트 로깅은 이벤트 데이터가 타겟 버퍼에 직접 직렬화되기 때문에 메모리 소비를 최소화합니다. 이벤트 데이터는 inProfileIDinEventType로 식별된 스키마 내에서 해석될 컨텍스트 태그를 포함해야 합니다(MUST). 첫 번째 요소의 태그는 무시됩니다. 이벤트 로깅 시스템에서 이 태그를 eventData 태그로 대체합니다.

스키마 중요도가 LoggingConfiguration에 지정된 로깅 임계값을 초과하면 이벤트가 로깅됩니다. 이벤트의 중요도가 현재 기준점을 충족하지 않는 경우 이벤트는 삭제되며 함수는 0를 결과 이벤트 ID로 반환합니다.

이 호출 변형을 사용하면 호출자가 EventOptions의 조합을 설정할 수 있습니다.

  • 타임스탬프, 0이 호출 시점의 현재 시간이 기본값일 때,
  • 'root' 이벤트 소스의 섹션 (이벤트 소스 및 트레잇 ID) NULL인 경우 현재 기기가 기본적으로 사용됩니다. 이벤트가 전화를 거는 기기와 관련된 것으로 표시됩니다.
  • 이벤트 ID를 그룹화하기 위한 관련 이벤트 ID 관련 이벤트 ID가 0이면 이벤트가 다른 이벤트와 관련이 없는 것으로 표시됩니다.
  • 긴박감 기본적으로 긴급하지 않습니다.

세부정보
매개변수
[in] inSchema
스키마: 이 이벤트의 중요도, 프로필 ID, 구조 유형을 정의합니다.
[in] inEventWriter
이벤트 데이터를 실제로 직렬화하기 위해 호출할 콜백
[in] inAppData
콜백의 애플리케이션 컨텍스트입니다.
[in] inOptions
이벤트 메타데이터의 옵션입니다. NULL일 수 있습니다.
반환
event_id_t 이벤트가 로그에 기록된 경우 이벤트 ID, 그렇지 않은 경우 0입니다.

LoggingManagement

 LoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement 생성자.

LogStorageResources 배열을 사용하여 LoggingManagement를 초기화합니다. 배열은 각 유효한 중요도 수준에 대한 리소스를 제공해야 하며, 배열의 요소는 중요도가 높아지고 중요도가 낮아져야 합니다. 배열의 첫 번째 요소는 가장 중요한 이벤트에 할당된 리소스에 해당하며 마지막 요소는 가장 중요하지 않은 이벤트에 해당합니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager가 이 로깅 하위 시스템과 함께 사용됩니다.
[in] inNumBuffers
inLogStorageResources 배열의 요소 수
[in] inLogStorageResources
각 중요도 수준의 LogStorageResources 배열.

LoggingManagement

 LoggingManagement(
  void
)

LoggingManagement 기본 생성자.

주로 컴파일러를 만족시키는 데 제공됩니다.

세부정보
반환

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 true로 설정합니다.

NotifyEventsDelivered

void NotifyEventsDelivered(
  ImportanceType inImportance,
  event_id_t inLastDeliveredEventID,
  uint64_t inRecipientNodeID
)

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  NotifyExternalEventsEvictedFunct inEvictedCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 또한 이 번호가 일정해야 합니다. 이 API는 플랫폼이 특정 이벤트 ID를 등록하도록 허용하지 않으므로, 적어도 고유 이벤트 ID를 사용하여 플랫폼에서 이벤트를 저장할 수 없습니다.

콜백은 등록 취소 전까지 구독자가 일정 범위 내에서 이벤트 ID를 가져오려고 할 때마다 호출됩니다.

이 함수 변형은 이벤트가 구독자에게 전달되었을 때와 외부 이벤트 객체가 제거되었을 때 외부 제공자가 알림을 받고자 할 때 사용해야 합니다.

이벤트가 전달되면 외부 공급자는 그 사실을 수신자의 노드 ID 및 해당 수신자에게 전달된 마지막 이벤트의 ID와 함께 알립니다. 외부 공급자는 동일한 이벤트 ID에 대해 여러 번 알림을 받을 수 있습니다. 핸들러에는 특별한 제한이 없습니다. 특히 핸들러가 외부 이벤트 ID를 등록 취소할 수 있습니다.

외부 이벤트 객체가 로그 버퍼에서 제거되면 외부 이벤트 객체의 사본과 함께 외부 제공자에게 알림이 전송됩니다.

ExternalEvents 구조체에 대한 포인터는 실패 시 NULL이며, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 집합을 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 대한 자세한 내용은 FetchExternalEventsFunct 문서를 참조하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inFetchCallback
외부 이벤트를 가져오기 위해 등록하는 콜백
[in] inNotifyCallback
전송 알림 등록 콜백
[in] inEvictedCallback
제거 알림 등록 콜백
[in] inNumEvents
이 집합의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터 외부 이벤트 등록이 완료되면 함수에서 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
더 이상 사용할 수 있는 콜백 슬롯이 없는 경우.
WEAVE_ERROR_INVALID_ARGUMENT
Null 함수 콜백이거나 등록할 이벤트가 없습니다.
WEAVE_NO_ERROR
성공 시

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 또한 이 번호가 일정해야 합니다. 이 API는 플랫폼이 특정 이벤트 ID를 등록하도록 허용하지 않으므로, 적어도 고유 이벤트 ID를 사용하여 플랫폼에서 이벤트를 저장할 수 없습니다.

콜백은 등록 취소 전까지 구독자가 일정 범위 내에서 이벤트 ID를 가져오려고 할 때마다 호출됩니다.

이 함수의 변형은 외부 제공자가 이벤트가 구독자에게 전달되었을 때 알림을 받고자 할 때 사용해야 하지만, 외부 이벤트 객체가 제거되었을 때는 사용하지 않아야 합니다. 이벤트가 전달되면 외부 공급자는 그 사실을 수신자의 노드 ID 및 해당 수신자에게 전달된 마지막 이벤트의 ID와 함께 알립니다. 외부 공급자는 동일한 이벤트 ID에 대해 여러 번 알림을 받을 수 있습니다. 핸들러에는 특별한 제한이 없습니다. 특히 핸들러가 외부 이벤트 ID를 등록 취소할 수 있습니다.

ExternalEvents 구조체에 대한 포인터는 실패 시 NULL이며, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 집합을 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 대한 자세한 내용은 FetchExternalEventsFunct 문서를 참조하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inCallback
외부 이벤트를 가져오기 위해 등록하는 콜백
[in] inNotifyCallback
전송 알림 등록 콜백
[in] inNumEvents
이 집합의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터 외부 이벤트 등록이 완료되면 함수에서 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
더 이상 사용할 수 있는 콜백 슬롯이 없는 경우.
WEAVE_ERROR_INVALID_ARGUMENT
Null 함수 콜백이거나 등록할 이벤트가 없습니다.
WEAVE_NO_ERROR
성공 시

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하기 위한 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 또한 이 번호가 일정해야 합니다. 이 API는 플랫폼이 특정 이벤트 ID를 등록하도록 허용하지 않으므로, 적어도 고유 이벤트 ID를 사용하여 플랫폼에서 이벤트를 저장할 수 없습니다.

콜백은 등록 취소 전까지 구독자가 일정 범위 내에서 이벤트 ID를 가져오려고 할 때마다 호출됩니다.

이 함수의 변형은 외부 이벤트가 전달되었을 때나 외부 이벤트 객체가 제거되었을 때 외부 제공자가 알림을 원하는 경우에 사용해야 합니다.

ExternalEvents 구조체에 대한 포인터는 실패 시 NULL이며, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 집합을 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 대한 자세한 내용은 FetchExternalEventsFunct 문서를 참조하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inCallback
외부 이벤트를 가져오기 위해 등록하는 콜백
[in] inNumEvents
이 집합의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터 외부 이벤트 등록이 완료되면 함수에서 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
더 이상 사용할 수 있는 콜백 슬롯이 없는 경우.
WEAVE_ERROR_INVALID_ARGUMENT
Null 함수 콜백이거나 등록할 이벤트가 없습니다.
WEAVE_NO_ERROR
성공 시

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

로그 오프로드 작업을 예약합니다.

함수는 작업 오프로드 프로세스를 예약할지 여부를 결정하고, 이 경우 LoggingFlushHandler가 Weave 스레드에서 비동기식으로 실행되도록 예약합니다.

플러시 예약은 다음 세 가지 요소에 따라 결정됩니다.

버퍼를 플러시하기 위한 명시적 요청

이벤트 버퍼의 상태 및 이벤트 소비자와 아직 동기화되지 않은 데이터의 양

이미 대기 중인 요청 플러시 요청 이벤트가 있는지 여부입니다.

플러시 예약을 위한 명시적 요청은 입력 매개변수를 통해 전달됩니다.

자동 플러시는 일반적으로 이벤트 버퍼에 새 오프로드를 시작하기에 충분한 데이터가 포함될 때 예약됩니다. 오프로드 전략에 따라 오프로드 간의 최소 및 최대 시간과 같은 추가 트리거를 고려할 수도 있습니다.

이벤트 로그의 대기 중 상태는 mUploadRequested 변수로 표시됩니다. 이 함수는 여러 스레드에서 호출할 수 있으므로 알림을 전송하기 전에 중복 LoggingFlushHandler를 예약하지 않도록 mUploadRequested를 원자적으로 읽고 설정해야 합니다.

세부정보
매개변수
inRequestFlush
내부 버퍼 관리 정책에 관계없이 플러시를 예약해야 하는지 여부를 나타내는 불리언 값입니다.
반환 값
WEAVE_ERROR_INCORRECT_STATE
LoggingManagement 모듈이 완전히 초기화되지 않았습니다.
WEAVE_NO_ERROR
성공 시

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

모든 중요도 유형의 Weave 이벤트를 직렬화합니다.

WeaveCircularTLVBuffer의 이벤트와 관련 상태를 제공된 버퍼에 직렬화합니다.

이 메서드는 절전 모드 동안 RAM을 유지하지 않는 기기에서 사용하기 위한 것으로, 절전 모드로 전환되기 전에 이벤트를 유지하여 이벤트의 손실을 방지할 수 있습니다.

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

WEAVE_ERROR SetExchangeManager(
  nl::Weave::WeaveExchangeManager *inMgr
)

이 로깅 하위 시스템과 함께 사용할 WeaveExchangeManager를 설정합니다.

일부 플랫폼에서는 위의 CreateLoggingManagement()와 별도로 이 작업을 수행해야 할 수도 있습니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager가 이 로깅 하위 시스템과 함께 사용됩니다.

SetLoggingEndpoint

WEAVE_ERROR SetLoggingEndpoint(
  event_id_t *inEventEndpoints,
  size_t inNumImportanceLevels,
  size_t & outLoggingPosition
)

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

할당된 이벤트 ID에 해당하는 이벤트 작성을 건너뛰는 도우미 함수입니다.

세부정보
매개변수
[in,out] aContext
EventLoadOutContext: 버퍼의 스테이트풀(Stateful) 정보로 초기화됩니다. 상태는 이 컨텍스트를 사용하여 BlitEvent에 의해 업데이트되고 보존됩니다.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger는 유효한 로깅 수준을 프로덕션 수준으로 높입니다.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

외부에 저장된 이벤트 집합을 등록 취소하기 위한 공개 API입니다.

콜백을 등록 취소하면 LoggingManagement에서 이벤트 집합의 콜백을 호출할 수 없습니다. LoggingManagement에서 더 이상 이러한 이벤트 ID를 구독자에게 전송하지 않습니다.

인텐트는 한 함수가 한 번에 일련의 이벤트를 처리하기 위한 것입니다. 동일한 함수를 사용하여 새 이벤트 집합을 등록해야 하는 경우 콜백을 먼저 등록 해제한 다음 다시 등록해야 합니다. 즉, 더 이상 원래 이벤트 세트를 가져올 수 없습니다.

이 함수는 무조건 성공합니다. 콜백이 등록되지 않았거나 이미 등록 취소된 경우 콜백이 작동하지 않습니다.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inEventID
등록 취소하려는 외부 이벤트 블록의 이벤트에 해당하는 이벤트 ID입니다.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger는 유효한 로깅 수준을 구성된 로깅 수준으로 복원합니다.

공개 정적 함수

CreateLoggingManagement

void CreateLoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement 객체를 만들고 제공된 리소스로 로깅 관리 하위 시스템을 초기화합니다.

LogStorageResources 배열을 사용하여 LoggingManagement를 초기화합니다. 배열은 각 유효한 중요도 수준에 대한 리소스를 제공해야 하며, 배열의 요소는 중요도가 높아지고 중요도가 낮아져야 합니다. 배열의 첫 번째 요소는 가장 중요한 이벤트에 할당된 리소스에 해당하며 마지막 요소는 가장 중요하지 않은 이벤트에 해당합니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager가 이 로깅 하위 시스템과 함께 사용됩니다.
[in] inNumBuffers
inLogStorageResources 배열의 요소 수
[in] inLogStorageResources
각 중요도 수준의 LogStorageResources 배열.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

종료 시 필요한 모든 작업을 실행합니다.

GetInstance

LoggingManagement & GetInstance(
  void
)