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)
|
บันทึกเหตุการณ์ผ่านโค้ดเรียกกลับที่มีตัวเลือก
|
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 สำหรับความสำคัญของเหตุการณ์นั้น
|
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 )
บันทึกเหตุการณ์ผ่านโค้ดเรียกกลับที่มีตัวเลือก
ฟังก์ชันนี้จะบันทึกเหตุการณ์ที่แสดงเป็น EventWriterFunct และบริบท appData
เฉพาะแอป ฟังก์ชันจะเขียนข้อมูลเมตาของเหตุการณ์และเรียกใช้ inEventWriter
ด้วยการอ้างอิง nl::Weave::TLV::TLVWriter และบริบท inAppData
เพื่อให้รหัสผู้ใช้ส่งข้อมูลเหตุการณ์ลงในบันทึกเหตุการณ์ได้โดยตรง การบันทึกเหตุการณ์รูปแบบนี้ช่วยลดการใช้หน่วยความจำลง เนื่องจากระบบจะเรียงลำดับข้อมูลเหตุการณ์ลงในบัฟเฟอร์เป้าหมายโดยตรง ข้อมูลเหตุการณ์ต้องมีแท็กบริบทที่จะตีความภายในสคีมาที่ระบุโดย inProfileID
และ inEventType
ระบบจะไม่สนใจแท็กขององค์ประกอบแรก ระบบการบันทึกเหตุการณ์จะแทนที่แท็กดังกล่าวด้วยแท็ก eventData
ระบบจะบันทึกเหตุการณ์หากความสำคัญของสคีมาเกินเกณฑ์การบันทึกที่ระบุไว้ใน LoggingConfiguration หากความสำคัญของเหตุการณ์ไม่เป็นไปตามเกณฑ์ปัจจุบัน ฟังก์ชันจะหายไปและฟังก์ชันจะแสดง 0
เป็นรหัสเหตุการณ์ที่ได้
ตัวแปรของคำขอนี้อนุญาตให้ผู้โทรตั้งค่าชุดค่าผสมของ EventOptions
:
- เมื่อ 0 เป็นค่าเริ่มต้น เป็นเวลาปัจจุบัน ณ เวลาที่มีการโทร
- ส่วน "root" ของแหล่งที่มาของเหตุการณ์ (แหล่งที่มาของเหตุการณ์และรหัสลักษณะ) หาก 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 )
เครื่องมือสร้างเริ่มต้น LoggingManagement
มีจุดประสงค์หลักเพื่อทำให้ผู้เรียบเรียงมีความสุข
รายละเอียด | |
---|---|
การส่งคืน |
MarkShutdownInProgress
void MarkShutdownInProgress( void )
ตั้งค่าสถานะ mShutdownInProgress เป็น "จริง"
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 สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้จากภายนอก
ลงทะเบียนการเรียกกลับของรูปแบบ FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนเหตุการณ์ในการลงทะเบียน การทำงานภายในยังกำหนดให้ตัวเลขนี้คงที่ด้วย เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง ระบบจึงทำให้แพลตฟอร์มคงพื้นที่เก็บข้อมูลของเหตุการณ์ไม่ได้ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำกัน)
ระบบจะเรียกใช้โค้ดเรียกกลับเมื่อใดก็ตามที่สมาชิกพยายามดึงข้อมูลรหัสเหตุการณ์ภายในช่วงระยะเวลาหนึ่งจนกว่าจะยกเลิกการลงทะเบียน
ควรใช้ตัวแปรนี้เมื่อผู้ให้บริการภายนอกต้องการรับการแจ้งเตือนทั้งเมื่อมีการส่งเหตุการณ์ไปยังผู้สมัครใช้บริการและเมื่อออบเจ็กต์เหตุการณ์ภายนอกถูกนำออก
เมื่อส่งเหตุการณ์แล้ว ผู้ให้บริการภายนอกจะได้รับแจ้งเกี่ยวกับเรื่องนี้ พร้อมกับรหัสโหนดของผู้รับ และรหัสของเหตุการณ์ล่าสุดที่ส่งไปยังผู้รับรายนั้น โปรดทราบว่าผู้ให้บริการภายนอกอาจได้รับการแจ้งเตือนหลายครั้งสำหรับรหัสกิจกรรมเดียวกัน ไม่มีข้อจำกัดที่เจาะจงเกี่ยวกับตัวแฮนเดิล โดยเฉพาะตัวแฮนเดิลอาจยกเลิกการลงทะเบียนรหัสกิจกรรมภายนอก
หากออบเจ็กต์เหตุการณ์ภายนอกถูกนำออกจากบัฟเฟอร์ไฟล์บันทึก ผู้ให้บริการภายนอกจะได้รับแจ้งพร้อมกับสำเนาของออบเจ็กต์เหตุการณ์ภายนอก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็น NULL เมื่อล้มเหลว มิฉะนั้นจะมีการเติมข้อมูลด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้กับการเรียกกลับ ตัวชี้นี้ควรใช้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
โปรดดูรายละเอียดเกี่ยวกับสิ่งที่เรียกกลับต้องใช้ในเอกสารประกอบสำหรับ FetchExternalEventsFunct
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID )
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้จากภายนอก
ลงทะเบียนการเรียกกลับของรูปแบบ FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนเหตุการณ์ในการลงทะเบียน การทำงานภายในยังกำหนดให้ตัวเลขนี้คงที่ด้วย เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง ระบบจึงทำให้แพลตฟอร์มคงพื้นที่เก็บข้อมูลของเหตุการณ์ไม่ได้ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำกัน)
ระบบจะเรียกใช้โค้ดเรียกกลับเมื่อใดก็ตามที่สมาชิกพยายามดึงข้อมูลรหัสเหตุการณ์ภายในช่วงระยะเวลาหนึ่งจนกว่าจะยกเลิกการลงทะเบียน
ควรใช้ตัวแปรนี้เมื่อผู้ให้บริการภายนอกต้องการรับการแจ้งเตือนเมื่อมีการส่งเหตุการณ์ไปยังผู้สมัครรับข้อมูล แต่ไม่ควรใช้เมื่อออบเจ็กต์เหตุการณ์ภายนอกถูกนําออก เมื่อส่งเหตุการณ์แล้ว ผู้ให้บริการภายนอกจะได้รับแจ้งเกี่ยวกับเรื่องนี้ พร้อมกับรหัสโหนดของผู้รับ และรหัสของเหตุการณ์ล่าสุดที่ส่งไปยังผู้รับรายนั้น โปรดทราบว่าผู้ให้บริการภายนอกอาจได้รับการแจ้งเตือนหลายครั้งสำหรับรหัสกิจกรรมเดียวกัน ไม่มีข้อจำกัดที่เจาะจงเกี่ยวกับตัวแฮนเดิล โดยเฉพาะตัวแฮนเดิลอาจยกเลิกการลงทะเบียนรหัสกิจกรรมภายนอก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็น NULL เมื่อล้มเหลว มิฉะนั้นจะมีการเติมข้อมูลด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้กับการเรียกกลับ ตัวชี้นี้ควรใช้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
โปรดดูรายละเอียดเกี่ยวกับสิ่งที่เรียกกลับต้องใช้ในเอกสารประกอบสำหรับ FetchExternalEventsFunct
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
RegisterEventCallbackForImportance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID )
API สาธารณะสำหรับการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้จากภายนอก
ลงทะเบียนการเรียกกลับของรูปแบบ FetchExternalEventsFunct API นี้กำหนดให้แพลตฟอร์มทราบจำนวนเหตุการณ์ในการลงทะเบียน การทำงานภายในยังกำหนดให้ตัวเลขนี้คงที่ด้วย เนื่องจาก API นี้ไม่อนุญาตให้แพลตฟอร์มลงทะเบียนรหัสเหตุการณ์ที่เฉพาะเจาะจง ระบบจึงทำให้แพลตฟอร์มคงพื้นที่เก็บข้อมูลของเหตุการณ์ไม่ได้ (อย่างน้อยต้องมีรหัสเหตุการณ์ที่ไม่ซ้ำกัน)
ระบบจะเรียกใช้โค้ดเรียกกลับเมื่อใดก็ตามที่สมาชิกพยายามดึงข้อมูลรหัสเหตุการณ์ภายในช่วงระยะเวลาหนึ่งจนกว่าจะยกเลิกการลงทะเบียน
ควรใช้ตัวแปรนี้เมื่อผู้ให้บริการภายนอกต้องการรับการแจ้งเตือนทั้งเมื่อมีการส่งเหตุการณ์ภายนอกหรือเมื่อออบเจ็กต์เหตุการณ์ภายนอกถูกนําออก
ตัวชี้ไปยังโครงสร้าง ExternalEvents จะเป็น NULL เมื่อล้มเหลว มิฉะนั้นจะมีการเติมข้อมูลด้วยรหัสเหตุการณ์เริ่มต้นและสิ้นสุดที่กำหนดให้กับการเรียกกลับ ตัวชี้นี้ควรใช้เพื่อยกเลิกการลงทะเบียนชุดเหตุการณ์
โปรดดูรายละเอียดเกี่ยวกับสิ่งที่เรียกกลับต้องใช้ในเอกสารประกอบสำหรับ 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 สาธารณะสำหรับการยกเลิกการลงทะเบียนชุดเหตุการณ์ที่จัดเก็บไว้จากภายนอก
การยกเลิกการลงทะเบียนโค้ดเรียกกลับจะป้องกันไม่ให้ LoggingManagement เรียกกลับสำหรับชุดเหตุการณ์ LoggingManagement จะไม่ส่งรหัสกิจกรรมเหล่านั้นไปยังผู้ติดตามอีกต่อไป
เป้าหมายคือให้ฟังก์ชันหนึ่งแสดงชุดเหตุการณ์ต่อครั้ง หากต้องลงทะเบียนเหตุการณ์ชุดใหม่โดยใช้ฟังก์ชันเดียวกัน โค้ดเรียกกลับควรถูกยกเลิกการลงทะเบียนก่อน จากนั้นจึงค่อยบันทึกอีกครั้ง ซึ่งหมายความว่าจะดึงข้อมูลชุดเหตุการณ์ต้นฉบับไม่ได้อีกต่อไป
ฟังก์ชันนี้ใช้งานได้อย่างไม่มีเงื่อนไข หากโค้ดเรียกกลับไม่เคยลงทะเบียนหรือไม่ได้ลงทะเบียนไปแล้ว นั่นคือไม่มีการดำเนินการ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
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 )
ดำเนินการใดๆ ที่จำเป็นต้องกระทำเมื่อปิดระบบ