Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 dựng và hàm phá hủy

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
Hàm dựng LoggingManagement.
LoggingManagement(void)
Hàm dựng mặc định LoggingManagement.

Hàm công khai

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Hàm trợ giúp viết tiêu đề và dữ liệ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 cho các sự kiện dựa trên số byte trong bộ đệ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)
Một hàm để truy xuất các sự kiện có mức độ quan trọng cụ thể kể từ mã sự kiện đã chỉ định.
GetBytesWritten(void) const
uint32_t
Lấy tổng số byte được ghi (trên tất cả các mức độ quan trọng của sự kiện) vào nhật ký này kể từ khi tạo bản sao.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Một phương thức trợ giúp hữu ích cho việc kiểm tra bộ đệm nhật ký trong bộ nhớ.
GetFirstEventID(ImportanceType inImportance)
Tìm nạp mã sự kiện đầu tiên hiện được lưu trữ ở một mức độ quan trọng cụ thể.
GetLastEventID(ImportanceType inImportance)
Tìm nạp mã nhận dạng được ủy quyền 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ề liệu thực thể LoggingManagement có hợp lệ không.
LoadEvents(TLVReader & reader)
Tải sự kiện Weave vẫn 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 một lệnh gọi lại, với các tùy 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 dùng để đă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 dùng để đă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 dùng để đăng ký một nhóm sự kiện được lưu trữ bên ngoài.
ScheduleFlushIfNeeded(bool inFlushRequested)
Lên lịch một nhiệm vụ giảm tải nhật ký.
SerializeEvents(TLVWriter & writer)
Trình tự các sự kiện Weave thuộc tất cả các loại quan trọng.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Đặt WeaveExchangeManager để dùng với hệ thống 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 viết một sự kiện tương ứng với mã sự kiện được phân bổ.
ThrottleLogger(void)
void
ThrottleLogger nâng mức ghi nhật ký hiệu quả lên mức Sản xuất.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
API công khai dùng để hủy đă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 Nhật ký quản lý và khởi tạo hệ thống phụ quản lý nhật ký với các tài nguyên được cung cấp.
DestroyLoggingManagement(void)
void
Thực hiện mọi hành động mà chúng tôi cần tắt.
GetInstance(void)

Hàm công khai

Sự kiện Blit

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

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

Thông tin chi tiết
Các thông số
[in,out] aContext
EventLoadOutContext, được khởi tạo bằng thông tin trạng thái cho bộ đệm. State được cập nhật và lưu giữ bởi BlitEvent bằng cách sử dụng ngữ cảnh này.
[in] inSchema
Giản đồ xác định tầm 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 để sắp xếp 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 liên quan đến sự kiện này.

Đang tắt

void CancelShutdownInProgress(
  void
)

Đặt cờ mShutdownInProgress thành false.

Check PRunWDM

bool CheckShouldRunWDM(
  void
)

Quyết định xem có giảm tải cho các sự kiện dựa trên số byte trong bộ đệ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ố lượng byte đó kể từ lần gần nhất hệ thống gửi Thông báo WDM, thì hàm sẽ cho biết đã đến lúc kích hoạt Notificationsengine.

Thông tin chi tiết
Giá trị trả về
true
Các sự kiện phải tải quá nhiều
false
Hoặc

Tìm nạp sự kiện kể từ

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

Một hàm để truy xuất các sự kiện có mức độ quan trọng cụ thể kể 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ó mức độ 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ẽ chấm dứt việc viết sự kiện trên ranh giới sự kiện.

Thông tin chi tiết
Các thông số
[in] ioWriter
Người viết dùng để lưu trữ sự kiện
[in] inImportance
Tầm quan trọng của việc tìm nạp sự kiện
[in,out] ioEventID
Khi nhập dữ liệu, mã sự kiện sẽ xuất hiệ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 sẽ đượ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ý có sẵn ở mức độ quan trọng được chỉ định
WEAVE_ERROR_NO_MEMORY
Hàm này đã hết dung lượng trong ioWriter, bạn có thể xem 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, bạn có thể xem nhiều sự kiện khác trong nhật ký.

Viết byte

uint32_t GetBytesWritten(
  void
) const 

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

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
)

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

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

GetEventEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

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

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

GetEventEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

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

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

Đang tắt

bool IsShutdownInProgress(
  void
)

Kiểm tra cờ mShutdownInProgress.

Hợp lệ

bool IsValid(
  void
)

Isvalid trả về liệu thực thể LoggingManagement có hợp lệ không.

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

Tải sự kiện

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

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

Nhật ký sự kiện

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 một lệnh gọi lại, với các tùy chọn.

Hàm ghi nhật ký 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 ghi siêu dữ liệu sự kiện và gọi inEventWriter bằng tham chiếu nl::Weave::TLV::TLVWriter và ngữ cảnh inAppData để mã người dùng có thể phát ra dữ liệu sự kiện trực tiếp 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 sắp xếp tuần tự trực tiếp vào bộ đệm mục tiêu. Dữ liệu sự kiện PHẢI chứa thẻ ngữ cảnh sẽ đượ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ẻ này bằng thẻ eventData.

Sự kiện này đượ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 mức độ quan trọng của sự kiện không đáp ứng ngưỡng hiện tại, thì sự kiện đó sẽ bị giảm và hàm sẽ trả về một 0 làm mã sự kiện cuối cùng.

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

  • timestamp, khi 0 mặc định thành thời gian hiện tại tại thời điểm gọi,
  • "root" phần của nguồn sự kiện (nguồn sự kiện và mã đặc điểm); nếu là NULL, phần tử này mặc định cho 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 lệnh gọi,
  • một mã sự kiện có liên quan để nhóm các 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,
  • khẩn cấp; theo mặc định không phải là khẩn cấp.

Thông tin chi tiết
Các thông số
[in] inSchema
Giản đồ xác định tầm 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 tùy chọn cho siêu dữ liệu sự kiện. Có thể là 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ì 0.

Quản lý nhật ký

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

Hàm dựng LoggingManagement.

Khởi tạo LoggingManagement với một mảng LogStorageResources. Mảng phải cung cấp tài nguyên cho mỗi mức độ quan trọng hợp lệ, các phần tử của mảng phải tăng giá trị bằng số quan trọng (và giảm dần mức độ quan trọng); phần tử đầu tiên trong mảng tương ứng với các 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
Các thông số
[in] inMgr
WeaveExchangeManager sẽ được dùng với hệ thống ghi nhật ký này
[in] inNumBuffers
Số phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho mỗi mức độ quan trọng.

Quản lý nhật ký

 LoggingManagement(
  void
)

Hàm dựng mặc định LoggingManagement.

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

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

Đang tắt

void MarkShutdownInProgress(
  void
)

Đặt cờ mShutdownInProgress thành true.

Đã gửi thông báo sự kiện

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

Lượt đăng ký gọi lại cho sự kiện nhập

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

API công khai dùng để đă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ó dạng FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số sự kiện khi đăng ký. 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ý các mã sự kiện cụ thể, nên nền tảng đó sẽ không thể lưu trữ các sự kiện (ít nhất là với các 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 số lần bất kỳ cho đến khi được hủy đăng ký.

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

Khi sự kiện được phân phối, nhà cung cấp bên ngoài sẽ được thông báo về điều này cùng với mã nút của người nhận và mã của sự kiện cuối cùng đã 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ể hủy đăng ký mã sự kiện bên ngoài.

Nếu đối tượng sự kiện bên ngoài bị loại khỏi bộ đệm nhật ký, thì nhà cung cấp bên ngoài sẽ đượ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ực hiện được, nếu không, mã sự kiện sẽ được điền cùng với mã sự kiện bắt đầu và kết thúc đã chỉ định cho lệnh gọi lại. Bạn nên dùng con trỏ này để hủy đăng ký nhóm sự kiện.

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

Thông tin chi tiết
Các 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
Gọi lại để đăng ký nhận thông báo về việc phân phối
[in] inEvictedCallback
Gọi lại để đăng ký thông báo chuyển hướng
[in] inNumEvents
Số sự kiện trong nhóm này
[out] outLastEventID
Trỏ tới event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm 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ố có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có sẵn vùng quảng cáo gọi lại nào.
WEAVE_ERROR_INVALID_ARGUMENT
Trống hàm gọi lại hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Thành công!

Lượt đăng ký gọi lại cho sự kiện nhập

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

API công khai dùng để đă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ó dạng FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số sự kiện khi đăng ký. 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ý các mã sự kiện cụ thể, nên nền tảng đó sẽ không thể lưu trữ các sự kiện (ít nhất là với các 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 số lần bất kỳ cho đến khi được hủy đăng ký.

Bạn nên dùng biến thể của hàm này khi nhà cung cấp bên ngoài muốn nhận thông báo khi 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 sự kiện được phân phối, nhà cung cấp bên ngoài sẽ được thông báo về điều này cùng với mã nút của người nhận và mã của sự kiện cuối cùng đã 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ể hủy đăng ký mã sự kiện bên ngoài.

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

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

Thông tin chi tiết
Các 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
Gọi lại để đăng ký nhận thông báo về việc phân phối
[in] inNumEvents
Số sự kiện trong nhóm này
[out] outLastEventID
Trỏ tới event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm 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ố có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có sẵn vùng quảng cáo gọi lại nào.
WEAVE_ERROR_INVALID_ARGUMENT
Trống hàm gọi lại hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Thành công!

Lượt đăng ký gọi lại cho sự kiện nhập

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

API công khai dùng để đă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ó dạng FetchExternalEventsFunct. API này yêu cầu nền tảng phải biết số sự kiện khi đăng ký. 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ý các mã sự kiện cụ thể, nên nền tảng đó sẽ không thể lưu trữ các sự kiện (ít nhất là với các 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 số lần bất kỳ cho đến khi được hủy đăng ký.

Bạn nên dùng biến thể này của hàm khi nhà cung cấp bên ngoài muốn thông báo cả khi sự kiện bên ngoài đã được phân phối cũng như 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ực hiện được, nếu không, mã sự kiện sẽ được điền cùng với mã sự kiện bắt đầu và kết thúc đã chỉ định cho lệnh gọi lại. Bạn nên dùng con trỏ này để hủy đăng ký nhóm sự kiện.

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

Thông tin chi tiết
Các 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
Trỏ tới event_id_t; khi đăng ký thành công các sự kiện bên ngoài, hàm 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ố có thể là NULL.
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có sẵn vùng quảng cáo gọi lại nào.
WEAVE_ERROR_INVALID_ARGUMENT
Trống hàm gọi lại hoặc không có sự kiện nào để đăng ký.
WEAVE_NO_ERROR
Thành công!

ScheduleFlushNếu cần

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Lên lịch một nhiệm vụ giảm tải nhật ký.

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

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

một yêu cầu rõ ràng để xóa bộ đệm

trạng thái của bộ đệm sự kiện và lượng dữ liệu chưa được đồng bộ hóa với người dùng sự kiện

liệu có sự kiện yêu cầu xóa đang chờ xử lý nào hay không.

Yêu cầu rõ ràng để lên lịch lần xả được chuyển qua một thông số đầu vào.

Sự kiện xả tự động thường được lên lịch khi bộ đệm sự kiện chứa đủ dữ liệu để bắt đầu quá trình giảm tải mới. Các trình kích hoạt bổ sung như thời gian tối thiểu và tối đa giữa các lần tải cũng có thể được tính đến tùy 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 nhiều chuỗi gọi, nên mUploadRequested phải được đọc và đặt theo kiểu nguyên tử, để tránh lên lịch thừa LoggingFlushHandler trước khi gửi thông báo.

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

Sự kiện nối tiếp

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Trình tự các sự kiện Weave thuộc tất cả các loại quan trọng.

Trình tự các sự kiện trong WeaveCirularTLVBuffer và các trạng thái liên kết vào bộ đệm được cung cấp.

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

Trình tải lên tập dữ liệu âm thanh

void SetBDXUploader(
  LogBDXUpload *inUploader
)

Đặt AdManager

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

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

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

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

Đặt Nhật ký kết thúc

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

Sự kiện bỏ qua

void SkipEvent(
  EventLoadOutContext *aContext
)

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

Thông tin chi tiết
Các thông số
[in,out] aContext
EventLoadOutContext, được khởi tạo bằng thông tin trạng thái cho bộ đệm. State được cập nhật và lưu giữ bởi BlitEvent bằng cách sử dụng ngữ cảnh này.

Máy ghi âm

void ThrottleLogger(
  void
)

ThrottleLogger nâng mức ghi nhật ký hiệu quả lên mức Sản xuất.

Hủy đăng ký sự kiện gọi lại

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

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

Việc hủy đăng ký lệnh gọi lại sẽ ngăn LoggingManagement gọi lệnh gọi lại cho một tập hợp sự kiện. Tính năng Quản lý nhật ký sẽ không 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 cần đăng ký một nhóm sự kiện mới bằng cùng một hàm, trước tiên, bạn phải hủy đăng ký lệnh gọi lại, sau đó, đăng ký lại. Điều này có nghĩa là bạn sẽ 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 bao giờ được đăng ký hoặc đã bị hủy đăng ký, thì lệnh gọi lại sẽ không hoạt động.

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

Người điều tiết

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

Quản lý tạo nhật ký

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

Tạo đối tượng Nhật ký quản lý và khởi tạo hệ thống phụ quản lý nhật ký với các tài nguyên được cung cấp.

Khởi tạo LoggingManagement với một mảng LogStorageResources. Mảng phải cung cấp tài nguyên cho mỗi mức độ quan trọng hợp lệ, các phần tử của mảng phải tăng giá trị bằng số quan trọng (và giảm dần mức độ quan trọng); phần tử đầu tiên trong mảng tương ứng với các 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
Các thông số
[in] inMgr
WeaveExchangeManager sẽ được dùng với hệ thống ghi nhật ký này
[in] inNumBuffers
Số phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho mỗi mức độ quan trọng.

Quản lý hủy bỏ nhật ký

void DestroyLoggingManagement(
  void
)

Thực hiện mọi hành động mà chúng tôi cần tắt.

Nhận thực thể

LoggingManagement & GetInstance(
  void
)