nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: সাবস্ক্রিপশন ক্লায়েন্ট
সারাংশ
পাবলিক প্রকার | |
---|---|
@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 ডিফল্ট নীতি বাস্তবায়ন WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX পর্যন্ত একটি ফিবোনাচি ক্রম অনুসরণ করে ক্রমবর্ধমান উইন্ডোতে মিলিসেকেন্ড রেজোলিউশন সহ একটি র্যান্ডম টাইমস্লট বেছে নেবে। |
পাবলিক ফাংশন | |
---|---|
AbortSubscription (void) | void সাবস্ক্রিপশন বাতিল করুন। |
ClearUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle) | |
DisableResubscribe (void) | void রিসাবস্ক্রাইব মেকানিজম অক্ষম করুন। |
DiscardUpdates () | void সাবস্ক্রিপশন ক্লায়েন্টকে আপডেট করার জন্য মুলতুবি থাকা TraitPaths-এর সেটটি খালি করতে বলে এবং আপডেটের অনুরোধটি বাতিল করতে বলে, যদি থাকে। |
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 সাবস্ক্রিপশন ক্লায়েন্টকে একজন সূচনাকারী হিসাবে কনফিগার করুন (একটি পাল্টা-সাবস্ক্রাইবার এর বিপরীতে) এবং যদি এটি না হয় তবে সাবস্ক্রিপশনটি উপরে আনুন। |
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 সাবস্ক্রিপশন ক্লায়েন্টকে আপডেট অনুরোধের পুনরায় চেষ্টা করা বন্ধ করতে বলে। |
UnlockUpdateMutex (void) | void |
কাঠামো | |
---|---|
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: সাবস্ক্রিপশন ক্লায়েন্ট:: LastObservedEvent | |
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: সাবস্ক্রিপশন ক্লায়েন্ট:: রিসাবস্ক্রাইবপারম |
ইউনিয়ন | |
---|---|
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: সাবস্ক্রিপশন ক্লায়েন্ট:: ইন ইভেন্টপারম | |
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: সাবস্ক্রিপশন ক্লায়েন্ট:: OutEventParam |
পাবলিক প্রকার
@130
@130
ইভেন্ট কলব্যাক
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
আবেদনে সদস্যতা ইভেন্ট পাস করতে কলব্যাক.
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
ইভেন্ট আইডি
EventID
বৈশিষ্ট্য | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived | যখন সাবস্ক্রিপশন ইঞ্জিন নোটিফিকেশন রিকোয়েস্ট বার্তার মধ্যে একটি ইভেন্ট স্ট্রিমের মুখোমুখি হয় তখন তৈরি হয়। অ্যাপ্লিকেশনটি এই সময়ে EndSubscription() , AbortSubscription() , বা Free() কল করতে পারে। | ||||||||||||
kEvent_OnExchangeStart | বাইন্ডিং প্রস্তুত হওয়ার পরে এবং এক্সচেঞ্জ কনটেক্সট সেট আপ করার পরে তৈরি করা হয় তবে কোনও বার্তা পাঠানোর আগে। এক্সচেঞ্জ কনটেক্সট সেটিংস সামঞ্জস্য করার জন্য এটি একটি অ্যাপ্লিকেশনের জন্য শেষ সুযোগ, | ||||||||||||
kEvent_OnNoMorePendingUpdates | একটি ইভেন্ট যা নির্দেশ করে যে আপডেট সেটের সমস্ত পাথ পিয়ার দ্বারা প্রক্রিয়া করা হয়েছে এবং আর কোন পাথ আপডেট করার প্রয়োজন নেই। | ||||||||||||
kEvent_OnNotificationProcessed | যখন সাবস্ক্রিপশন ইঞ্জিন একটি নোটিফিকেশন রিকোয়েস্ট বার্তা প্রসেস করা শেষ করে তখন জেনারেট হয়। অ্যাপ্লিকেশনটি এই সময়ে EndSubscription() , AbortSubscription() , বা Free() কল করতে পারে। | ||||||||||||
kEvent_OnNotificationRequest | একটি নোটিফিকেশন রিকোয়েস্টের রিসিটে জেনারেট করা হয়েছে। অ্যাপ্লিকেশনটি এই সময়ে EndSubscription() , AbortSubscription() , বা Free() কল করতে পারে। | ||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded | ইঞ্জিন সাবস্ক্রাইব রিকোয়েস্ট পাঠাতে প্রস্তুত হলে পাঠানো হয়। অ্যাপ্লিকেশনটি সাবস্ক্রাইব করতে চায় এমন পাথগুলি পূরণ করবে বলে আশা করা হচ্ছে৷ | ||||||||||||
kEvent_OnSubscriptionActivity | সদস্যতা কার্যকলাপ নির্দেশ করে একটি ইভেন্ট. যখনই ক্লায়েন্ট সাবস্ক্রিপশন কার্যকলাপের উপর একটি ইঙ্গিত পায় তখন এটি তৈরি হয়; এর মধ্যে রয়েছে সফল সাবস্ক্রিপশন প্রতিষ্ঠা, একটি বিজ্ঞপ্তির অনুরোধের অভ্যর্থনা বা SubscribeConfirm বার্তার প্রতিক্রিয়ায় একটি স্ট্যাটাস রিপোর্টের প্রাপ্তি। | ||||||||||||
kEvent_OnSubscriptionEstablished | সাবস্ক্রিপশন একটি সফল প্রতিষ্ঠার উপর উত্পন্ন. অ্যাপ্লিকেশনটি এই সময়ে EndSubscription() , AbortSubscription() , বা Free() কল করতে পারে। | ||||||||||||
kEvent_OnSubscriptionTerminated | এই সদস্যতার সমাপ্তি চিহ্নিত করে। nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback- এ পাঠানো পরামিতিগুলি স্বয়ংক্রিয়ভাবে পুনরায় সদস্যতা নেওয়ার চেষ্টা করা হবে কিনা তা নির্দেশ করবে। ইভেন্ট হ্যান্ডলার কল চলাকালীন, ক্লায়েন্টের অবস্থা অ্যাপ্লিকেশনটি এই অবস্থায় AbortSubscription() বা Free() কল করতে পারে। প্রেরিত পরামিতিগুলিতে সদস্যতা শেষ করার কারণ নির্দেশ করে একটি ত্রুটি কোড অন্তর্ভুক্ত থাকবে। সাবস্ক্রিপশনটি বেশ কয়েকটি কারণে বন্ধ করা হতে পারে (WRM ACK অনুপস্থিত, ExchangeContext বরাদ্দ ব্যর্থতা, প্রতিক্রিয়া সময়সীমা,...) ক্লায়েন্ট দ্বারা তৈরি কিছু সম্ভাব্য ত্রুটি কোড:
| ||||||||||||
kEvent_OnUpdateComplete | আপডেটের সমাপ্তি নির্দেশ করে এমন একটি ইভেন্ট। ইভেন্ট প্যারামিটারগুলি নির্দেশ করবে যে একটি নির্দিষ্ট বৈশিষ্ট্য পথের আপডেট সফল হয়েছে বা ব্যর্থ হয়েছে। |
পুনঃসাবস্ক্রাইব পলিসি কলব্যাক
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
পরবর্তী পুনঃসাবস্ক্রাইব করার আগে অপেক্ষা করার জন্য সময়ের ব্যবধান আনতে কলব্যাক করুন।
অ্যাপ্লিকেশনগুলিকে এই ফাংশনে বাতিল/মুক্ত করার অনুমতি দেওয়া হয় যদি তারা পুনরায় সদস্যতা ছেড়ে দেওয়ার সিদ্ধান্ত নেয়।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
পাবলিক স্ট্যাটিক ফাংশন
ডিফল্ট ইভেন্টহ্যান্ডলার
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
DefaultResubscribePolicyCallback
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
ডিফল্ট নীতি বাস্তবায়ন WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX পর্যন্ত একটি ফিবোনাচি ক্রম অনুসরণ করে ক্রমবর্ধমান উইন্ডোতে মিলিসেকেন্ড রেজোলিউশন সহ একটি র্যান্ডম টাইমস্লট বেছে নেবে।
WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX-এর পরে র্যান্ডমাইজড অপেক্ষার গড় প্রায় এক ঘন্টা হবে৷ যখন পুনরায় চেষ্টা গণনা 0 এ পুনরায় সেট করা হয়, তখন ক্রমটি আবার শুরু থেকে শুরু হয়।
পাবলিক ফাংশন
সাবস্ক্রিপশন বাতিল করুন
void AbortSubscription( void )
সাবস্ক্রিপশন বাতিল করুন।
একটি ক্লায়েন্ট সাবস্ক্রিপশন বাতিল করুন।
অবিলম্বে সাবস্ক্রিপশনের সাথে যুক্ত সমস্ত ট্র্যাফিক গ্রহণ করা বন্ধ করুন এবং সমস্ত অন্তর্নিহিত যোগাযোগ সংস্থান ছেড়ে দিন। SubscriptionClient অবজেক্ট নিজেই বৈধ থাকে এবং আবার ব্যবহার করা যেতে পারে।
সাবস্ক্রিপশন প্রকাশককে অবহিত না করে এবং অ্যাপ্লিকেশনের ইভেন্ট হ্যান্ডলারের কাছে একটি OnSubscriptionTerminated
ইভেন্ট সরবরাহ না করে, একটি সাবস্ক্রিপশনের ক্লায়েন্ট সমাপ্তি বন্ধ করে দেয়। যদি একটি পারস্পরিক সাবস্ক্রিপশন বিদ্যমান থাকে, তাহলে কাউন্টার সাবস্ক্রিপশনটিও বন্ধ হয়ে যাবে।
AbortSubscription() কে কল করার পরে, SubscriptionClient
অবজেক্টটি Terminated
অবস্থায় প্রবেশ করে। একবার সমাপ্তি প্রক্রিয়া সম্পন্ন হলে, বস্তুটি Initialized
অবস্থায় প্রবেশ করে। AbortSubscription() এ কলের মধ্যে উভয় রূপান্তরই সিঙ্ক্রোনাসভাবে ঘটে।
AbortSubscription() ফিরে আসার পরে, SubscriptionClient
অবজেক্টটি অন্য সাবস্ক্রিপশন শুরু করতে ব্যবহার করা যেতে পারে, অথবা এটি Free() পদ্ধতিতে কল করে মুক্ত করা যেতে পারে।
ক্লিয়ারআপডেটেড
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
পুনঃসাবস্ক্রাইব অক্ষম করুন
void DisableResubscribe( void )
রিসাবস্ক্রাইব মেকানিজম অক্ষম করুন।
পুনঃসাবস্ক্রাইব মুলতুবি থাকলে এটি বাতিল হয়ে যাবে।
আপডেট বাতিল করুন
void DiscardUpdates()
সাবস্ক্রিপশন ক্লায়েন্টকে আপডেট করার জন্য মুলতুবি থাকা TraitPaths-এর সেটটি খালি করতে বলে এবং আপডেটের অনুরোধটি বাতিল করতে বলে, যদি থাকে।
যেকোন কলব্যাক থেকে এই পদ্ধতি ব্যবহার করা যেতে পারে।
পুনঃসাবস্ক্রাইব সক্ষম করুন
void EnableResubscribe( ResubscribePolicyCallback aCallback )
স্বয়ংক্রিয় পুনরায় সদস্যতা সক্ষম করুন৷
ব্যর্থতার পরবর্তী পুনরায় চেষ্টা করার সময় নির্দিষ্ট করতে একটি কলব্যাক সংযুক্ত করুন৷
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
সাবস্ক্রিপশন শেষ করুন
WEAVE_ERROR EndSubscription( void )
সাবস্ক্রিপশন শেষ করুন।
একটি ক্লায়েন্ট সাবস্ক্রিপশন সুদৃঢ়ভাবে শেষ করুন।
যখন WDM_ENABLE_SUBSCRIPTION_CANCEL কম্পাইল-টাইম বিকল্প সক্রিয় থাকে, তখন সহকর্মীকে একটি CancelRequest পাঠিয়ে সাবস্ক্রিপশন শেষ করুন। সাবস্ক্রিপশনের সাথে যুক্ত সংস্থানগুলি পিয়ার থেকে প্রতিক্রিয়া বা সময় শেষ হওয়ার পরে মুক্ত করা হয়। যখন বিকল্পটি নিষ্ক্রিয় করা হয়, কলটি AbortSubscription() এর সমতুল্য।
সাবস্ক্রিপশনের ক্লায়েন্ট সমাপ্তি করুণভাবে শেষ করে। যদি সাবস্ক্রিপশন বাতিল সমর্থন সক্ষম করা থাকে, তাহলে সাবস্ক্রিপশন প্রকাশকের কাছে একটি SubscribeCancelRequest বার্তা পাঠানো হয় এবং সিস্টেম সাবস্ক্রিপশন বন্ধ করার আগে একটি উত্তরের জন্য অপেক্ষা করে; অন্যথায় সাবস্ক্রিপশন অবিলম্বে AbortSubscription() এর অনুরূপভাবে বন্ধ হয়ে যাবে। যদি একটি পারস্পরিক সাবস্ক্রিপশন বিদ্যমান থাকে, তাহলে কাউন্টার সাবস্ক্রিপশনটিও বন্ধ হয়ে যাবে।
সাবস্ক্রাইব ক্যানসেল রিকোয়েস্টের প্রতিক্রিয়ার জন্য অপেক্ষা করার সময়, SubscriptionClient
Canceling
অবস্থায় প্রবেশ করে।
একবার সমাপ্তি প্রক্রিয়া শুরু হলে, SubscriptionClient
অবজেক্টটি Terminated
অবস্থায় প্রবেশ করে এবং একটি OnSubscriptionTerminated
ইভেন্ট অ্যাপ্লিকেশনের ইভেন্ট হ্যান্ডলারের কাছে বিতরণ করা হয়। মনে রাখবেন, বাতিল সমর্থন সক্ষম না থাকলে, ইভেন্ট হ্যান্ডলারকে EndSubscription() এ কলের মধ্যে সিঙ্ক্রোনাসভাবে কল করা হতে পারে।
অ্যাপ্লিকেশনের ইভেন্ট হ্যান্ডলার ফিরে আসার পরে, SubscriptionClient
অবজেক্ট Initialized
অবস্থায় প্রবেশ করে। এই মুহুর্তে SubscriptionClient
অবজেক্টটি অন্য সাবস্ক্রিপশন শুরু করতে ব্যবহার করা যেতে পারে, অথবা এটি ফ্রি() পদ্ধতিতে কল করে মুক্ত করা যেতে পারে।
ফ্লাশআপডেট
WEAVE_ERROR FlushUpdate()
সিগন্যাল যে অ্যাপ্লিকেশনটি সমস্ত TraitUpdatableDataSinks পরিবর্তন করা শেষ করেছে৷
পূর্ববর্তী আপডেট বিনিময় প্রক্রিয়াধীন না হলে, ক্লায়েন্ট আপডেট হিসাবে চিহ্নিত সমস্ত ডেটা নেবে এবং একটি আপডেট অনুরোধে উত্তরদাতার কাছে পাঠাবে। এই পদ্ধতি যে কোনো থ্রেড থেকে কল করা যেতে পারে.
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সাফল্যের ক্ষেত্রে WEAVE_NO_ERROR; ব্যর্থতার ক্ষেত্রে অন্যান্য WEAVE_ERROR কোড। |
ফ্লাশআপডেট
WEAVE_ERROR FlushUpdate( bool aForce )
বিনামূল্যে
void Free( void )
এই SubscriptionClient অবজেক্ট বিনামূল্যে.
একটি SubscriptionClient
অবজেক্ট বিনামূল্যে.
প্রয়োজনে AbortSubscription() কল করে এবং এই SubscriptionClient অবজেক্টে রিফকাউন্ট প্রকাশ করে। সঠিক ব্যবহারের অধীনে, এটি বস্তুটিকে অবজেক্ট পুলে ফিরিয়ে আনতে সক্ষম করবে
SubscriptionClient
অবজেক্ট মুক্ত করে। যদি একটি সাবস্ক্রিপশন সক্রিয় থাকে বা চলমান থাকে, তাহলে AbortSubscription() কল করার অনুরূপভাবে সাবস্ক্রিপশন অবিলম্বে বন্ধ হয়ে যায়। যদি কোনো আপডেটের অনুরোধ প্রগতিতে থাকে, সেগুলি একইভাবে বাতিল করা হয়।
SubscriptionClient
অবজেক্টের জীবদ্দশায় একবার ফ্রি() কল করার জন্য অ্যাপ্লিকেশনটি দায়ী। Free() কল করার পরে, অবজেক্টে আর কোন রেফারেন্স করা উচিত নয়।
GetBinding
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
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 )
সাবস্ক্রিপশন ক্লায়েন্টকে একজন সূচনাকারী হিসাবে কনফিগার করুন (একটি পাল্টা-সাবস্ক্রাইবার এর বিপরীতে) এবং যদি এটি না হয় তবে সাবস্ক্রিপশনটি উপরে আনুন।
বাতিল হচ্ছে
bool IsCanceling() const
প্রতিষ্ঠিত হয়েছে
bool IsEstablished()
ইস্টাব্লিশড ইডল
bool IsEstablishedIdle()
ইসফ্রি
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
সমাপ্ত
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
অনক্যাটালগ পরিবর্তিত
void OnCatalogChanged()
TraitDataSink ক্যাটালগ পরিবর্তন করা হলে এই পদ্ধতিটি কল করা উচিত।
রিসেট রিসাবস্ক্রাইব
void ResetResubscribe( void )
রিসাবস্ক্রাইব মেকানিজমকে কিক করুন।
এটি একটি অবিলম্বে পুনরায় চেষ্টা শুরু করবে৷
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
সেটআপডেটেড
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
সাসপেন্ডআপডেটরিট্রিস
void SuspendUpdateRetries()
সাবস্ক্রিপশন ক্লায়েন্টকে আপডেট অনুরোধের পুনরায় চেষ্টা করা বন্ধ করতে বলে।
অ্যাপ্লিকেশনটিকে সমস্ত মেটাডেটা বাতিল না করে একটি নির্দিষ্ট সময়ের জন্য আপডেটগুলি স্থগিত করার অনুমতি দেয়৷ FlushUpdate কল করা হলে আপডেট এবং পুনরায় চেষ্টা করা হবে। একটি আপডেট ফ্লাইটে থাকাকালীন আপডেটগুলি স্থগিত করার জন্য ডাকা হলে, আপডেটটি বাতিল করা হয় না তবে এটি ব্যর্থ হলে ফ্লাশআপডেট পুনরায় কল না করা পর্যন্ত এটি পুনরায় চেষ্টা করা হবে না।
UnlockUpdateMutex
void UnlockUpdateMutex( void )