nl :: نسج:: مظهر:: DataManagement_Legacy :: ربط
#include <src/lib/profiles/data-management/Legacy/Binding.h>
و تجليد الطبقة تدير الدولة الاتصالات نيابة عن كيان التطبيق باستخدام الحياكة.
ملخص
عندما يريد أحد التطبيقات استخدام Weave للتواصل مع كيان بعيد ، توجد مجموعة متنوعة من الخيارات. و تجليد الطبقة الحضائر هذه الخيارات ويرتب لهم في مثل هذه الطريقة التي الاشياء سهل سهل والاشياء أكثر صعوبة هو على الأقل لين العريكة. تشمل الخيارات المغطاة:
- اتصال UDP أحادي الإرسال مع عقدة نظير معروفة.
- بث UDP مع أي عقدة.
- اتصال WRMP أحادي الإرسال مع عقدة نظير معروفة.
- اتصالات TCP مع عقدة نظير معروفة.
- اتصالات TCP مع نقطة نهاية خدمة معروفة باستخدام مثيل مدير الخدمة لإعداد الأشياء.
- اتصالات TCP القائمة على اتصال محدد مسبقًا.
البنائين والمدمرين | |
---|---|
Binding (void) منشئ الافتراضي ل تجليد الكائنات. | |
~Binding (void) والمدمر ل ربط الكائنات. |
الأنواع العامة | |
---|---|
@165 { | تعداد مجموعة تجليد الدول الكائن. |
السمات العامة | |
---|---|
mAuthMode | WeaveAuthMode وضع مصادقة Weave المراد استخدامه. |
mConnection | مؤشر إلى اتصال Weave المستخدم حاليًا في هذا الربط. |
mEngine | مؤشر إلى ProtocolEngine الكائن المتعلقة بهذا الربط . |
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 كائن من الربط . |
IncompleteIndication ( StatusReport & aReport) | void التعامل مع فشل الربط. |
Init (const uint64_t & aPeerNodeId) | تهيئة ملزم مع مجرد ID العقدة. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | تهيئة ملزم الكائن على أساس ID الأقران والنقل. |
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
السمات العامة
mAuthMode
WeaveAuthMode mAuthMode
وضع مصادقة Weave المراد استخدامه.
(يقرأ فقط)
هذا هو وضع المصادقة المستخدم في جميع الاتصالات التي يحكمها هذا الربط.
mConnection
WeaveConnection * mConnection
مؤشر إلى اتصال Weave المستخدم حاليًا في هذا الربط.
(يقرأ فقط)
يمكن تهيئة ارتباطات TCP باستخدام اتصال مباشرة من الخفاش أو قد يتم تخصيص واحد في وقت الإكمال.
محرك
ProtocolEngine * mEngine
مؤشر إلى ProtocolEngine الكائن المتعلقة بهذا الربط .
يكتمل الربط بشكل عام فيما يتعلق بمحرك بروتوكول معين ، والذي يستخدم في الغالب كطريقة للوصول إلى 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.
الوظائف العامة
أكمل
void CompleteConfirm( WeaveConnection *aConnection )
معالجة تأكيد طلب الربط.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
أكمل
void CompleteConfirm( StatusReport & aReport )
معالجة فشل طلب الربط.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
أكمل
void CompleteConfirm( void )
معالجة تأكيد طلب الربط.
طلب كامل
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
طلب استكمال ملزم.
الانتهاء من الربط هو، على الأقل بالنسبة الارتباطات التي تتطلب TCP، نفذت فيما يتعلق معين ProtocolEngine الكائن، الذي يوفر الوصول إلى مثيل ExchangeManager.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
| ||||||
عائدات | خلاف ذلك، أي WEAVE_ERROR عاد أثناء محاولة الاتصال. |
الاتصال
WEAVE_ERROR Connect( WeaveConnection *aConnection )
أكمل ربط TCP من خلال توفير اتصال مكتمل.
لا يمكن استخدام ربط TCP الذي تمت تهيئته حديثًا حتى يكتمل. عادةً ما يتم ذلك عند الطلب عندما يحاول التطبيق الاستفادة من الربط لإرسال الرسائل ولكن يمكن أيضًا إكماله بشكل صريح من خلال توفير اتصال Weave.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
وضع اللمسات الأخيرة
void Finalize( void )
"غير مكتمل" ملزم وتحريره.
قد يكون الربط الدولة يتطلب تنظيف، على سبيل المثال إغلاق الصدد، والتي تتم معالجتها من قبل طريقة Uncomplete () بالإضافة إلى الدولة التي تمسح ببساطة إلى حالته الأولية من قبل مجانا () الأسلوب. هذه الطريقة ، من أجل الراحة إلى حد كبير ، تستدعي كليهما.
أنظر أيضا:إنهاء (WEAVE_ERROR)
وضع اللمسات الأخيرة
void Finalize( WEAVE_ERROR aErr )
"غير مكتمل" ملزم وتحريره.
قد يكون الربط الدولة يتطلب تنظيف، على سبيل المثال إغلاق الصدد، والتي تتم معالجتها من قبل طريقة Uncomplete () بالإضافة إلى الدولة التي تمسح ببساطة إلى حالته الأولية من قبل مجانا () الأسلوب. هذه الطريقة ، من أجل الراحة إلى حد كبير ، تستدعي كليهما.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
إنهاء (باطل)
حر
void Free( void )
امسح الحالة الملزمة.
إعادة جميع الحالات الملزمة إلى حالتها الأصلية دون قيد أو شرط.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
إنتاج ExchangeContext كائن من الربط .
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
عائدات | مؤشر إلى ExchangeContext الكائن أو NULL على الفشل. |
إشارة غير كاملة
void IncompleteIndication( StatusReport & aReport )
التعامل مع فشل الربط.
يتم استدعاء هذا الأسلوب، وهذا بدوره، يتضرع معالجات طبقة أعلى عند الربط فشلت بعد الانتهاء، أي بعد CompleteConfirm () قد احتج بها مع حالة نجاح تدل.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
CompleteConfirm (StatusReport وaReport) .
فيه
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
تهيئة ملزم مع مجرد ID العقدة.
ينتج عن هذا ارتباط مع النقل الافتراضي الذي تم تكوينه.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
فيه
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
تهيئة ملزم الكائن على أساس ID الأقران والنقل.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
فيه
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
تهيئة ربط الكائن إلى نقطة نهاية الخدمة.
هذه هي الطريقة التي تلتزم بها بنقطة نهاية معينة في خدمة Nest. يتطلب الربط من هذا النوع عملية إكمال متعددة المراحل ، والتي قد تتضمن ملء أو تحديث ذاكرة التخزين المؤقت لدليل الخدمة المحلية. بالنسبة للجزء الأكبر ، تكون هذه العملية مخفية عن التطبيق ولكنها تعني أن الأخطاء التي تظهر لاحقًا في العملية قد يتم تسليمها ، عادةً عبر رد الاتصال "تأكيد" ذي الصلة ، بعد - أحيانًا بعد فترة طويلة - الطلب الأصلي للاستخدام (وإكماله) الترابط.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
فيه
WEAVE_ERROR Init( WeaveConnection *aConnection )
تهيئة ربط كائن مع WeaveConnection .
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
مكتمل
bool IsComplete( void )
تحقق من اكتمال الربط.
تفاصيل | |
---|---|
عائدات | صحيح إذا كان كاملاً ، خطأ على خلاف ذلك. |
CompleteRequest (ProtocolEngine * aEngine)
مجاني
bool IsFree( void )
الشيك هو ملزم مجاني.
تعني كلمة "مجاني" في هذا السياق ببساطة أن "لديه معرف عقدة نظير محدد". IsFree () يجب اعتبار المعنى "تمت زيارتها مجانا () دعا عليه ولم تستخدم منذ".
تفاصيل | |
---|---|
عائدات | صحيح إذا كان الربط مجانيًا أو غير صحيح بخلاف ذلك. |
طلب غير مكتمل
void UncompleteRequest( void )
يتسبب في أن يكون الربط غير مكتمل.
بشكل أساسي ، يجب أن يكون الارتباط في حالة "غير مكتمل" بعد استدعاء هذه الطريقة عليه ، ولكن بشكل أكثر دقة ، يجب تنظيف أي حالة ذات صلة غير واردة في الربط نفسه ، على سبيل المثال اتصال TCP. تطبيقات قد تنظر استدعاء UncompleteRequest () كجزء من عملية التنظيف على خطأ.
أنظر أيضا:طلب غير كامل (WEAVE_ERROR)
طلب غير مكتمل
void UncompleteRequest( WEAVE_ERROR aErr )
يتسبب في أن يكون الربط غير مكتمل.
بشكل أساسي ، يجب أن يكون الارتباط في حالة "غير مكتمل" بعد استدعاء هذه الطريقة عليه ، ولكن بشكل أكثر دقة ، يجب تنظيف أي حالة ذات صلة غير واردة في الربط نفسه ، على سبيل المثال اتصال TCP. تطبيقات قد تنظر استدعاء UncompleteRequest () كجزء من عملية التنظيف على خطأ.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
طلب غير مكتمل (باطل)
~ ملزمة
virtual ~Binding( void )
والمدمر ل ربط الكائنات.
يمسح جميع الحالات الداخلية ويغلق الاتصالات المفتوحة إذا لزم الأمر.