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에 지정된 로깅 기준을 초과하면 이벤트가 로깅됩니다. 이벤트의 중요도가 현재 기준을 충족하지 않으면 이벤트가 삭제되고 함수는 결과 이벤트 ID로 0를 반환합니다.

이 호출 변형을 통해 호출자는 EventOptions의 조합을 설정할 수 있습니다.

  • 타임스탬프, 0이 호출 시점의 현재 시간이 기본값인 경우
  • 이벤트 소스의 '루트' 섹션 (이벤트 소스 및 trait 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
)

로그 오프로드 태스크를 예약합니다.

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

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

버퍼를 플러시하는 명시적 요청

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

이미 보류 중인 요청 플러시 요청 이벤트가 있는지 여부를 나타냅니다.

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

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

이벤트 로그의 대기 상태는 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
)