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

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

Một lớp để quản lý nhật ký sự kiện trong bộ nhớ.

Tóm tắt

Hàm khởi tạo và phá huỷ

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
Hàm khởi tạo LoggingManagement.
LoggingManagement(void)
Hàm khởi tạo mặc định LoggingManagement.

Hàm công khai

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Chức năng trợ giúp để ghi dữ liệu và tiêu đề sự kiện theo giao thức ghi nhật ký sự kiện.
CancelShutdownInProgress(void)
void
Đặt cờ mShutdownInProgress thành false.
CheckShouldRunWDM(void)
bool
Quyết định xem có giảm tải các sự kiện dựa trên số byte trong vùng đệm sự kiện chưa được lên lịch để tải lên hay không.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Hàm dùng để truy xuất các sự kiện có tầm quan trọng đã chỉ định kể từ một mã sự kiện đã chỉ định.
GetBytesWritten(void) const
uint32_t
Lấy tổng số byte được ghi (tính trên tất cả các tầm quan trọng của sự kiện) vào nhật ký này kể từ khi tạo thực thể.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Phương thức trợ giúp hữu ích để kiểm tra vùng đệm nhật ký trong bộ nhớ.
GetFirstEventID(ImportanceType inImportance)
Tìm nạp mã sự kiện đầu tiên hiện đang được lưu trữ cho một mức độ quan trọng cụ thể.
GetLastEventID(ImportanceType inImportance)
Tìm nạp mã nhận dạng được cập nhật gần đây nhất cho một mức độ quan trọng cụ thể.
IsShutdownInProgress(void)
bool
Kiểm tra cờ mShutdownInProgress.
IsValid(void)
bool
IsValid trả về cho biết liệu thực thể LoggingManagement có hợp lệ hay không.
LoadEvents(TLVReader & reader)
Tải sự kiện Weave đã tồn tại trước đó.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Ghi lại một sự kiện thông qua lệnh gọi lại, với các tuỳ chọn.
MarkShutdownInProgress(void)
void
Đặt cờ mShutdownInProgress thành 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 công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
API công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
API công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.
ScheduleFlushIfNeeded(bool inFlushRequested)
Lên lịch cho tác vụ giảm tải nhật ký.
SerializeEvents(TLVWriter & writer)
Tuần tự hoá các sự kiện Weave thuộc tất cả các loại mức độ quan trọng.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Đặt WeaveExchangeManager để sử dụng với hệ thống phụ ghi nhật ký này.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Hàm trợ giúp để bỏ qua việc ghi một sự kiện tương ứng với mã sự kiện được phân bổ.
ThrottleLogger(void)
void
ThrottleLogger nâng cấp độ ghi nhật ký hiệu quả lên cấp Chính thức.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
API công khai để huỷ đăng ký một nhóm sự kiện được lưu trữ bên ngoài.
UnthrottleLogger(void)
void
UnthrottleLogger khôi phục cấp độ ghi nhật ký hiệu quả về cấp độ ghi nhật ký đã định cấu hình.

Hàm tĩnh công khai

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
Tạo đối tượng LoggingManagement và khởi động hệ thống con quản lý nhật ký bằng các tài nguyên được cung cấp.
DestroyLoggingManagement(void)
void
Thực hiện mọi thao tác cần thiết khi tắt máy.
GetInstance(void)

Hàm công khai

BlitEvent

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

Chức năng trợ giúp để ghi dữ liệu và tiêu đề sự kiện theo giao thức ghi nhật ký sự kiện.

Thông tin chi tiết
Thông số
[in,out] aContext
EventLoadOutContext, được khởi tạo với thông tin có trạng thái cho vùng đệm. BlitEvent cập nhật và duy trì trạng thái thông qua bối cảnh này.
[in] inSchema
Giản đồ xác định mức độ quan trọng, mã hồ sơ và loại cấu trúc của sự kiện này.
[in] inEventWriter
Lệnh gọi lại để chuyển đổi tuần tự dữ liệu sự kiện.
[in] inAppData
Ngữ cảnh ứng dụng cho lệnh gọi lại.
[in] inOptions
EventOptions mô tả dấu thời gian và các thẻ khác có liên quan đến sự kiện này.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Đặt cờ mShutdownInProgress thành false.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Quyết định xem có giảm tải các sự kiện dựa trên số byte trong vùng đệm sự kiện chưa được lên lịch để tải lên hay không.

Hành vi của hàm được kiểm soát thông qua hằng số WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Nếu hệ thống đã ghi nhiều hơn số byte đó kể từ lần gần đây nhất Thông báo WDM được gửi, thì hàm sẽ cho biết đã đến lúc kích hoạt NotificationEngine.

Thông tin chi tiết
Giá trị trả về
true
Sự kiện sẽ được giảm tải
false
Hoặc

FetchEventsSince

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

Hàm dùng để truy xuất các sự kiện có tầm quan trọng đã chỉ định kể từ một mã sự kiện đã chỉ định.

Với một nl::Weave::TLV::TLVWriter, một loại mức độ quan trọng và một mã sự kiện, hàm sẽ tìm nạp các sự kiện có tầm quan trọng đã chỉ định kể từ sự kiện được chỉ định. Hàm này sẽ tiếp tục tìm nạp các sự kiện cho đến khi hết dung lượng trong nl::Weave::TLV::TLVWriter hoặc trong nhật ký. Hàm này sẽ kết thúc việc ghi sự kiện trên ranh giới sự kiện.

Thông tin chi tiết
Thông số
[in] ioWriter
Trình ghi để dùng cho bộ nhớ sự kiện
[in] inImportance
Tầm quan trọng của các sự kiện cần tìm nạp
[in,out] ioEventID
Khi nhập, mã sự kiện ngay trước sự kiện mà chúng tôi đang tìm nạp. Sau khi hoàn tất, mã của sự kiện cuối cùng được tìm nạp.
Giá trị trả về
WEAVE_END_OF_TLV
Hàm đã đạt đến cuối các mục nhập nhật ký hiện có ở mức độ quan trọng được chỉ định
WEAVE_ERROR_NO_MEMORY
Hàm này đã hết dung lượng trong ioWriter, có nhiều sự kiện khác trong nhật ký.
WEAVE_ERROR_BUFFER_TOO_SMALL
Hàm này đã hết dung lượng trong ioWriter, có nhiều sự kiện khác trong nhật ký.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Lấy tổng số byte được ghi (tính trên tất cả các tầm quan trọng của sự kiện) vào nhật ký này kể từ khi tạo thực thể.

Thông tin chi tiết
Trả về
Số byte được ghi vào nhật ký.

GetEventReader

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

Phương thức trợ giúp hữu ích để kiểm tra vùng đệm nhật ký trong bộ nhớ.

Thông tin chi tiết
Thông số
[in,out] ioReader
Thông tin tham chiếu đến trình đọc sẽ được khởi chạy bằng bộ nhớ sao lưu trong nhật ký sự kiện
[in] inImportance
Tầm quan trọng bắt đầu đối với độc giả. Xin lưu ý rằng trong trường hợp này, tầm quan trọng khi bắt đầu có phần hơi khác trực quan: các sự kiện quan trọng hơn sẽ dùng chung vùng đệm với các sự kiện ít quan trọng hơn, ngoài các vùng đệm chuyên dụng của các sự kiện đó. Do đó, trình đọc sẽ truyền ít dữ liệu nhất khi chỉ số tầm quan trọng Gỡ lỗi được chuyển vào.
Trả về
WEAVE_NO_ERROR Vô điều kiện.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Tìm nạp mã sự kiện đầu tiên hiện đang được lưu trữ cho một mức độ quan trọng cụ thể.

Thông tin chi tiết
Thông số
inImportance
Mức độ quan trọng
Trả về
event_id_t Mã sự kiện hiện được lưu trữ đầu tiên cho mức độ quan trọng của sự kiện đó

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Tìm nạp mã nhận dạng được cập nhật gần đây nhất cho một mức độ quan trọng cụ thể.

Thông tin chi tiết
Thông số
inImportance
Mức độ quan trọng
Trả về
Mã sự kiện event_id_t gần đây nhất cho mức độ quan trọng của sự kiện đó

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Kiểm tra cờ mShutdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid trả về cho biết liệu thực thể LoggingManagement có hợp lệ hay không.

Thông tin chi tiết
Giá trị trả về
true
Thực thể này hợp lệ (được khởi tạo bằng kho lưu trữ sao lưu thích hợp)
false
Hoặc

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Tải sự kiện Weave đã tồn tại trước đó.

LogEvent

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

Ghi lại một sự kiện thông qua lệnh gọi lại, với các tuỳ chọn.

Hàm này ghi lại một sự kiện được biểu thị dưới dạng EventWriterFunct và ngữ cảnh appData dành riêng cho ứng dụng. Hàm này ghi siêu dữ liệu sự kiện và gọi inEventWriter với tham chiếu nl::Weave::TLV::TLVWriter và ngữ cảnh inAppData để mã người dùng có thể phát trực tiếp dữ liệu sự kiện vào nhật ký sự kiện. Hình thức ghi nhật ký sự kiện này giúp giảm thiểu mức sử dụng bộ nhớ, vì dữ liệu sự kiện được chuyển đổi tuần tự trực tiếp vào vùng đệm đích. Dữ liệu sự kiện PHẢI chứa các thẻ ngữ cảnh cần được diễn giải trong giản đồ do inProfileIDinEventType xác định. Thẻ của phần tử đầu tiên sẽ bị bỏ qua; hệ thống ghi nhật ký sự kiện sẽ thay thế thẻ đó bằng thẻ eventData.

Sự kiện này sẽ được ghi lại nếu tầm quan trọng của giản đồ vượt quá ngưỡng ghi nhật ký được chỉ định trong LoggingConfiguration. Nếu tầm quan trọng của sự kiện không đáp ứng ngưỡng hiện tại, thì sự kiện đó sẽ bị loại bỏ và hàm trả về 0 dưới dạng mã sự kiện thu được.

Biến thể này của lệnh gọi cho phép phương thức gọi đặt bất kỳ tổ hợp EventOptions nào:

  • dấu thời gian, khi giá trị mặc định là 0 thành thời gian hiện tại tại thời điểm thực hiện lệnh gọi,
  • "gốc" phần của nguồn sự kiện (nguồn sự kiện và mã trait); nếu giá trị NULL, thì thuộc tính mặc định sẽ trở thành thiết bị hiện tại. sự kiện được đánh dấu là có liên quan đến thiết bị đang thực hiện cuộc gọi,
  • một mã sự kiện có liên quan để nhóm mã sự kiện; khi mã sự kiện có liên quan là 0, sự kiện đó sẽ được đánh dấu là không liên quan đến bất kỳ sự kiện nào khác,
  • tính cấp bách; theo mặc định là không khẩn cấp.

Thông tin chi tiết
Thông số
[in] inSchema
Giản đồ xác định mức độ quan trọng, mã hồ sơ và loại cấu trúc của sự kiện này.
[in] inEventWriter
Lệnh gọi lại để gọi để thực sự chuyển đổi tuần tự dữ liệu sự kiện
[in] inAppData
Ngữ cảnh ứng dụng cho lệnh gọi lại.
[in] inOptions
Các lựa chọn cho siêu dữ liệu sự kiện. Có thể là giá trị NULL.
Trả về
event_id_t Mã sự kiện nếu sự kiện đó được ghi vào nhật ký, nếu không thì là 0.

LoggingManagement

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

Hàm khởi tạo LoggingManagement.

Khởi chạy LoggingManagement bằng một mảng LogStorageResources. Mảng phải cung cấp tài nguyên cho từng mức độ quan trọng hợp lệ, các phần tử của mảng phải có giá trị số tăng dần (và mức độ quan trọng giảm dần); phần tử đầu tiên trong mảng tương ứng với tài nguyên được phân bổ cho các sự kiện quan trọng nhất và phần tử cuối cùng tương ứng với các sự kiện ít quan trọng nhất.

Thông tin chi tiết
Thông số
[in] inMgr
WeaveExchangeManager được sử dụng với hệ thống phụ ghi nhật ký này
[in] inNumBuffers
Số phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho từng cấp độ quan trọng.

LoggingManagement

 LoggingManagement(
  void
)

Hàm khởi tạo mặc định LoggingManagement.

Được cung cấp chủ yếu để làm hài lòng trình biên dịch.

Thông tin chi tiết
Trả về

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Đặt cờ mShutdownInProgress thành 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 công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.

Đăng ký lệnh gọi lại của biểu mẫu FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số lượng sự kiện khi đăng ký. Các hoạt động nội bộ cũng yêu cầu số này không đổi. Vì API này không cho phép nền tảng đăng ký mã sự kiện cụ thể, nên việc này sẽ ngăn nền tảng lưu trữ lâu dài các sự kiện (ít nhất là với mã sự kiện duy nhất).

Lệnh gọi lại sẽ được gọi bất cứ khi nào người đăng ký cố gắng tìm nạp mã sự kiện trong phạm vi bất kỳ cho đến khi bị huỷ đăng ký.

Biến thể này của hàm nên được sử dụng khi nhà cung cấp bên ngoài muốn được thông báo cả khi sự kiện được gửi đến người đăng ký lẫn khi đối tượng sự kiện bên ngoài bị loại.

Khi các sự kiện được gửi, nhà cung cấp bên ngoài sẽ được thông báo về điều đó cùng với mã nút của người nhận và mã của sự kiện cuối cùng được gửi tới người nhận đó. Xin lưu ý rằng nhà cung cấp bên ngoài có thể nhận được thông báo nhiều lần cho cùng một mã sự kiện. Không có hạn chế cụ thể đối với trình xử lý, cụ thể, trình xử lý có thể huỷ đăng ký ID sự kiện bên ngoài.

Nếu đối tượng sự kiện bên ngoài bị loại khỏi vùng đệm nhật ký, thì trình cung cấp bên ngoài sẽ nhận được thông báo cùng với bản sao của đối tượng sự kiện bên ngoài.

Con trỏ đến cấu trúc ExternalEvents sẽ là NULL khi không thành công, nếu không sẽ được điền bằng mã sự kiện bắt đầu và kết thúc được chỉ định cho lệnh gọi lại. Bạn nên dùng con trỏ này để huỷ đăng ký tập hợp các sự kiện.

Hãy xem tài liệu về FetchExternalEventsFunct để biết chi tiết về những việc lệnh gọi lại phải triển khai.

Thông tin chi tiết
Thông số
[in] inImportance
Mức độ quan trọng
[in] inFetchCallback
Lệnh gọi lại để đăng ký tìm nạp các sự kiện bên ngoài
[in] inNotifyCallback
Lệnh gọi lại để đăng ký thông báo phân phối
[in] inEvictedCallback
Lệnh gọi lại để đăng ký thông báo giải phóng
[in] inNumEvents
Số sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến một event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm này sẽ lưu trữ mã sự kiện tương ứng với mã sự kiện cuối cùng của khối sự kiện bên ngoài. Tham số này có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không còn khung giờ gọi lại nào khác.
WEAVE_ERROR_INVALID_ARGUMENT
Lệnh gọi lại hàm rỗng hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Khi thành công.

RegisterEventCallbackForImportance

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

API công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.

Đăng ký lệnh gọi lại biểu mẫu FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số lượng sự kiện khi đăng ký. Các hoạt động nội bộ cũng yêu cầu số này không đổi. Vì API này không cho phép nền tảng đăng ký mã sự kiện cụ thể, nên điều này sẽ ngăn nền tảng lưu trữ lâu dài các sự kiện (ít nhất là với mã sự kiện duy nhất).

Lệnh gọi lại sẽ được gọi bất cứ khi nào người đăng ký cố gắng tìm nạp mã sự kiện trong phạm vi bất kỳ cho đến khi bị huỷ đăng ký.

Biến thể này của hàm nên được sử dụng khi nhà cung cấp bên ngoài muốn nhận thông báo khi các sự kiện được gửi đến người đăng ký, chứ không phải khi đối tượng sự kiện bên ngoài bị loại. Khi các sự kiện được gửi, nhà cung cấp bên ngoài sẽ được thông báo về điều đó cùng với mã nút của người nhận và mã của sự kiện cuối cùng được gửi tới người nhận đó. Xin lưu ý rằng nhà cung cấp bên ngoài có thể nhận được thông báo nhiều lần cho cùng một mã sự kiện. Không có hạn chế cụ thể nào đối với trình xử lý, cụ thể là trình xử lý có thể huỷ đăng ký ID sự kiện bên ngoài.

Con trỏ đến cấu trúc ExternalEvents sẽ là NULL khi không thành công, nếu không sẽ được điền bằng mã sự kiện bắt đầu và kết thúc được chỉ định cho lệnh gọi lại. Bạn nên dùng con trỏ này để huỷ đăng ký tập hợp các sự kiện.

Hãy xem tài liệu về FetchExternalEventsFunct để biết chi tiết về những việc lệnh gọi lại phải triển khai.

Thông tin chi tiết
Thông số
[in] inImportance
Mức độ quan trọng
[in] inCallback
Lệnh gọi lại để đăng ký tìm nạp các sự kiện bên ngoài
[in] inNotifyCallback
Lệnh gọi lại để đăng ký thông báo gửi
[in] inNumEvents
Số sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến một event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm này sẽ lưu trữ mã sự kiện tương ứng với mã sự kiện cuối cùng của khối sự kiện bên ngoài. Tham số này có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không còn khung giờ gọi lại nào khác.
WEAVE_ERROR_INVALID_ARGUMENT
Lệnh gọi lại hàm rỗng hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Khi thành công.

RegisterEventCallbackForImportance

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

API công khai để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.

Đăng ký lệnh gọi lại của biểu mẫu FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số lượng sự kiện khi đăng ký. Các hoạt động nội bộ cũng yêu cầu số này không đổi. Vì API này không cho phép nền tảng đăng ký mã sự kiện cụ thể, nên điều này sẽ ngăn nền tảng lưu trữ lâu dài các sự kiện (ít nhất là với mã sự kiện duy nhất).

Lệnh gọi lại sẽ được gọi bất cứ khi nào người đăng ký cố gắng tìm nạp mã sự kiện trong phạm vi bất kỳ cho đến khi bị huỷ đăng ký.

Bạn nên sử dụng biến thể này của hàm khi trình cung cấp bên ngoài không muốn nhận thông báo cả khi sự kiện bên ngoài đã được gửi hoặc khi đối tượng sự kiện bên ngoài bị loại.

Con trỏ đến cấu trúc ExternalEvents sẽ là NULL khi không thành công, nếu không sẽ được điền bằng mã sự kiện bắt đầu và kết thúc được chỉ định cho lệnh gọi lại. Bạn nên dùng con trỏ này để huỷ đăng ký tập hợp các sự kiện.

Hãy xem tài liệu về FetchExternalEventsFunct để biết chi tiết về những việc lệnh gọi lại phải triển khai.

Thông tin chi tiết
Thông số
[in] inImportance
Mức độ quan trọng
[in] inCallback
Lệnh gọi lại để đăng ký tìm nạp các sự kiện bên ngoài
[in] inNumEvents
Số sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến một event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm này sẽ lưu trữ mã sự kiện tương ứng với mã sự kiện cuối cùng của khối sự kiện bên ngoài. Tham số này có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không còn khung giờ gọi lại nào khác.
WEAVE_ERROR_INVALID_ARGUMENT
Lệnh gọi lại hàm rỗng hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Khi thành công.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Lên lịch cho tác vụ giảm tải nhật ký.

Hàm này quyết định xem có lên lịch cho quá trình giảm tải tác vụ hay không. Nếu có, hàm này sẽ lên lịch để LoggingFlushHandler chạy không đồng bộ trên luồng Weave.

Quyết định lên lịch xả phụ thuộc vào 3 yếu tố:

một yêu cầu rõ ràng để đẩy dữ liệu vùng đệm

trạng thái của vùng đệm sự kiện và lượng dữ liệu chưa được đồng bộ hoá với đối tượng sử dụng sự kiện

xem đã có sự kiện yêu cầu xoá yêu cầu đang chờ xử lý nào hay chưa.

Yêu cầu rõ ràng về việc lên lịch xả được truyền qua một tham số đầu vào.

Quá trình xả tự động thường được lên lịch khi vùng đệm sự kiện chứa đủ dữ liệu để đáng bắt đầu một lượt giảm tải mới. Các yếu tố kích hoạt khác, chẳng hạn như thời gian tối thiểu và tối đa giữa các lần giảm tải cũng có thể được tính đến tuỳ thuộc vào chiến lược giảm tải.

Trạng thái đang chờ xử lý của nhật ký sự kiện được biểu thị bằng biến mUploadRequested. Vì hàm này có thể được gọi bằng nhiều luồng, nên mUploadRequested phải được đọc và đặt từng phần để tránh việc lên lịch một LoggingFlushHandler thừa trước khi gửi thông báo.

Thông tin chi tiết
Thông số
inRequestFlush
Giá trị boolean cho biết liệu có nên lên lịch cập nhật hay không bất kể chính sách quản lý vùng đệm nội bộ.
Giá trị trả về
WEAVE_ERROR_INCORRECT_STATE
Mô-đun LoggingManagement chưa được khởi chạy hoàn toàn.
WEAVE_NO_ERROR
Khi thành công.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Tuần tự hoá các sự kiện Weave thuộc tất cả các loại mức độ quan trọng.

Tuần tự hoá các sự kiện trong WeaveCircularTLVBuffer và các trạng thái liên quan vào vùng đệm đã cung cấp.

Phương thức này dành cho các thiết bị không giữ lại RAM trong khi ngủ, cho phép chúng duy trì các sự kiện trước khi chuyển sang chế độ ngủ và do đó tránh bị mất sự kiện

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Đặt WeaveExchangeManager để sử dụng với hệ thống phụ ghi nhật ký này.

Trên một số nền tảng, việc này có thể cần diễn ra riêng biệt với CreateLoggingManagement() ở trên.

Thông tin chi tiết
Thông số
[in] inMgr
WeaveExchangeManager được sử dụng với hệ thống phụ ghi nhật ký này

SetLoggingEndpoint

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Hàm trợ giúp để bỏ qua việc ghi một sự kiện tương ứng với mã sự kiện được phân bổ.

Thông tin chi tiết
Thông số
[in,out] aContext
EventLoadOutContext, được khởi tạo với thông tin có trạng thái cho vùng đệm. BlitEvent cập nhật và duy trì trạng thái thông qua bối cảnh này.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger nâng cấp độ ghi nhật ký hiệu quả lên cấp Chính thức.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

API công khai để huỷ đăng ký một nhóm sự kiện được lưu trữ bên ngoài.

Việc huỷ đăng ký lệnh gọi lại sẽ ngăn LoggingManagement gọi lệnh gọi lại cho một nhóm sự kiện. LoggingManagement sẽ không còn gửi các mã sự kiện đó cho người đăng ký nữa.

Mục đích là để một hàm phân phát một nhóm sự kiện tại một thời điểm. Nếu bạn cần đăng ký một nhóm sự kiện mới bằng cách sử dụng cùng một hàm, thì trước tiên, bạn phải huỷ đăng ký một lệnh gọi lại rồi đăng ký lại. Điều này có nghĩa là hệ thống không thể tìm nạp nhóm sự kiện ban đầu nữa.

Hàm này thành công vô điều kiện. Nếu lệnh gọi lại chưa được đăng ký hoặc đã bị huỷ đăng ký, thì lệnh gọi lại đó là không hoạt động.

Thông tin chi tiết
Thông số
[in] inImportance
Mức độ quan trọng
[in] inEventID
Mã sự kiện tương ứng với bất kỳ sự kiện nào trong khối sự kiện bên ngoài cần huỷ đăng ký.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger khôi phục cấp độ ghi nhật ký hiệu quả về cấp độ ghi nhật ký đã định cấu hình.

Hàm tĩnh công khai

CreateLoggingManagement

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

Tạo đối tượng LoggingManagement và khởi động hệ thống con quản lý nhật ký bằng các tài nguyên được cung cấp.

Khởi chạy LoggingManagement bằng một mảng LogStorageResources. Mảng phải cung cấp tài nguyên cho từng mức độ quan trọng hợp lệ, các phần tử của mảng phải có giá trị số tăng dần (và mức độ quan trọng giảm dần); phần tử đầu tiên trong mảng tương ứng với tài nguyên được phân bổ cho các sự kiện quan trọng nhất và phần tử cuối cùng tương ứng với các sự kiện ít quan trọng nhất.

Thông tin chi tiết
Thông số
[in] inMgr
WeaveExchangeManager được sử dụng với hệ thống phụ ghi nhật ký này
[in] inNumBuffers
Số phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho từng cấp độ quan trọng.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Thực hiện mọi thao tác cần thiết khi tắt máy.

GetInstance

LoggingManagement & GetInstance(
  void
)