nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
تدير فئة الربط حالة الاتصالات نيابةً عن كيان التطبيق الذي يستخدم Weave.
ملخّص
عندما يريد أحد التطبيقات استخدام Weave للتواصل مع كيان بعيد، فإن هناك مجموعة متنوعة من الخيارات. تجمع فئة الربط بين هذه الخيارات وترتبّها بطريقة تجعل الأمور السهلة والأكثر صعوبة في المتناول. تشمل الخيارات المشمولة ما يلي:
- اتصال UDP أحادي البث مع عقدة نظير معروفة.
- بث UDP مع "أي" العقدة.
- اتصال WRMP أحادي البث بعقدة نظير معروفة.
- اتصالات TCP مع عقدة نظير معروفة.
- اتصالات TCP بنقطة نهاية خدمة معروفة باستخدام مثيل مدير الخدمة لإعداد الأمور.
- اتصالات TCP المستندة إلى اتصال محدد مسبقًا.
الشركات المصنّعة والمُصنّعة |
|
---|---|
Binding(void)
الدالة الإنشائية التلقائية لكائنات الربط
|
|
~Binding(void)
دالة التلف لكائنات ربط.
|
الأنواع العامة |
|
---|---|
@165{
|
تعداد مجموعة حالات الكائن ربط. |
السمات العامة |
|
---|---|
mAuthMode
|
WeaveAuthMode
وضع مصادقة Weave المطلوب استخدامه.
|
mConnection
|
مؤشر إلى اتصال Weave المستخدَم حاليًا في عملية الربط هذه.
|
mEngine
|
مؤشر إلى الكائن ProtocolEngine المرتبط بـ Binding هذا.
|
mPeerNodeId
|
uint64_t
رقم تعريف العقدة 64 بت من هدف الربط.
|
mServiceMgr
|
مؤشر يؤدي إلى كائن ServiceManager (اختياري) لاستخدامه في إكمال هذا الربط.
|
mState
|
uint8_t
حالة عنصر الربط الحالية.
|
mTransport
|
uint8_t
تمثّل هذه السمة وسيلة النقل المستخدمة في إكمال عملية الربط هذه.
|
وظائف عامة |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
التعامل مع تأكيد طلب الربط
|
CompleteConfirm(StatusReport & aReport)
|
void
التعامل مع تعذُّر طلب الربط.
|
CompleteConfirm(void)
|
void
التعامل مع تأكيد طلب الربط
|
CompleteRequest(ProtocolEngine *aEngine)
|
طلب إكمال عملية ربط
|
Connect(WeaveConnection *aConnection)
|
أكمل عملية ربط TCP من خلال توفير اتصال مكتمل.
|
Finalize(void)
|
void
"غير مكتملة" ربط وتحريره.
|
Finalize(WEAVE_ERROR aErr)
|
void
"غير مكتملة" ربط وتحريره.
|
Free(void)
|
void
محو حالة الربط
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
أنتج كائن ExchangeContext من Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
التعامل مع تعذُّر الربط.
|
Init(const uint64_t & aPeerNodeId)
|
احرص على إعداد الربط باستخدام رقم تعريف عقدة فقط.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
احرص على إعداد عنصر ربط استنادًا إلى رقم تعريف النظراء وطريقة النقل.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
إعداد كائن ربط بنقطة نهاية خدمة.
|
Init(WeaveConnection *aConnection)
|
عليك إعداد كائن ربط باستخدام WeaveConnection.
|
IsComplete(void)
|
bool
التحقّق من اكتمال عملية الربط
|
IsFree(void)
|
bool
الشيك ملزم مجانًا.
|
UncompleteRequest(void)
|
void
يتسبب في أن يكون الربط غير مكتمل.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
يتسبب في أن يكون الربط غير مكتمل.
|
الأنواع العامة
@165
@165
مجموعة حالات الكائن ربط.
أماكن إقامة | |
---|---|
kState_Complete
|
يشير ذلك المصطلح إلى حالة الربط التي اكتملت وجاهزة للاستخدام. |
kState_Completing
|
حالة الربط التي أوشكت على الاكتمال. |
kState_Incomplete
|
الحالة الأولية (والنهائية) للربط. |
السمات العامة
mAuthMode
WeaveAuthMode mAuthMode
وضع مصادقة Weave المطلوب استخدامه.
(READ_ONLY)
وهذا هو وضع المصادقة المستخدم في جميع الاتصالات التي تحكمها عملية الربط هذه.
mConnection
WeaveConnection * mConnection
مؤشر إلى اتصال Weave المستخدَم حاليًا في عملية الربط هذه.
(للقراءة فقط)
قد يتم إعداد عمليات ربط TCP من خلال اتصال خارج نطاق الشبكة مباشرةً أو قد يتم تخصيص واحدة عند الانتهاء.
mEngine
ProtocolEngine * mEngine
مؤشر إلى الكائن ProtocolEngine المرتبط بـ Binding هذا.
يتم إتمام الربط بشكل عام في ما يتعلق بمحرك بروتوكول معين، والذي يُستخدم غالبًا كطريقة للوصول إلى MessageLayer. هذا هو المكان الذي نتتبع فيه ذلك.
mPeerNodeId
uint64_t mPeerNodeId
رقم تعريف العقدة 64 بت من هدف الربط.
(للقراءة فقط)
لكل عملية ربط كيان مستهدَف يتم تسميته هنا. بالإضافة إلى معرّف عقدة Weave، قد يقوم هذا بتسمية نقطة نهاية الخدمة.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
يشير هذا المصطلح إلى مؤشر يؤدي إلى كائن ServiceManager (اختياري) لاستخدامه في إكمال عملية الربط هذه.
(للقراءة فقط)
عند الربط بخدمة Weave، قد يتم توفير معرّف نقطة نهاية خدمة 64 بت في وقت الإعداد بدلاً من معرّف عقدة Weave. في هذه الحالة، يجب أيضًا توفُّر كائن ServiceManager لإكمال عملية الربط. لا تتطلب عمليات ربط TCP أو WRMP العادية كائن ServiceManager.
mState
uint8_t mState
حالة عنصر الربط الحالية.
علامة "مكتملة" واحدة فقط يمكن تشغيل العملية في وقت واحد، وعلى أي حال، إذا طلبت إكمال عملية ربط مكتملة، فإنها تستدعي دالة التأكيد على الفور. يتتبّع متغير الحالة أدناه الحالة الحالية ويعمل كعملية تأمين.
mTransport
uint8_t mTransport
تمثّل هذه السمة وسيلة النقل المستخدمة في إكمال عملية الربط هذه.
(للقراءة فقط)
يتم تحديد القيم المحتملة لـ mTransport في DMConstants.h.
وظائف عامة
تجميع
Binding( void )
الدالة الإنشائية التلقائية لكائنات الربط
يؤدي هذا الإجراء إلى محو جميع الحالات الداخلية.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
التعامل مع تأكيد طلب الربط
التفاصيل | |||
---|---|---|---|
المعلمات |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
التعامل مع تعذُّر طلب الربط.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
CompleteConfirm
void CompleteConfirm( void )
التعامل مع تأكيد طلب الربط
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
طلب إكمال عملية ربط
يتم تنفيذ عملية الربط، على الأقل بالنسبة إلى عمليات الربط التي تتطلب بروتوكول TCP، في ما يتعلق بكائن ProtocolEngine معيّنًا يوفر إمكانية الوصول إلى مثيل ExchangeManager.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
||||||
المرتجعات |
بخلاف ذلك، سيتم عرض أي WEAVE_ERROR أثناء محاولة الاتصال.
|
ربط
WEAVE_ERROR Connect( WeaveConnection *aConnection )
أكمل عملية ربط TCP من خلال توفير اتصال مكتمل.
لا يمكن استخدام ربط TCP الذي تم إعداده حديثًا إلى أن تكتمل. عادةً ما يتم تنفيذ ذلك عند الطلب عندما يحاول التطبيق استخدام الربط لإرسال الرسائل، ولكن يمكن إكماله بشكل صريح من خلال توفير اتصال Weave.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
إكمال الإعداد
void Finalize( void )
"غير مكتملة" ربط وتحريره.
قد تتطلب عمليات الربط تنظيفًا، على سبيل المثال إغلاق الاتصال، الذي يتم التعامل معه باستخدام الطريقة Uncomplete() بالإضافة إلى الحالة التي يتم محوها ببساطة إلى حالتها الأولية من خلال الإجراء Free(). وتستدعي هذه الطريقة، إلى حد كبير، الأمرَين معًا.
يُرجى الاطّلاع أيضًا على:إنهاء(WEAVE_ERROR)
إكمال الإعداد
void Finalize( WEAVE_ERROR aErr )
"غير مكتملة" ربط وتحريره.
قد تتطلب عمليات الربط تنظيفًا، على سبيل المثال إغلاق الاتصال، الذي يتم التعامل معه باستخدام الطريقة Uncomplete() بالإضافة إلى الحالة التي يتم محوها ببساطة إلى حالتها الأولية من خلال الإجراء Free(). وتستدعي هذه الطريقة، إلى حد كبير، الأمرَين معًا.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
إنهاء(غير ملغية)
مجانًا
void Free( void )
محو حالة الربط
إعادة كل حالة الربط بدون شروط إلى حالتها الأصلية.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
أنتج كائن ExchangeContext من Binding.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
المرتجعات |
مؤشر إلى كائن ExchangeContext أو NULL عند الفشل.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
التعامل مع تعذُّر الربط.
ويتم استدعاء هذه الطريقة، وبالتالي، استدعاء معالجات طبقة أعلى عند تعذُّر الربط بعد اكتمال العملية، أي بعد استدعاء CompleteConfirm() مع حالة تشير إلى النجاح.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
احرص على إعداد الربط باستخدام رقم تعريف عقدة فقط.
وينتج عن ذلك الربط مع وسيلة النقل التلقائية التي تم ضبطها.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
قيم الإرجاع |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
احرص على إعداد عنصر ربط استنادًا إلى رقم تعريف النظراء وطريقة النقل.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
قيم الإرجاع |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
إعداد كائن ربط بنقطة نهاية خدمة.
وهذه هي طريقة الربط بنقطة نهاية معيَّنة في خدمة Nest. يتطلّب هذا النوع من الربط عملية إكمال متعددة المراحل، قد تشمل تعبئة ذاكرة التخزين المؤقت لدليل الخدمة المحلية أو تعديلها. في الغالب، تكون هذه العملية مخفية عن التطبيق، ولكن هذا يعني أنّه قد يتم تسليم الأخطاء التي تظهر لاحقًا في العملية، وعادةً ما يتم ذلك من خلال حقل "التأكيد" ذي الصلة. طلب الاسترداد، بعد - وأحيانًا بعد فترة طويلة - استخدام الطلب الأصلي لاستخدام (وإكمال) الربط.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
عليك إعداد كائن ربط باستخدام WeaveConnection.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
قيم الإرجاع |
|
IsComplete
bool IsComplete( void )
التحقّق من اكتمال عملية الربط
التفاصيل | |
---|---|
المرتجعات |
true إذا كانت مكتملة أو false في الحالات الأخرى.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
الشيك ملزم مجانًا.
"مجاني" في هذا السياق يعني ببساطة "يحتوي على عقدة نظير محددة ID". IsFree() should be thought of as meaning "has had Free() استدعينا البيانات ولم يتم استخدامها منذ ذلك الحين".
التفاصيل | |
---|---|
المرتجعات |
true إذا كان الربط مجانيًا، وعلى false في الحالات الأخرى.
|
UncompleteRequest
void UncompleteRequest( void )
يتسبب في أن يكون الربط غير مكتمل.
في الأساس، يكون الملزِم في الحقل "غير مكتملة" بعد استدعاء هذه الطريقة، ولكن، بمهارة أكبر، أي حالة ذات صلة غير مضمنة في الربط نفسه، على سبيل المثال اتصال TCP، فينبغي أيضًا. وقد تحتاج التطبيقات إلى استدعاء UncompleteRequest() كجزء من عملية التنظيف عند الخطأ.
يُرجى الاطّلاع أيضًا على:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
يتسبب في أن يكون الربط غير مكتمل.
في الأساس، يكون الملزِم في الحقل "غير مكتملة" بعد استدعاء هذه الطريقة، ولكن، بمهارة أكبر، أي حالة ذات صلة غير مضمنة في الربط نفسه، على سبيل المثال اتصال TCP، فينبغي أيضًا. وقد تحتاج التطبيقات إلى استدعاء UncompleteRequest() كجزء من عملية التنظيف عند الخطأ.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
UncompleteRequest(void)
~الترابط
virtual ~Binding( void )
دالة التلف لكائنات ربط.
يؤدي هذا الإجراء إلى محو جميع الحالات الداخلية وإغلاق الاتصالات المفتوحة، إذا لزم الأمر.