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

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

Class untuk mengelola log aktivitas dalam memori.

Ringkasan

Konstruktor dan Destruktor

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement(void)
LoggingManagement yang lain.

Fungsi publik

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Fungsi bantuan untuk menulis header dan data peristiwa sesuai dengan protokol logging peristiwa.
CancelShutdownInProgress(void)
void
Setel tanda mShutdownInProgress ke salah.
CheckShouldRunWDM(void)
bool
Tentukan apakah akan mengalihkan peristiwa berdasarkan jumlah byte di buffer peristiwa yang tidak dijadwalkan untuk diupload.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Fungsi untuk mengambil peristiwa yang memiliki kepentingan yang ditentukan sejak ID peristiwa yang ditentukan.
GetBytesWritten(void) const
uint32_t
Mendapatkan total jumlah byte yang ditulis (di semua tingkat kepentingan peristiwa) ke log ini sejak pembuatannya.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Metode bantuan yang berguna untuk memeriksa buffer log dalam memori.
GetFirstEventID(ImportanceType inImportance)
Ambil ID acara pertama yang saat ini disimpan untuk tingkat kepentingan tertentu.
GetLastEventID(ImportanceType inImportance)
Ambil ID terbaru yang dijual untuk tingkat kepentingan tertentu.
IsShutdownInProgress(void)
bool
Periksa tanda mShutdownInProgress.
IsValid(void)
bool
IsValid menampilkan apakah instance LoggingManagement valid.
LoadEvents(TLVReader & reader)
Memuat peristiwa Weave yang dipertahankan sebelumnya.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Catat peristiwa melalui callback, dengan opsi.
MarkShutdownInProgress(void)
void
Setel tanda mShutdownInProgress ke 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 publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
API publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
API publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.
ScheduleFlushIfNeeded(bool inFlushRequested)
Jadwalkan tugas pengurangan beban log.
SerializeEvents(TLVWriter & writer)
Membuat serialisasi peristiwa Weave dari semua jenis tingkat kepentingan.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Tetapkan WeaveExchangeManager untuk digunakan dengan subsistem logging ini.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Fungsi bantuan untuk melewati penulisan peristiwa yang sesuai dengan ID peristiwa yang dialokasikan.
ThrottleLogger(void)
void
ThrottleLogger meningkatkan level logging efektif ke tingkat Produksi.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
API publik untuk membatalkan pendaftaran rangkaian acara yang disimpan secara eksternal.
UnthrottleLogger(void)
void
UnthrottleLogger memulihkan level logging efektif ke level logging yang dikonfigurasi.

Fungsi statis publik

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
Buat objek LoggingManagement dan lakukan inisialisasi subsistem pengelolaan logging dengan resource yang disediakan.
DestroyLoggingManagement(void)
void
Lakukan tindakan apa pun yang perlu dilakukan saat mematikan.
GetInstance(void)

Fungsi publik

BlitEvent

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

Fungsi bantuan untuk menulis header dan data peristiwa sesuai dengan protokol logging peristiwa.

Detail
Parameter
[in,out] aContext
EventLoadOutContext, yang diinisialisasi dengan informasi stateful untuk buffer. Status diperbarui dan dipertahankan oleh BlitEvent menggunakan konteks ini.
[in] inSchema
Skema yang menentukan tingkat kepentingan, ID profil, dan jenis struktur peristiwa ini.
[in] inEventWriter
Callback yang akan dipanggil untuk membuat serialisasi data peristiwa.
[in] inAppData
Konteks aplikasi untuk callback.
[in] inOptions
EventOptions yang menjelaskan stempel waktu dan tag lainnya yang relevan dengan peristiwa ini.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

Setel tanda mShutdownInProgress ke salah.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Tentukan apakah akan mengalihkan peristiwa berdasarkan jumlah byte di buffer peristiwa yang tidak dijadwalkan untuk diupload.

Perilaku fungsi dikontrol melalui konstanta WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD. Jika sistem menulis lebih dari jumlah byte itu sejak terakhir kali Notifikasi WDM dikirim, fungsi akan menunjukkan sudah saatnya memicu NotificationEngine.

Detail
Nilai yang Ditampilkan
true
Peristiwa harus dialihkan
false
Atau

FetchEventsSince

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

Fungsi untuk mengambil peristiwa yang memiliki kepentingan yang ditentukan sejak ID peristiwa yang ditentukan.

Dengan mempertimbangkan nl::Weave::TLV::TLVWriter, jenis tingkat kepentingan, dan ID peristiwa, fungsi tersebut akan mengambil peristiwa yang memiliki kepentingan yang ditentukan sejak peristiwa yang ditentukan. Fungsi ini akan terus mengambil peristiwa hingga kehabisan ruang di nl::Weave::TLV::TLVWriter atau di log. Fungsi ini akan menghentikan penulisan peristiwa pada batas peristiwa.

Detail
Parameter
[in] ioWriter
Penulis yang akan digunakan untuk penyimpanan peristiwa
[in] inImportance
Pentingnya peristiwa untuk diambil
[in,out] ioEventID
Saat dimasukkan, ID peristiwa tepat sebelum ID yang kita ambil. Setelah selesai, ID peristiwa terakhir diambil.
Nilai yang Ditampilkan
WEAVE_END_OF_TLV
Fungsi telah mencapai akhir entri log yang tersedia pada tingkat kepentingan yang ditentukan
WEAVE_ERROR_NO_MEMORY
Fungsi kehabisan ruang di ioWriter, lebih banyak peristiwa di log yang tersedia.
WEAVE_ERROR_BUFFER_TOO_SMALL
Fungsi kehabisan ruang di ioWriter, lebih banyak peristiwa di log yang tersedia.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Mendapatkan total jumlah byte yang ditulis (di semua tingkat kepentingan peristiwa) ke log ini sejak pembuatannya.

Detail
Hasil
Jumlah byte yang ditulis ke log.

GetEventReader

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

Metode bantuan yang berguna untuk memeriksa buffer log dalam memori.

Detail
Parameter
[in,out] ioReader
Referensi ke pembaca yang akan diinisialisasi dengan penyimpanan pendukung dari log peristiwa
[in] inImportance
Pentingnya awal bagi pembaca. Perhatikan bahwa dalam kasus ini, tingkat kepentingan awal agak kontra intuitif: peristiwa yang lebih penting berbagi buffer dengan peristiwa yang kurang penting, selain buffer khusus. Akibatnya, pembaca akan melewati data yang paling sedikit saat nilai penting Debug diteruskan.
Hasil
WEAVE_NO_ERROR Tanpa syarat.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Ambil ID acara pertama yang saat ini disimpan untuk tingkat kepentingan tertentu.

Detail
Parameter
inImportance
Tingkat kepentingan
Hasil
event_id_t ID peristiwa pertama yang saat ini disimpan untuk tingkat kepentingan peristiwa tersebut

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Ambil ID terbaru yang dijual untuk tingkat kepentingan tertentu.

Detail
Parameter
inImportance
Tingkat kepentingan
Hasil
event_id_t yang baru-baru ini menjual ID peristiwa untuk tingkat kepentingan peristiwa tersebut

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

Periksa tanda mShutdownInProgress.

IsValid

bool IsValid(
  void
)

IsValid menampilkan apakah instance LoggingManagement valid.

Detail
Nilai yang Ditampilkan
true
Instance valid (diinisialisasi dengan backing store yang sesuai)
false
Atau

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Memuat peristiwa Weave yang dipertahankan sebelumnya.

LogEvent

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

Catat peristiwa melalui callback, dengan opsi.

Fungsi ini mencatat peristiwa yang direpresentasikan sebagai EventWriterFunct ke dalam log dan konteks appData khusus aplikasi. Fungsi tersebut menulis metadata peristiwa dan memanggil inEventWriter dengan referensi nl::Weave::TLV::TLVWriter dan konteks inAppData sehingga kode pengguna dapat memunculkan data peristiwa langsung ke log peristiwa. Bentuk logging peristiwa ini meminimalkan konsumsi memori karena data peristiwa diserialisasi langsung ke buffer target. Data peristiwa HARUS berisi tag konteks yang akan ditafsirkan dalam skema yang diidentifikasi oleh inProfileID dan inEventType. Tag elemen pertama akan diabaikan; sistem logging peristiwa akan menggantinya dengan tag eventData.

Peristiwa ini akan dicatat jika tingkat kepentingan skema melebihi batas logging yang ditentukan dalam LoggingConfiguration. Jika nilai penting peristiwa tidak memenuhi nilai minimum saat ini, peristiwa tersebut akan dihapus dan fungsi akan menampilkan 0 sebagai ID peristiwa yang dihasilkan.

Varian pemanggilan ini memungkinkan pemanggil menetapkan kombinasi apa pun dari EventOptions:

  • stempel waktu, ketika 0 secara {i>default<i} ke waktu saat ini pada titik panggilan,
  • "akar" bagian sumber peristiwa (sumber peristiwa dan ID trait); jika NULL, defaultnya adalah perangkat saat ini. peristiwa ditandai sebagai berkaitan dengan perangkat yang melakukan panggilan,
  • ID peristiwa terkait untuk mengelompokkan ID peristiwa; jika ID peristiwa terkait adalah 0, peristiwa ditandai sebagai tidak terkait dengan peristiwa lainnya,
  • urgensi; secara default tidak mendesak.

Detail
Parameter
[in] inSchema
Skema yang menentukan tingkat kepentingan, ID profil, dan jenis struktur peristiwa ini.
[in] inEventWriter
Callback yang akan dipanggil untuk benar-benar melakukan serialisasi data peristiwa
[in] inAppData
Konteks aplikasi untuk callback.
[in] inOptions
Opsi untuk metadata peristiwa. Mungkin NULL.
Hasil
event_id_t ID peristiwa jika peristiwa ditulis ke log, 0 jika tidak.

LoggingManagement

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

LoggingManagement.

Lakukan inisialisasi LoggingManagement dengan array LogStorageResources. Array harus menyediakan sumber daya untuk setiap tingkat urgensi yang valid, elemen himpunan harus dalam peningkatan nilai numerik penting (dan dengan penurunan nilai penting); elemen pertama dalam array sesuai dengan sumber daya yang dialokasikan untuk peristiwa paling penting, dan elemen terakhir sesuai dengan peristiwa yang paling tidak penting.

Detail
Parameter
[in] inMgr
WeaveExchangeManager untuk digunakan dengan subsistem logging ini
[in] inNumBuffers
Jumlah elemen dalam array inLogStorageResources
[in] inLogStorageResources
Array LogStorageResources untuk setiap tingkat kepentingan.

LoggingManagement

 LoggingManagement(
  void
)

LoggingManagement yang lain.

Disediakan terutama untuk membuat compiler senang.

Detail
Hasil

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

Setel tanda mShutdownInProgress ke 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 publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.

Daftarkan callback berupa FetchExternalEventsFunct. API ini mengharuskan platform mengetahui jumlah peristiwa pada pendaftaran. Pekerjaan internal juga mengharuskan angka ini konstan. Karena API ini tidak mengizinkan platform mendaftarkan ID peristiwa tertentu, hal ini mencegah platform untuk mempertahankan penyimpanan peristiwa (setidaknya dengan ID peristiwa unik).

Callback akan dipanggil setiap kali pelanggan mencoba mengambil ID peristiwa dalam rentang hingga beberapa kali hingga ID peristiwa dibatalkan pendaftarannya.

Varian fungsi ini harus digunakan saat penyedia eksternal ingin diberi tahu saat peristiwa telah dikirim ke pelanggan dan jika objek peristiwa eksternal dikeluarkan.

Saat peristiwa dikirim, penyedia eksternal akan diberi tahu tentang hal tersebut bersama dengan ID node penerima dan ID peristiwa terakhir yang dikirim ke penerima tersebut. Perhatikan bahwa penyedia eksternal mungkin diberi tahu beberapa kali untuk ID peristiwa yang sama. Tidak ada batasan khusus pada pengendali, khususnya, pengendali dapat membatalkan pendaftaran ID peristiwa eksternal.

Jika objek peristiwa eksternal dikeluarkan dari buffer log, penyedia eksternal akan diberi tahu bersama dengan salinan objek peristiwa eksternal.

Pointer ke struct ExternalEvents akan menjadi NULL jika gagal, jika tidak, akan diisi dengan ID peristiwa awal dan akhir yang ditetapkan ke callback. Pointer ini harus digunakan untuk membatalkan pendaftaran rangkaian peristiwa.

Lihat dokumentasi untuk FetchExternalEventsFunct untuk detail tentang apa yang harus diterapkan oleh callback.

Detail
Parameter
[in] inImportance
Tingkat kepentingan
[in] inFetchCallback
Callback untuk mendaftar guna mengambil peristiwa eksternal
[in] inNotifyCallback
Callback untuk mendaftarkan notifikasi pengiriman
[in] inEvictedCallback
Callback untuk mendaftar notifikasi penghapusan
[in] inNumEvents
Jumlah peristiwa dalam kumpulan ini
[out] outLastEventID
Pointer event_id_t; setelah pendaftaran peristiwa eksternal berhasil, fungsi akan menyimpan ID peristiwa yang sesuai dengan ID peristiwa terakhir dari blok peristiwa eksternal. Parameternya mungkin NULL.
Nilai yang Ditampilkan
WEAVE_ERROR_NO_MEMORY
Jika tidak ada lagi slot callback yang tersedia.
WEAVE_ERROR_INVALID_ARGUMENT
Callback fungsi null atau tidak ada peristiwa untuk didaftarkan.
WEAVE_NO_ERROR
Berhasil.

RegisterEventCallbackForImportance

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

API publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.

Daftarkan callback berupa FetchExternalEventsFunct. API ini mengharuskan platform mengetahui jumlah peristiwa pada pendaftaran. Pekerjaan internal juga mengharuskan angka ini konstan. Karena API ini tidak mengizinkan platform mendaftarkan ID peristiwa tertentu, hal ini mencegah platform untuk mempertahankan penyimpanan peristiwa (setidaknya dengan ID peristiwa unik).

Callback akan dipanggil setiap kali pelanggan mencoba mengambil ID peristiwa dalam rentang hingga beberapa kali hingga ID peristiwa dibatalkan pendaftarannya.

Varian fungsi ini harus digunakan saat penyedia eksternal ingin diberi tahu saat peristiwa telah dikirimkan ke pelanggan, tetapi tidak saat objek peristiwa eksternal dikeluarkan. Saat peristiwa dikirim, penyedia eksternal akan diberi tahu tentang hal tersebut bersama dengan ID node penerima dan ID peristiwa terakhir yang dikirim ke penerima tersebut. Perhatikan bahwa penyedia eksternal mungkin diberi tahu beberapa kali untuk ID peristiwa yang sama. Tidak ada batasan khusus pada pengendali, khususnya, pengendali dapat membatalkan pendaftaran ID peristiwa eksternal.

Pointer ke struct ExternalEvents akan menjadi NULL jika gagal, jika tidak, akan diisi dengan ID peristiwa awal dan akhir yang ditetapkan ke callback. Pointer ini harus digunakan untuk membatalkan pendaftaran rangkaian peristiwa.

Lihat dokumentasi untuk FetchExternalEventsFunct untuk detail tentang apa yang harus diterapkan oleh callback.

Detail
Parameter
[in] inImportance
Tingkat kepentingan
[in] inCallback
Callback untuk mendaftar guna mengambil peristiwa eksternal
[in] inNotifyCallback
Callback untuk mendaftarkan notifikasi pengiriman
[in] inNumEvents
Jumlah peristiwa dalam kumpulan ini
[out] outLastEventID
Pointer event_id_t; setelah pendaftaran peristiwa eksternal berhasil, fungsi akan menyimpan ID peristiwa yang sesuai dengan ID peristiwa terakhir dari blok peristiwa eksternal. Parameternya mungkin NULL.
Nilai yang Ditampilkan
WEAVE_ERROR_NO_MEMORY
Jika tidak ada lagi slot callback yang tersedia.
WEAVE_ERROR_INVALID_ARGUMENT
Callback fungsi null atau tidak ada peristiwa untuk didaftarkan.
WEAVE_NO_ERROR
Berhasil.

RegisterEventCallbackForImportance

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

API publik untuk mendaftarkan rangkaian acara yang disimpan secara eksternal.

Daftarkan callback berupa FetchExternalEventsFunct. API ini mengharuskan platform mengetahui jumlah peristiwa pada pendaftaran. Pekerjaan internal juga mengharuskan angka ini konstan. Karena API ini tidak mengizinkan platform mendaftarkan ID peristiwa tertentu, hal ini mencegah platform untuk mempertahankan penyimpanan peristiwa (setidaknya dengan ID peristiwa unik).

Callback akan dipanggil setiap kali pelanggan mencoba mengambil ID peristiwa dalam rentang hingga beberapa kali hingga ID peristiwa dibatalkan pendaftarannya.

Varian fungsi ini harus digunakan saat penyedia eksternal menginginkan notifikasi baik saat peristiwa eksternal telah dikirim maupun saat objek peristiwa eksternal dikeluarkan.

Pointer ke struct ExternalEvents akan menjadi NULL jika gagal, jika tidak, akan diisi dengan ID peristiwa awal dan akhir yang ditetapkan ke callback. Pointer ini harus digunakan untuk membatalkan pendaftaran rangkaian peristiwa.

Lihat dokumentasi untuk FetchExternalEventsFunct untuk detail tentang apa yang harus diterapkan oleh callback.

Detail
Parameter
[in] inImportance
Tingkat kepentingan
[in] inCallback
Callback untuk mendaftar guna mengambil peristiwa eksternal
[in] inNumEvents
Jumlah peristiwa dalam kumpulan ini
[out] outLastEventID
Pointer event_id_t; setelah pendaftaran peristiwa eksternal berhasil, fungsi akan menyimpan ID peristiwa yang sesuai dengan ID peristiwa terakhir dari blok peristiwa eksternal. Parameternya mungkin NULL.
Nilai yang Ditampilkan
WEAVE_ERROR_NO_MEMORY
Jika tidak ada lagi slot callback yang tersedia.
WEAVE_ERROR_INVALID_ARGUMENT
Callback fungsi null atau tidak ada peristiwa untuk didaftarkan.
WEAVE_NO_ERROR
Berhasil.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Jadwalkan tugas pengurangan beban log.

Fungsi ini memutuskan apakah akan menjadwalkan proses pengurangan beban tugas, dan jika ya, fungsi ini menjadwalkan LoggingFlushHandler agar dijalankan secara asinkron di thread Weave.

Keputusan untuk menjadwalkan pengosongan bergantung pada tiga faktor:

permintaan eksplisit untuk membersihkan buffer

status buffer peristiwa dan jumlah data yang belum disinkronkan dengan konsumen peristiwa

apakah ada peristiwa permintaan penghapusan permintaan yang sudah tertunda.

Permintaan eksplisit untuk menjadwalkan pengosongan diteruskan melalui parameter input.

Pengosongan otomatis biasanya dijadwalkan saat buffer peristiwa berisi cukup data untuk memulai penghilangan beban baru. Pemicu tambahan seperti waktu minimum dan maksimum antar-offload juga dapat diperhitungkan, bergantung pada strategi pemindahan.

Status tertunda log aktivitas ditunjukkan oleh variabel mUploadRequested. Karena fungsi ini dapat dipanggil oleh beberapa thread, mUploadRequested harus dibaca dan disetel secara atomik, untuk menghindari penjadwalan LoggingFlushHandler yang berlebihan sebelum notifikasi dikirim.

Detail
Parameter
inRequestFlush
Nilai boolean yang menunjukkan apakah proses pengosongan harus dijadwalkan, terlepas dari kebijakan pengelolaan buffer internal.
Nilai yang Ditampilkan
WEAVE_ERROR_INCORRECT_STATE
Modul LoggingManagement tidak diinisialisasi sepenuhnya.
WEAVE_NO_ERROR
Berhasil.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Membuat serialisasi peristiwa Weave dari semua jenis tingkat kepentingan.

Menserialisasikan peristiwa di WeaveCircularTLVBuffer dan status terkait ke dalam buffer yang disediakan.

Metode ini dimaksudkan untuk digunakan oleh perangkat yang tidak menyimpan RAM saat tidur, yang memungkinkannya mempertahankan peristiwa sebelum tidur sehingga mencegah hilangnya peristiwa

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

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

Tetapkan WeaveExchangeManager untuk digunakan dengan subsistem logging ini.

Di beberapa platform, hal ini mungkin perlu dilakukan secara terpisah dari CreateLoggingManagement() di atas.

Detail
Parameter
[in] inMgr
WeaveExchangeManager untuk digunakan dengan subsistem logging ini

SetLoggingEndpoint

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

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Fungsi bantuan untuk melewati penulisan peristiwa yang sesuai dengan ID peristiwa yang dialokasikan.

Detail
Parameter
[in,out] aContext
EventLoadOutContext, yang diinisialisasi dengan informasi stateful untuk buffer. Status diperbarui dan dipertahankan oleh BlitEvent menggunakan konteks ini.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger meningkatkan level logging efektif ke tingkat Produksi.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

API publik untuk membatalkan pendaftaran rangkaian acara yang disimpan secara eksternal.

Membatalkan pendaftaran callback akan mencegah LoggingManagement memanggil callback untuk sekumpulan peristiwa. LoggingManagement tidak akan lagi mengirimkan ID peristiwa tersebut kepada pelanggan.

Intent-nya adalah agar satu fungsi menyalurkan serangkaian peristiwa pada satu waktu. Jika kumpulan peristiwa baru perlu didaftarkan menggunakan fungsi yang sama, callback harus dibatalkan pendaftarannya terlebih dahulu, lalu didaftarkan lagi. Artinya, kumpulan peristiwa asli tidak dapat diambil lagi.

Fungsi ini berhasil tanpa syarat. Jika callback tidak pernah terdaftar atau sudah dibatalkan pendaftarannya, berarti callback tidak dioperasikan.

Detail
Parameter
[in] inImportance
Tingkat kepentingan
[in] inEventID
ID peristiwa yang sesuai dengan peristiwa di blok peristiwa eksternal yang akan dibatalkan pendaftarannya.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger memulihkan level logging efektif ke level logging yang dikonfigurasi.

Fungsi statis publik

CreateLoggingManagement

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

Buat objek LoggingManagement dan lakukan inisialisasi subsistem pengelolaan logging dengan resource yang disediakan.

Lakukan inisialisasi LoggingManagement dengan array LogStorageResources. Array harus menyediakan sumber daya untuk setiap tingkat urgensi yang valid, elemen himpunan harus dalam peningkatan nilai numerik dari kepentingan (dan dalam mengurangi tingkat kepentingan); elemen pertama dalam array sesuai dengan sumber daya yang dialokasikan untuk peristiwa paling penting, dan elemen terakhir sesuai dengan peristiwa yang paling tidak penting.

Detail
Parameter
[in] inMgr
WeaveExchangeManager untuk digunakan dengan subsistem logging ini
[in] inNumBuffers
Jumlah elemen dalam array inLogStorageResources
[in] inLogStorageResources
Array LogStorageResources untuk setiap tingkat kepentingan.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Lakukan tindakan apa pun yang perlu dilakukan saat mematikan.

GetInstance

LoggingManagement & GetInstance(
  void
)