nl:: Weave:: โปรไฟล์:: DataManagement_Current:: SUBSCRIPTIONClient
สรุป
ประเภทสาธารณะ |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
Typedefvoid(*
โค้ดเรียกกลับเพื่อส่งเหตุการณ์การสมัครใช้บริการไปยังแอปพลิเคชัน |
EventID{
|
enum |
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
|
Typedefvoid(*
โค้ดเรียกกลับเพื่อดึงระยะเวลารอก่อนการสมัครใช้บริการอีกครั้งถัดไป |
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
DefaultEventHandler(EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
DefaultResubscribePolicyCallback(void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec)
|
void
การใช้นโยบายเริ่มต้นจะสุ่มเลือกช่วงเวลาที่มีความละเอียดเป็นมิลลิวินาทีในช่วงกรอบเวลาที่เพิ่มขึ้น ตามลําดับ fibonacci สูงสุด WDM_RESUBSCRIBE_MAX_FIBONACCI_step_INDEX
|
ฟังก์ชันสาธารณะ |
|
---|---|
AbortSubscription(void)
|
void
ล้มเลิกการสมัครใช้บริการ
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
ปิดกลไกการสมัครใช้บริการอีกครั้ง
|
DiscardUpdates()
|
void
แจ้ง SUBSCRIPTIONClient ให้ล้างชุด TraitPath ที่รอดําเนินการเพื่ออัปเดตและยกเลิกคําขออัปเดตที่กําลังดําเนินการอยู่ (หากมี)
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
เปิดใช้การสมัครใช้บริการอีกครั้งโดยอัตโนมัติ
|
EndSubscription(void)
|
สิ้นสุดการสมัครใช้บริการ
|
FlushUpdate()
|
สัญญาณที่แจ้งว่าแอปพลิเคชันเปลี่ยนแปลง TraitUpdatableDataSinks ทั้งหมดเสร็จแล้ว
|
FlushUpdate(bool aForce)
|
|
Free(void)
|
void
ปล่อยออบเจ็กต์ SUBSCRIPTIONClient นี้ฟรี
|
GetBinding(void) const
|
Binding *
|
GetLivenessTimeoutMsec(void) const
|
uint32_t
|
GetPeerNodeId(void) const
|
uint64_t
|
GetSubscriptionId(uint64_t *const apSubscriptionId)
|
|
IndicateActivity(void)
|
void
|
InitiateCounterSubscription(const uint32_t aLivenessTimeoutSec)
|
void
|
InitiateSubscription(void)
|
void
กําหนดค่า subscriptionClient เป็นผู้เริ่ม (ไม่ใช่ผู้ติดตามแทน) แล้วเปิดใช้การสมัครใช้บริการหากไม่ใช่
|
IsCanceling() const
|
bool
|
IsEstablished()
|
bool
|
IsEstablishedIdle()
|
bool
|
IsFree()
|
bool
|
IsInProgressOrEstablished()
|
bool
|
IsInResubscribeHoldoff()
|
bool
|
IsRetryEnabled()
|
bool
|
IsTerminated()
|
bool
|
IsUpdatePendingOrInProgress()
|
bool
|
LockUpdateMutex(void)
|
void
|
OnCatalogChanged()
|
void
คุณควรเรียกใช้เมธอดนี้เมื่อแก้ไขแคตตาล็อก TraitDataSink แล้ว
|
ResetResubscribe(void)
|
void
เปิดกลไกการสมัครใช้บริการอีกครั้ง
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
แจ้ง SUBSCRIPTIONClient ให้หยุดส่งคําขออัปเดตอีกครั้ง
|
UnlockUpdateMutex(void)
|
void
|
โครงสร้าง |
|
---|---|
nl:: |
|
nl:: |
สหภาพ |
|
---|---|
nl:: |
|
nl:: |
ประเภทสาธารณะ
130 แต้ม
@130
เรียกกลับเหตุการณ์
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
โค้ดเรียกกลับเพื่อส่งเหตุการณ์การสมัครใช้บริการไปยังแอปพลิเคชัน
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
รหัสกิจกรรม
EventID
พร็อพเพอร์ตี้ | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
สร้างขึ้นเมื่อ SUBSCRIPTIONEngine นับสตรีมเหตุการณ์ภายในข้อความ AlertRequest แอปพลิเคชันอาจเรียกใช้ EndSubscription(), Abortsubscriptions() หรือ Free() |
||||||||||||
kEvent_OnExchangeStart
|
สร้างขึ้นหลังจากเตรียมการเชื่อมโยงและได้ตั้งค่า ExchangeContext แล้ว ก่อนที่จะส่งข้อความใดๆ นี่เป็นโอกาสสุดท้ายที่แอปพลิเคชันจะปรับการตั้งค่า ExchangeContext ทําให้ |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
เหตุการณ์ที่บ่งบอกว่าเส้นทางทั้งหมดในชุดการอัปเดตได้รับการประมวลผลโดยกลุ่มเดียวกัน และไม่จําเป็นต้องอัปเดตเส้นทางเพิ่มเติม |
||||||||||||
kEvent_OnNotificationProcessed
|
สร้างขึ้นเมื่อ subscriptionEngine เสร็จสิ้นการประมวลผลข้อความการแจ้งเตือนคําขอ แอปพลิเคชันอาจเรียกใช้ EndSubscription(), Abortsubscriptions() หรือ Free() |
||||||||||||
kEvent_OnNotificationRequest
|
สร้างขึ้นในคําขอการแจ้งเตือน แอปพลิเคชันอาจเรียกใช้ EndSubscription(), Abortsubscriptions() หรือ Free() |
||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded
|
ส่งเมื่อเครื่องพร้อมให้ส่ง แอปพลิเคชันนี้ต้องการให้กรอกข้อมูลในเส้นทางที่ต้องการสมัคร |
||||||||||||
kEvent_OnSubscriptionActivity
|
เหตุการณ์ที่ระบุกิจกรรมการสมัครใช้บริการ ระบบนี้สร้างขึ้นเมื่อใดก็ตามที่ลูกค้าได้รับการแจ้งเตือนเกี่ยวกับกิจกรรมการสมัครใช้บริการ ซึ่งรวมถึงการสมัครใช้บริการที่สําเร็จ การรับคําขอการแจ้งเตือน หรือการได้รับรายงานสถานะตอบกลับข้อความสมัครใช้บริการเพื่อยืนยัน |
||||||||||||
kEvent_OnSubscriptionEstablished
|
สร้างขึ้นเมื่อการสมัครใช้บริการประสบความสําเร็จ แอปพลิเคชันอาจเรียกใช้ EndSubscription(), Abortsubscriptions() หรือ Free() |
||||||||||||
kEvent_OnSubscriptionTerminated
|
ทําเครื่องหมายว่าสิ้นสุดการสมัครใช้บริการนี้ พารามิเตอร์ที่ส่งไปยัง nl::Weave::Profiles::DataManagement_Current::SUBSCRIPTIONClient::EventCallback จะระบุว่าจะพยายามสมัครใช้บริการอีกครั้งโดยอัตโนมัติหรือไม่ ในระหว่างการเรียกเครื่องจัดการเหตุการณ์ สถานะของไคลเอ็นต์จะเป็น แอปพลิเคชันอาจเรียก Abortsubscriptions() หรือ Free() ในสถานะนี้ พารามิเตอร์ที่ส่งจะมีรหัสข้อผิดพลาดซึ่งระบุเหตุผลที่สิ้นสุดการสมัครใช้บริการด้วย การสมัครใช้บริการอาจถูกยกเลิกด้วยเหตุผลหลายประการ (WRM ACK ขาดหายไป, การจัดสรร ExchangeContext ไม่สําเร็จ, หมดเวลาตอบสนอง,...) รหัสข้อผิดพลาดบางส่วนที่ไคลเอ็นต์สร้างขึ้นมีดังนี้
|
||||||||||||
kEvent_OnUpdateComplete
|
เหตุการณ์ที่ระบุว่าการอัปเดตเสร็จสมบูรณ์ พารามิเตอร์เหตุการณ์จะระบุว่าการอัปเดตเส้นทางลักษณะเฉพาะนั้นๆ สําเร็จหรือล้มเหลว |
สมัครใช้บริการ Callback ของนโยบายอีกครั้ง
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
โค้ดเรียกกลับเพื่อดึงระยะเวลารอก่อนการสมัครใช้บริการอีกครั้งถัดไป
แอปพลิเคชันได้รับอนุญาตให้ยกเลิกการทํางาน/ยกเลิกฟังก์ชันนี้ในฟังก์ชันนี้ได้หากตัดสินใจยกเลิกการสมัครใช้บริการอีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
ฟังก์ชันสาธารณะแบบคงที่
เครื่องจัดการเหตุการณ์เริ่มต้น
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
ค่าเริ่มต้นการติดต่อกลับนโยบายอีกครั้ง
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
การใช้นโยบายเริ่มต้นจะสุ่มเลือกช่วงเวลาที่มีความละเอียดเป็นมิลลิวินาทีในช่วงกรอบเวลาที่เพิ่มขึ้น ตามลําดับ fibonacci สูงสุด WDM_RESUBSCRIBE_MAX_FIBONACCI_step_INDEX
เวลารอโดยเฉลี่ยแบบสุ่มหลังจาก WDM_RESUBSCRIBE_MAX_FIBONACCI_step_INDEX จะอยู่ที่ประมาณ 1 ชั่วโมง เมื่อรีเซ็ตจํานวนครั้งที่ลองใหม่เป็น 0 แล้ว ลําดับจะเริ่มจากจุดเริ่มต้นอีกครั้ง
ฟังก์ชันสาธารณะ
ล้มเลิกการสมัครใช้บริการ
void AbortSubscription( void )
ล้มเลิกการสมัครใช้บริการ
ล้มเลิกการสมัครใช้บริการของลูกค้า
หยุดยอมรับการเข้าชมทั้งหมดที่เชื่อมโยงกับการสมัครใช้บริการทันที และถอนทรัพยากรการสื่อสารที่สําคัญทั้งหมด ออบเจ็กต์ subscriptionClient ยังคงใช้งานได้และใช้งานได้อีกครั้ง
ยุติการสมัครใช้บริการของลูกค้าโดยไม่แจ้งผู้เผยแพร่การสมัครใช้บริการและไม่ส่งเหตุการณ์ OnSubscriptionTerminated
ไปยังเครื่องจัดการเหตุการณ์ของแอปพลิเคชัน หากมีการสมัครใช้บริการร่วมกัน ระบบจะยกเลิกการสมัครใช้บริการเช่นกัน
เมื่อเรียกใช้ Abortsubscriptions() ออบเจ็กต์ SubscriptionClient
จะเข้าสู่สถานะ Terminated
เมื่อกระบวนการสิ้นสุดเสร็จสมบูรณ์แล้ว ออบเจ็กต์จะเข้าสู่สถานะ Initialized
การเปลี่ยนแปลงทั้ง 2 รายการจะเกิดขึ้นพร้อมกันในการเรียกใช้ Abortsubscriptions()
หลังจากส่งคืน Abortsubscriptions() แล้ว อาจมีการใช้ออบเจ็กต์ SubscriptionClient
เพื่อเริ่มการสมัครใช้บริการอื่น หรืออาจเรียกใช้ได้โดยเรียกเมธอด Free()
ล้างข้อมูลแล้ว
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
ปิดใช้งานการสมัครรับข้อมูลอีกครั้ง
void DisableResubscribe( void )
ปิดกลไกการสมัครใช้บริการอีกครั้ง
การดําเนินการนี้จะยกเลิกหากการสมัครใช้บริการอีกครั้งอยู่ระหว่างรอดําเนินการ
ทิ้งการอัปเดต
void DiscardUpdates()
แจ้ง SUBSCRIPTIONClient ให้ล้างชุด TraitPath ที่รอดําเนินการเพื่ออัปเดตและยกเลิกคําขออัปเดตที่กําลังดําเนินการอยู่ (หากมี)
เมธอดนี้สามารถเรียกใช้ได้จากการติดต่อกลับ
เปิดใช้การสมัครอีกครั้ง
void EnableResubscribe( ResubscribePolicyCallback aCallback )
เปิดใช้การสมัครใช้บริการอีกครั้งโดยอัตโนมัติ
แนบโค้ดเรียกกลับเพื่อระบุจํานวนครั้งที่จะลองใหม่ครั้งถัดไปเมื่อล้มเหลว
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
สิ้นสุดการสมัครใช้บริการ
WEAVE_ERROR EndSubscription( void )
สิ้นสุดการสมัครใช้บริการ
สิ้นสุดการสมัครใช้บริการของลูกค้าอย่างราบรื่น
เมื่อเปิดใช้ตัวเลือกเวลาคอมไพล์ WDM_ENABLE_SUBSCRIPTION_UPDATE แล้ว การสมัครใช้บริการจะยุติลงอย่างราบรื่นโดยส่งคําขอ Request ไปยังแอปเทียบเท่า ทรัพยากรที่เชื่อมโยงกับการสมัครใช้บริการจะถูกปล่อยว่างไว้จากเพียร์หรือเมื่อหมดเวลา เมื่อปิดใช้ตัวเลือกนี้ การเรียกจะเท่ากับ Abortsubscriptions()
ค่อยๆ ยุติการสมัครใช้บริการของลูกค้า หากเปิดใช้การสนับสนุนการยกเลิกการสมัครใช้บริการ ระบบจะส่งข้อความสมัครใช้บริการการยกเลิกการสมัครใช้บริการไปยังผู้เผยแพร่การสมัครใช้บริการและระบบรอการตอบกลับก่อนที่จะสิ้นสุดการสมัครใช้บริการ มิเช่นนั้นการสมัครใช้บริการจะสิ้นสุดทันทีในลักษณะเดียวกับ Abortsubscriptions() หากมีการสมัครใช้บริการร่วมกัน ระบบจะเลิกสมัครใช้บริการเช่นกัน
ขณะรอการตอบกลับของการยกเลิกการสมัครใช้บริการ SubscriptionClient
จะเข้าสู่สถานะ Canceling
เมื่อเริ่มกระบวนการสิ้นสุด ออบเจ็กต์ SubscriptionClient
จะเข้าสู่สถานะ Terminated
และจะส่งเหตุการณ์ OnSubscriptionTerminated
ไปยังเครื่องจัดการเหตุการณ์ของแอปพลิเคชัน โปรดทราบว่าหากไม่เปิดใช้งานการสนับสนุนการยกเลิก เครื่องจัดการเหตุการณ์อาจเรียกใช้พร้อมกันภายในการเรียกใช้ Endsubscription()
หลังจากที่เครื่องจัดการเหตุการณ์ของแอปพลิเคชันปรากฏขึ้น ออบเจ็กต์ SubscriptionClient
จะเข้าสู่สถานะ Initialized
เมื่อถึงตอนนี้อาจมีการใช้ออบเจ็กต์ SubscriptionClient
เพื่อเริ่มการสมัครใช้บริการอื่น หรืออาจเรียกใช้ได้โดยเรียกเมธอด Free()
FlushUpdate
WEAVE_ERROR FlushUpdate()
สัญญาณที่แจ้งว่าแอปพลิเคชันเปลี่ยนแปลง TraitUpdatableDataSinks ทั้งหมดเสร็จแล้ว
Exchange จะนําข้อมูลทั้งหมดที่ทําเครื่องหมายว่าอัปเดตแล้วและส่งไปให้ผู้ตอบในคําขออัปเดตรายการเดียว เว้นแต่ว่า Exchange อัปเดตกําลังอยู่ระหว่างดําเนินการ เรียกใช้เมธอดนี้ได้จากชุดข้อความใดก็ได้
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
WEhave_NO_ERROR ในกรณีที่สําเร็จ รหัส WEhave_ERROR อื่นๆ ในกรณีที่ล้มเหลว
|
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
ฟรี
void Free( void )
ปล่อยออบเจ็กต์ SUBSCRIPTIONClient นี้ฟรี
ยกเลิกออบเจ็กต์ SubscriptionClient
เรียก Abortsubscriptions() หากจําเป็น และปล่อย refref ในออบเจ็กต์ subscriptionClient นี้ ในส่วนการใช้งานที่ถูกต้อง การดําเนินการนี้จะช่วยให้มีการส่งออบเจ็กต์กลับมาที่พูลออบเจ็กต์
ปล่อยวัตถุ SubscriptionClient
หากการสมัครใช้บริการทํางานอยู่หรืออยู่ระหว่างดําเนินการ การสมัครใช้บริการจะถูกยกเลิกในลักษณะเดียวกับการเรียกใช้ Abortsubscriptions() ทันที หากคําขออัปเดตอยู่ระหว่างดําเนินการ ระบบจะล้มเลิกคําขอที่คล้ายกันด้วย
แอปพลิเคชันจะทําหน้าที่เรียก Free() เพียงครั้งเดียวตลอดอายุการใช้งานของออบเจ็กต์ SubscriptionClient
หลังจากเรียก Free() แล้ว ไม่ควรมีการอ้างอิงเพิ่มเติมสําหรับออบเจ็กต์ดังกล่าว
ดาวน์โหลด Get-inding
Binding * GetBinding( void ) const
รับระยะหมดเวลาของ Liveสด
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
รับรหัสการสมัครรับข้อมูล
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
ระบุกิจกรรม
void IndicateActivity( void )
เริ่มต้นตัวนับ
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
เริ่มสมัครใช้บริการ
void InitiateSubscription( void )
กําหนดค่า subscriptionClient เป็นผู้เริ่ม (ไม่ใช่ผู้ติดตามแทน) แล้วเปิดใช้การสมัครใช้บริการหากไม่ใช่
กําลังยกเลิก
bool IsCanceling() const
เป็นที่รู้จัก
bool IsEstablished()
เป็นที่ยอมรับ
bool IsEstablishedIdle()
ฟรี
bool IsFree()
กําลังดําเนินการหรือเป็นที่รู้จัก
bool IsInProgressOrEstablished()
IsInResubscribeholdoff
bool IsInResubscribeHoldoff()
เป็นลองใหม่อีกครั้ง
bool IsRetryEnabled()
สิ้นสุด
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
คุณควรเรียกใช้เมธอดนี้เมื่อแก้ไขแคตตาล็อก TraitDataSink แล้ว
รีเซ็ตการสมัครใช้บริการอีกครั้ง
void ResetResubscribe( void )
เปิดกลไกการสมัครใช้บริการอีกครั้ง
การดําเนินการนี้จะเริ่มต้นทันทีทันที
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
ตั้งค่าแล้ว
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
ระงับการอัปเดต
void SuspendUpdateRetries()
แจ้ง SUBSCRIPTIONClient ให้หยุดส่งคําขออัปเดตอีกครั้ง
อนุญาตให้แอปพลิเคชันระงับการอัปเดตเป็นระยะเวลาหนึ่งโดยไม่ต้องทิ้งข้อมูลเมตาทั้งหมด การอัปเดตและการลองใหม่จะกลับมาทํางานอีกครั้งเมื่อเรียกใช้ FlushUpdate เมื่อเรียกใช้การระงับการอัปเดตขณะกําลังดําเนินการอยู่ ระบบจะไม่อัปเดตการอัปเดตนั้น แต่ในกรณีที่ดําเนินการไม่สําเร็จ ระบบจะไม่พยายามอัปเดตอีกจนกว่าจะเรียกใช้ FlushUpdate อีกครั้ง
ปลดล็อกUpdateUpdatex
void UnlockUpdateMutex( void )