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à hàm phá

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 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 truy xuất sự kiện có tầm quan trọng đã chỉ định kể từ mã sự kiện đã chỉ định.
GetBytesWritten(void) const
uint32_t
Nhận tổng số byte đã ghi (tính theo tất cả mức độ 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)
Một phương pháp trợ giúp hữu ích cho việc 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 đượ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 cung cấp gần đây nhất theo một mức độ quan trọng cụ thể.
IsShutdownInProgress(void)
bool
Kiểm tra cờ mShutdownInProgress.
IsValid(void)
bool
IsValid sẽ trả về kết quả cho biết 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 lựa 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)
Chuyển đổi tuần tự các sự kiện Weave thuộc mọi loại mức độ quan trọng.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Thiết lập để WeaveExchangeManager được 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 thao tá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 độ Sản xuất.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
API công khai để huỷ đăng ký một nhóm các 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 chạy 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 hành động chúng tôi cần khi tắt tính năng nà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
Các tham số
[in,out] aContext
EventLoadOutContext, được khởi tạo bằng thông tin trạng thái của vùng đệm. Trạng thái được BlitEvent cập nhật và lưu giữ bằng bối 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 để 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 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 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 điều khiển 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 một Thông báo WDM được gửi, thì hàm này 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 nên đượ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 truy xuất sự kiện có tầm quan trọng đã chỉ định kể từ mã sự kiện đã chỉ định.

Với nl::Weave::TLV::TLVWriter, một loại mức độ quan trọng và 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 ghi sự kiện trên ranh giới sự kiện.

Thông tin chi tiết
Các tham số
[in] ioWriter
Người ghi cần sử dụng để lưu trữ sự kiện
[in] inImportance
Tầm quan trọng của các sự kiện cần được tìm nạp
[in,out] ioEventID
Khi nhập, mã nhận dạng của 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 này đã dùng hết 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 

Nhận tổng số byte đã ghi (tính theo tất cả mức độ 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
)

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

Thông tin chi tiết
Các tham số
[in,out] ioReader
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 khởi đầu đối với độc giả. Lưu ý rằng trong trường hợp này, tầm quan trọng bắt đầu có phần khác biệt trực quan: các sự kiện quan trọng hơn sẽ chia sẻ 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. Do đó, trình đọc sẽ truyền ít dữ liệu nhất khi truyền tầm quan trọng của Gỡ lỗi.
Trả về
WEAVE_NO_ERROR Không có điều kiện.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

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

Thông tin chi tiết
Các tham 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 tầm 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 cung cấp gần đây nhất theo một mức độ quan trọng cụ thể.

Thông tin chi tiết
Các tham số
inImportance
Mức độ quan trọng
Trả về
event_id_t đã được cung cấp 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 sẽ trả về kết quả cho biết 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 chạy 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 lựa 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 bằng tệp tham chiếu nl::Weave::TLV::TLVWriter và ngữ cảnh inAppData để mã người dùng có thể phát 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ảm thiểu mức tiêu thụ 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 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ị loại bỏ và hàm trả về 0 dưới dạng mã nhận dạng sự kiện kết quả.

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ị 0 mặc định là thời gian hiện tại tại thời điểm diễn ra cuộc gọi,
  • phần "gốc" của nguồn sự kiện (nguồn sự kiện và ID trait); nếu là NULL thì giá trị mặc định sẽ là 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ã 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.
  • tính cấp bách; theo mặc định là không khẩn cấp.

Thông tin chi tiết
Các tham 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 để 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 tuỳ 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ì giá trị là 0.

LoggingManagement

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

Hàm khởi tạo LoggingManagement.

Khởi động 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ị dạng số tăng dần (và theo 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 những 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 tham số
[in] inMgr
WeaveExchangeManager sẽ được sử dụng với hệ thống phụ ghi nhật ký này
[in] inNumBuffers
Số lượng phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho từng mức độ 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 cho trình biên dịch hài lòng.

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 điều này ngăn nền tảng lưu trữ sự kiện lâu dài (ít nhất là với mã sự kiện duy nhất).

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

Bạn nên sử dụng biến thể này của hàm khi nhà cung cấp bên ngoài muốn nhận thông báo cả khi sự kiện đã được phân phối tới 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 phân phối, nhà cung cấp bên ngoài sẽ được thông báo về điều đó cùng với mã nhận dạng 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 về 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ý các 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 vùng đệm nhật ký, thì 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ự kiện bên ngoài) sẽ có giá trị là NULL nếu không thành công. Nếu không, con trỏ sẽ được điền sẵ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. Con trỏ này phải được dùng để huỷ đăng ký tập hợp các sự kiện.

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

Thông tin chi tiết
Các tham 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 phân phối
[in] inEvictedCallback
Lệnh gọi lại để đăng ký nhận thông báo chuyển nhượng
[in] inNumEvents
Số lượng sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến 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ó thêm thời điểm gọi lại nào.
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 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 ngăn nền tảng lưu trữ sự kiện lâu dài (ít nhất là với mã sự kiện duy nhất).

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

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

Con trỏ đến cấu trúc ExternalEvents (Sự kiện bên ngoài) sẽ có giá trị là NULL nếu không thành công. Nếu không, con trỏ sẽ được điền sẵ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. Con trỏ này phải được dùng để huỷ đăng ký tập hợp các sự kiện.

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

Thông tin chi tiết
Các tham 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 phân phối
[in] inNumEvents
Số lượng sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến 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ó thêm thời điểm gọi lại nào.
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 ngăn nền tảng lưu trữ sự kiện lâu dài (ít nhất là với mã sự kiện duy nhất).

Lệnh gọi lại sẽ được gọi mỗi khi người đăng ký cố gắng tìm nạp mã sự kiện trong phạm vi bất kỳ số lần cho đến khi người đăng ký 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, dù sự kiện bên ngoài đã được phân phối hay khi đối tượng sự kiện bên ngoài bị loại.

Con trỏ đến cấu trúc ExternalEvents (Sự kiện bên ngoài) sẽ có giá trị là NULL nếu không thành công. Nếu không, con trỏ sẽ được điền sẵ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. Con trỏ này phải được dùng để huỷ đăng ký tập hợp các sự kiện.

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

Thông tin chi tiết
Các tham 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ố lượng sự kiện trong nhóm này
[out] outLastEventID
Con trỏ đến 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ó thêm thời điểm gọi lại nào.
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 sẽ 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 để chạy không đồng bộ LoggingFlushHandler trên luồng Weave.

Quyết định lên lịch đẩy dữ liệu phụ thuộc vào ba 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

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

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

Quá trình tự động xả dữ liệu thường được lên lịch khi các 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. Ngoài ra, chúng tôi cũng có thể tính đến các điều kiện kích hoạt bổ sung như thời gian tối thiểu và tối đa giữa các lần giảm tải, tuỳ thuộc vào chiến lược giảm tải.

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

Thông tin chi tiết
Các tham số
inRequestFlush
Một giá trị boolean cho biết liệu quá trình xả có nên được lên lịch 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 đầy đủ.
WEAVE_NO_ERROR
Khi thành công.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Chuyển đổi tuần tự các sự kiện Weave thuộc mọi loại mức độ quan trọng.

Chuyển đổi tuần tự 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 các thiết bị duy trì sự kiện trước khi ngủ và do đó ngăn chặn việc mất sự kiện

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Thiết lập để WeaveExchangeManager được dùng với hệ thống phụ ghi nhật ký này.

Trên một số nền tảng, thao tác này có thể cần thực hiện riêng biệt với CreateLoggingManagement() ở trên.

Thông tin chi tiết
Các tham số
[in] inMgr
WeaveExchangeManager sẽ đượ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 thao tá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
Các tham số
[in,out] aContext
EventLoadOutContext, được khởi tạo bằng thông tin trạng thái của vùng đệm. Trạng thái được BlitEvent cập nhật và lưu giữ bằng 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 độ Sản xuất.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

API công khai để huỷ đăng ký một nhóm các 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 cần đăng ký một tập hợp sự kiện mới bằng cùng một hàm, thì trước tiên, bạn phải huỷ đăng ký lệnh gọi lại rồi đăng ký lại. Điều này có nghĩa là Google 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 từng được đăng ký hoặc đã bị huỷ đăng ký, thì lệnh gọi lại đó không hoạt động.

Thông tin chi tiết
Các tham số
[in] inImportance
Mức độ quan trọng
[in] inEventID
Mã sự kiện tương ứng với mọi sự kiện 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 chạy hệ thống con quản lý nhật ký bằng các tài nguyên được cung cấp.

Khởi động 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ị dạng số tăng dần (và theo 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 những 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 tham số
[in] inMgr
WeaveExchangeManager sẽ được sử dụng với hệ thống phụ ghi nhật ký này
[in] inNumBuffers
Số lượng phần tử trong mảng inLogStorageResources
[in] inLogStorageResources
Một mảng LogStorageResources cho từng mức độ quan trọng.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

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

GetInstance

LoggingManagement & GetInstance(
  void
)