nl:: Weave:: Profiles:: DataManagement_Current:: LoggingManagement
#include <src/lib/profiles/data-management/Current/LoggingManagement.h>
คลาสสำหรับจัดการบันทึกเหตุการณ์ในหน่วยความจำ
สรุป
ผู้ผลิตและผู้ทำลาย |
|
---|---|
LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
เครื่องมือสร้าง LoggingManagement
|
|
LoggingManagement(void)
ตัวสร้างเริ่มต้น LoggingManagement
|
ฟังก์ชันสาธารณะ |
|
---|---|
BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
ฟังก์ชันตัวช่วยสำหรับการเขียนส่วนหัวและข้อมูลของเหตุการณ์ตามโปรโตคอลการบันทึกเหตุการณ์
|
CancelShutdownInProgress(void)
|
void
ตั้งค่าสถานะ mShutdownInProgress เป็น "เท็จ"
|
CheckShouldRunWDM(void)
|
bool
เลือกว่าจะลดภาระงานเหตุการณ์โดยอิงตามจำนวนไบต์ในบัฟเฟอร์เหตุการณ์ที่ไม่ได้ตั้งเวลาสำหรับการอัปโหลดหรือไม่
|
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
|
ฟังก์ชันสำหรับเรียกข้อมูลเหตุการณ์ที่มีความสำคัญที่ระบุตั้งแต่รหัสเหตุการณ์ที่ระบุ
|
GetBytesWritten(void) const
|
uint32_t
รับจำนวนไบต์ทั้งหมดที่เขียน (สำหรับความสำคัญของเหตุการณ์ทั้งหมด) มายังบันทึกนี้นับตั้งแต่การเริ่มต้น
|
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
|
วิธีตัวช่วยที่เป็นประโยชน์สำหรับการตรวจสอบบัฟเฟอร์บันทึกในหน่วยความจำ
|
GetFirstEventID(ImportanceType inImportance)
|
ดึงข้อมูลรหัสเหตุการณ์แรกที่จัดเก็บไว้สำหรับระดับความสำคัญหนึ่งๆ ในปัจจุบัน
|
GetLastEventID(ImportanceType inImportance)
|
ดึงข้อมูลรหัสที่ใช้ล่าสุดสำหรับระดับความสำคัญหนึ่งๆ
|
IsShutdownInProgress(void)
|
bool
ตรวจสอบแฟล็ก mShutdownInProgress
|
IsValid(void)
|
bool
IsValid แสดงผลว่าอินสแตนซ์ LoggingManagement ใช้งานได้หรือไม่
|
LoadEvents(TLVReader & reader)
|
โหลดเหตุการณ์ Weave ที่บันทึกไว้ก่อนหน้านี้
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
บันทึกเหตุการณ์ผ่าน Callback พร้อมตัวเลือก
|
MarkShutdownInProgress(void)
|
void
ตั้งค่าสถานะ mShutdownInProgress เป็น "จริง"
|
NotifyEventsDelivered(ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
|
void
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
|
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
|
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
|
ScheduleFlushIfNeeded(bool inFlushRequested)
|
กําหนดเวลางานยกเลิกการโหลดบันทึก
|
SerializeEvents(TLVWriter & writer)
|
ทำให้เหตุการณ์ Weave เป็นอนุกรมของประเภทความสำคัญทั้งหมด
|
SetBDXUploader(LogBDXUpload *inUploader)
|
void
|
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
|
ตั้งค่า WeaveExchangeManager เพื่อใช้กับระบบย่อยของการบันทึกนี้
|
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
|
|
SkipEvent(EventLoadOutContext *aContext)
|
void
ฟังก์ชันตัวช่วยในการข้ามการเขียนเหตุการณ์ที่สอดคล้องกับรหัสเหตุการณ์ที่จัดสรรไว้
|
ThrottleLogger(void)
|
void
ThrottleLogger จะยกระดับการบันทึกที่มีประสิทธิภาพเป็นระดับการผลิต
|
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
|
void
API สาธารณะสำหรับการยกเลิกการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
|
UnthrottleLogger(void)
|
void
UnthrottleLogger จะคืนค่าระดับการบันทึกที่มีประสิทธิภาพเป็นระดับการบันทึกที่กำหนดค่าไว้
|
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
|
void
สร้างออบเจ็กต์ LoggingManagement และเริ่มต้นระบบย่อยสำหรับการจัดการการบันทึกด้วยทรัพยากรที่มีให้
|
DestroyLoggingManagement(void)
|
void
ดำเนินการทุกอย่างที่จำเป็นเมื่อปิดระบบ
|
GetInstance(void)
|
ฟังก์ชันสาธารณะ
BlitEvent
WEAVE_ERROR BlitEvent( EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
ฟังก์ชันตัวช่วยสำหรับการเขียนส่วนหัวและข้อมูลของเหตุการณ์ตามโปรโตคอลการบันทึกเหตุการณ์
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
CancelShutdownInProgress
void CancelShutdownInProgress( void )
ตั้งค่าสถานะ mShutdownInProgress เป็น "เท็จ"
CheckShouldRunWDM
bool CheckShouldRunWDM( void )
เลือกว่าจะลดภาระงานเหตุการณ์โดยอิงตามจำนวนไบต์ในบัฟเฟอร์เหตุการณ์ที่ไม่ได้กำหนดเวลาสำหรับการอัปโหลดหรือไม่
ลักษณะการทำงานของฟังก์ชันมีการควบคุมผ่านค่าคงที่ WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD ถ้าระบบเขียนมากกว่าจำนวนไบต์ดังกล่าวนับตั้งแต่เวลาที่มีการส่งการแจ้งเตือน WDM ครั้งล่าสุด ฟังก์ชันจะระบุว่าถึงเวลาที่จะทริกเกอร์ NotificationEngine แล้ว
รายละเอียด | |||||
---|---|---|---|---|---|
ผลลัพธ์ |
|
FetchEventsSince
WEAVE_ERROR FetchEventsSince( nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID )
ฟังก์ชันสำหรับเรียกข้อมูลเหตุการณ์ที่มีความสำคัญที่ระบุตั้งแต่รหัสเหตุการณ์ที่ระบุ
โดยใช้ nl::Weave::TLV::TLVWriter ซึ่งเป็นประเภทความสำคัญ และรหัสเหตุการณ์ ฟังก์ชันจะดึงเหตุการณ์ที่มีความสำคัญที่ระบุตั้งแต่เหตุการณ์ที่ระบุ ฟังก์ชันนี้จะยังดึงข้อมูลกิจกรรมต่อไปจนกว่าจะไม่มีพื้นที่ใน nl::Weave::TLV::TLVWriter หรือในบันทึก ฟังก์ชันนี้จะยุติการเขียนเหตุการณ์บนขอบเขตเหตุการณ์
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
GetBytesWritten
uint32_t GetBytesWritten( void ) const
รับจำนวนไบต์ทั้งหมดที่เขียน (สำหรับความสำคัญของเหตุการณ์ทั้งหมด) มายังบันทึกนี้นับตั้งแต่การเริ่มต้น
รายละเอียด | |
---|---|
การคืนสินค้า |
จำนวนไบต์ที่เขียนลงในบันทึก
|
GetEventReader
WEAVE_ERROR GetEventReader( nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance )
วิธีตัวช่วยที่เป็นประโยชน์สำหรับการตรวจสอบบัฟเฟอร์บันทึกในหน่วยความจำ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การคืนสินค้า |
WEAVE_NO_ERROR โดยไม่มีเงื่อนไข
|
GetFirstEventID
event_id_t GetFirstEventID( ImportanceType inImportance )
ดึงข้อมูลรหัสเหตุการณ์แรกที่จัดเก็บไว้สำหรับระดับความสำคัญหนึ่งๆ ในปัจจุบัน
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
event_id_t รหัสเหตุการณ์ที่จัดเก็บครั้งแรกในปัจจุบันสำหรับความสำคัญของเหตุการณ์นั้น
|
GetLastEventID
event_id_t GetLastEventID( ImportanceType inImportance )
ดึงข้อมูลรหัสที่ใช้ล่าสุดสำหรับระดับความสำคัญหนึ่งๆ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
event_id_t รหัสเหตุการณ์ที่ vended ล่าสุดสำหรับความสำคัญของเหตุการณ์นั้น
|
IsShutdownInProgress
bool IsShutdownInProgress( void )
ตรวจสอบแฟล็ก mShutdownInProgress
IsValid
bool IsValid( void )
IsValid แสดงผลว่าอินสแตนซ์ LoggingManagement ใช้งานได้หรือไม่
รายละเอียด | |||||
---|---|---|---|---|---|
ผลลัพธ์ |
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
บันทึกเหตุการณ์ผ่าน Callback พร้อมตัวเลือก
ฟังก์ชันนี้จะบันทึกเหตุการณ์ที่แสดงเป็น EventWriterFunct และบริบท appData
เฉพาะแอป ฟังก์ชันนี้จะเขียนข้อมูลเมตาของเหตุการณ์และเรียก inEventWriter
ด้วยการอ้างอิง nl::Weave::TLV::TLVWriter และบริบท inAppData
เพื่อให้รหัสผู้ใช้ปล่อยข้อมูลเหตุการณ์ลงในบันทึกเหตุการณ์ได้โดยตรง การบันทึกเหตุการณ์รูปแบบนี้จะลดการใช้หน่วยความจำ เนื่องจากมีการเรียงลำดับข้อมูลเหตุการณ์ลงในบัฟเฟอร์เป้าหมายโดยตรง ข้อมูลเหตุการณ์ต้องมีแท็กบริบทเพื่อให้ตีความภายในสคีมาที่ระบุโดย inProfileID
และ inEventType
ระบบจะไม่สนใจแท็กขององค์ประกอบแรก ระบบบันทึกเหตุการณ์จะแทนที่ด้วยแท็ก eventData
ระบบจะบันทึกเหตุการณ์หากความสำคัญของสคีมาเกินเกณฑ์การบันทึกที่ระบุใน LoggingConfiguration หากความสำคัญของเหตุการณ์ไม่เป็นไปตามเกณฑ์ปัจจุบัน ระบบจะยกเลิกและฟังก์ชันจะแสดงผล 0
เป็นรหัสเหตุการณ์ผลลัพธ์
คำขอตัวแปรนี้อนุญาตให้ผู้โทรตั้งค่า EventOptions
แบบผสมใดก็ได้
- การประทับเวลา เมื่อ 0 เป็นค่าเริ่มต้นเป็นเวลาปัจจุบัน ณ จุดที่มีการโทร
- "รูท" ของแหล่งที่มาของเหตุการณ์ (แหล่งที่มาของเหตุการณ์และรหัสลักษณะ) หากเป็น NULL ระบบจะใช้อุปกรณ์ปัจจุบันเป็นค่าเริ่มต้น มีการทำเครื่องหมายเหตุการณ์ว่าเกี่ยวข้องกับอุปกรณ์ที่โทรออก
- รหัสเหตุการณ์ที่เกี่ยวข้องสำหรับการจัดกลุ่มรหัสเหตุการณ์ เมื่อรหัสเหตุการณ์ที่เกี่ยวข้องเป็น 0 ระบบจะทําเครื่องหมายเหตุการณ์ว่าไม่เกี่ยวข้องกับเหตุการณ์อื่นๆ
- ความเร่งด่วน โดยไม่เร่งด่วนโดยค่าเริ่มต้น
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
การคืนสินค้า |
event_id_t รหัสกิจกรรมหากมีการเขียนกิจกรรมลงในบันทึก มิฉะนั้นจะเป็น 0
|
LoggingManagement
LoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
เครื่องมือสร้าง LoggingManagement
เริ่มต้น LoggingManagement ด้วยอาร์เรย์ LogStorageResources อาร์เรย์ต้องระบุทรัพยากรสำหรับระดับความสำคัญที่ถูกต้องแต่ละระดับ องค์ประกอบของอาร์เรย์ต้องอยู่ในการเพิ่มค่าตัวเลขของความสำคัญ (และลดความสำคัญ) องค์ประกอบแรกในอาร์เรย์จะสอดคล้องกับทรัพยากรที่จัดสรรไว้สำหรับเหตุการณ์ที่สำคัญที่สุด และองค์ประกอบสุดท้ายสอดคล้องกับเหตุการณ์ที่สำคัญน้อยที่สุด
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
LoggingManagement
LoggingManagement( void )
MarkShutdownInProgress
void MarkShutdownInProgress( void )
ตั้งค่าสถานะ mShutdownInProgress เป็น true
NotifyEventsDelivered
void NotifyEventsDelivered( ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID )
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID )
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
ลงทะเบียน Callback ของแบบฟอร์ม FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนกิจกรรมในการลงทะเบียน การทำงานภายในกำหนดให้ตัวเลขนี้เป็นค่าคงที่ เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง จึงทำให้แพลตฟอร์มไม่เก็บข้อมูลเหตุการณ์ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำ)
ระบบจะเรียกใช้ Callback ทุกครั้งที่สมาชิกพยายามดึงข้อมูลรหัสกิจกรรมภายในช่วงเวลาใดก็ตามจนกว่าจะยกเลิกการลงทะเบียน
ฟังก์ชันการทํางานรูปแบบนี้เมื่อผู้ให้บริการภายนอกต้องการรับการแจ้งเตือนทั้งเมื่อนําส่งเหตุการณ์ไปยังผู้สมัครใช้บริการแล้ว และหากมีการนําออบเจ็กต์เหตุการณ์ภายนอกออก
เมื่อมีการนำส่งกิจกรรม ผู้ให้บริการภายนอกจะได้รับแจ้งในเรื่องนี้พร้อมกับรหัสโหนดของผู้รับและรหัสของเหตุการณ์ล่าสุดที่ส่งไปยังผู้รับนั้น โปรดทราบว่าผู้ให้บริการภายนอกอาจได้รับการแจ้งเตือนหลายครั้งเมื่อใช้รหัสกิจกรรมเดียวกัน ไม่มีข้อจำกัดเฉพาะในตัวแฮนเดิล โดยเฉพาะตัวแฮนเดิลอาจยกเลิกการลงทะเบียนรหัสเหตุการณ์ภายนอก
หากออบเจ็กต์เหตุการณ์ภายนอกถูกนำออกจากบัฟเฟอร์บันทึก ผู้ให้บริการภายนอกจะได้รับการแจ้งเตือนพร้อมกับสำเนาของออบเจ็กต์เหตุการณ์ภายนอก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็นค่าว่างเมื่อล้มเหลว ไม่เช่นนั้นระบบจะเติมค่าด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้ Callback ควรใช้เคอร์เซอร์นี้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
ดูรายละเอียดเกี่ยวกับสิ่งที่ Callback ต้องใช้ในเอกสารประกอบสำหรับ FetchExternalEventsFunct
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
ผลลัพธ์ |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID )
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
ลงทะเบียน Callback ของแบบฟอร์ม FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนกิจกรรมในการลงทะเบียน การทำงานภายในกำหนดให้ตัวเลขนี้เป็นค่าคงที่ เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง จึงทำให้แพลตฟอร์มไม่เก็บข้อมูลเหตุการณ์ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำ)
ระบบจะเรียกใช้ Callback ทุกครั้งที่สมาชิกพยายามดึงข้อมูลรหัสกิจกรรมภายในช่วงเวลาใดก็ตามจนกว่าจะยกเลิกการลงทะเบียน
ฟังก์ชันการทํางานรูปแบบนี้เมื่อผู้ให้บริการภายนอกต้องการรับการแจ้งเตือนเมื่อนำส่งเหตุการณ์ไปยังผู้สมัครใช้บริการแล้ว แต่ไม่ใช้เมื่อออบเจ็กต์เหตุการณ์ภายนอกถูกนําออก เมื่อมีการนำส่งกิจกรรม ผู้ให้บริการภายนอกจะได้รับแจ้งในเรื่องนี้พร้อมกับรหัสโหนดของผู้รับและรหัสของเหตุการณ์ล่าสุดที่ส่งไปยังผู้รับนั้น โปรดทราบว่าผู้ให้บริการภายนอกอาจได้รับการแจ้งเตือนหลายครั้งเมื่อใช้รหัสกิจกรรมเดียวกัน ไม่มีข้อจำกัดเฉพาะในตัวแฮนเดิล โดยเฉพาะตัวแฮนเดิลอาจยกเลิกการลงทะเบียนรหัสเหตุการณ์ภายนอก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็นค่าว่างเมื่อล้มเหลว ไม่เช่นนั้นระบบจะเติมค่าด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้ Callback ควรใช้เคอร์เซอร์นี้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
ดูรายละเอียดเกี่ยวกับสิ่งที่ Callback ต้องใช้ในเอกสารประกอบสำหรับ FetchExternalEventsFunct
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
ผลลัพธ์ |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID )
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
ลงทะเบียน Callback ของแบบฟอร์ม FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนกิจกรรมในการลงทะเบียน การทำงานภายในกำหนดให้ตัวเลขนี้เป็นค่าคงที่ เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง จึงทำให้แพลตฟอร์มไม่เก็บข้อมูลเหตุการณ์ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำ)
ระบบจะเรียกใช้ Callback ทุกครั้งที่สมาชิกพยายามดึงข้อมูลรหัสกิจกรรมภายในช่วงเวลาใดก็ตามจนกว่าจะยกเลิกการลงทะเบียน
ตัวแปรของฟังก์ชันควรใช้เมื่อผู้ให้บริการภายนอกต้องการการแจ้งเตือน ไม่ใช่เมื่อมีการส่งเหตุการณ์ภายนอกหรือเมื่อมีการนำออบเจ็กต์เหตุการณ์ภายนอกออก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็นค่าว่างเมื่อล้มเหลว ไม่เช่นนั้นระบบจะเติมค่าด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้ Callback ควรใช้เคอร์เซอร์นี้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
ดูรายละเอียดเกี่ยวกับสิ่งที่ Callback ต้องใช้ในเอกสารประกอบสำหรับ FetchExternalEventsFunct
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
ScheduleFlushIfNeeded
WEAVE_ERROR ScheduleFlushIfNeeded( bool inFlushRequested )
กําหนดเวลางานยกเลิกการโหลดบันทึก
ฟังก์ชันนี้จะตัดสินใจว่าจะกำหนดเวลาขั้นตอนการลดภาระงานหรือไม่ หากใช่ ระบบจะกำหนดเวลาให้ LoggingFlushHandler
ทำงานแบบไม่พร้อมกันบนเทรด Weave
การตัดสินใจกำหนดเวลาการล้างออกขึ้นอยู่กับปัจจัย 3 ประการดังนี้
คำขอที่ชัดแจ้งเพื่อล้างบัฟเฟอร์
สถานะของบัฟเฟอร์เหตุการณ์และปริมาณข้อมูลที่ยังไม่ได้ซิงค์กับผู้บริโภคเหตุการณ์
ว่ามีเหตุการณ์คำขอล้างคำขอที่รอดำเนินการอยู่แล้วหรือไม่
คำขอที่ชัดแจ้งเพื่อกำหนดเวลาการล้างออกจะส่งผ่านพารามิเตอร์อินพุต
โดยทั่วไปแล้ว การล้างอัตโนมัติจะกำหนดเวลาเมื่อบัฟเฟอร์เหตุการณ์มีข้อมูลเพียงพอที่จะเริ่มทำการออฟโหลดใหม่ และอาจพิจารณาทริกเกอร์เพิ่มเติม เช่น เวลาต่ำสุดและสูงสุดระหว่างการลดภาระงานด้วย ทั้งนี้ขึ้นอยู่กับกลยุทธ์การลดภาระงาน
สถานะรอดำเนินการของบันทึกเหตุการณ์จะระบุด้วยตัวแปร mUploadRequested
เนื่องจากเทรดหลายรายการเรียกใช้ฟังก์ชันนี้ได้ จึงต้องอ่านและตั้งค่า mUploadRequested
ด้วยอะตอม เพื่อหลีกเลี่ยงการตั้งเวลา LoggingFlushHandler
ที่ซ้ำซ้อนก่อนที่จะส่งการแจ้งเตือน
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
SerializeEvents
WEAVE_ERROR SerializeEvents( TLVWriter & writer )
ทำให้เหตุการณ์ Weave เป็นอนุกรมของประเภทความสำคัญทั้งหมด
ทำให้เหตุการณ์ใน WeaveCircularTLVBuffer และสถานะที่เกี่ยวข้องเป็นอนุกรมลงในบัฟเฟอร์ที่ให้มา
อุปกรณ์ที่ไม่เก็บข้อมูล RAM ไว้ในโหมดสลีปเพื่อที่จะใช้วิธีการนี้ อุปกรณ์เหล่านี้จะช่วยคงเหตุการณ์ต่างๆ ก่อนที่จะเข้าสู่โหมดสลีปเพื่อป้องกันไม่ให้เหตุการณ์สูญหาย
SetBDXUploader
void SetBDXUploader( LogBDXUpload *inUploader )
SetExchangeManager
WEAVE_ERROR SetExchangeManager( nl::Weave::WeaveExchangeManager *inMgr )
ตั้งค่า WeaveExchangeManager เพื่อใช้กับระบบย่อยของการบันทึกนี้
ในบางแพลตฟอร์ม อาจต้องดำเนินการแยกต่างหากจาก CreateLoggingManagement() ด้านบน
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
SetLoggingEndpoint
WEAVE_ERROR SetLoggingEndpoint( event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition )
SkipEvent
void SkipEvent( EventLoadOutContext *aContext )
ฟังก์ชันตัวช่วยในการข้ามการเขียนเหตุการณ์ที่สอดคล้องกับรหัสเหตุการณ์ที่จัดสรรไว้
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ThrottleLogger
void ThrottleLogger( void )
ThrottleLogger จะยกระดับการบันทึกที่มีประสิทธิภาพเป็นระดับการผลิต
UnregisterEventCallbackForImportance
void UnregisterEventCallbackForImportance( ImportanceType inImportance, event_id_t inEventID )
API สาธารณะสำหรับการยกเลิกการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้ภายนอก
การยกเลิกการลงทะเบียน Callback จะป้องกันไม่ให้ LoggingManagement เรียกใช้ Callback สำหรับชุดเหตุการณ์ LoggingManagement จะไม่ส่งรหัสเหตุการณ์เหล่านั้นไปให้ผู้ติดตามอีกต่อไป
จุดประสงค์คือให้ฟังก์ชันหนึ่งแสดงชุดเหตุการณ์ในแต่ละครั้ง หากต้องลงทะเบียนเหตุการณ์ชุดใหม่โดยใช้ฟังก์ชันเดียวกัน ควรยกเลิกการลงทะเบียน Callback ก่อนแล้วจึงลงทะเบียนอีกครั้ง ซึ่งหมายความว่าจะดึงข้อมูลชุดเหตุการณ์เดิมไม่ได้อีกต่อไป
ฟังก์ชันนี้ทำงานสำเร็จโดยไม่มีเงื่อนไข หาก Callback ไม่เคยลงทะเบียนหรือยังไม่ได้ลงทะเบียนไปแล้ว จะไม่มีการดำเนินการ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
UnthrottleLogger
void UnthrottleLogger( void )
UnthrottleLogger จะคืนค่าระดับการบันทึกที่มีประสิทธิภาพเป็นระดับการบันทึกที่กำหนดค่าไว้
ฟังก์ชันสาธารณะแบบคงที่
CreateLoggingManagement
void CreateLoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
สร้างออบเจ็กต์ LoggingManagement และเริ่มต้นระบบย่อยสำหรับการจัดการการบันทึกด้วยทรัพยากรที่มีให้
เริ่มต้น LoggingManagement ด้วยอาร์เรย์ LogStorageResources อาร์เรย์ต้องระบุทรัพยากรสำหรับระดับความสำคัญที่ถูกต้องแต่ละระดับ องค์ประกอบของอาร์เรย์ต้องอยู่ในการเพิ่มค่าตัวเลขของความสำคัญ (และลดความสำคัญ) องค์ประกอบแรกในอาร์เรย์จะสอดคล้องกับทรัพยากรที่จัดสรรไว้สำหรับเหตุการณ์ที่สำคัญที่สุด และองค์ประกอบสุดท้ายสอดคล้องกับเหตุการณ์ที่สำคัญน้อยที่สุด
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
DestroyLoggingManagement
void DestroyLoggingManagement( void )
ดำเนินการทุกอย่างที่จำเป็นเมื่อปิดระบบ