nl :: نسج:: مظهر:: DataManagement_Legacy :: ربط

#include <src/lib/profiles/data-management/Legacy/Binding.h>

و تجليد الطبقة تدير الدولة الاتصالات نيابة عن كيان التطبيق باستخدام الحياكة.

ملخص

عندما يريد أحد التطبيقات استخدام Weave للتواصل مع كيان بعيد ، توجد مجموعة متنوعة من الخيارات. و تجليد الطبقة الحضائر هذه الخيارات ويرتب لهم في مثل هذه الطريقة التي الاشياء سهل سهل والاشياء أكثر صعوبة هو على الأقل لين العريكة. تشمل الخيارات المغطاة:

  • اتصال UDP أحادي الإرسال مع عقدة نظير معروفة.
  • بث UDP مع أي عقدة.
  • اتصال WRMP أحادي الإرسال مع عقدة نظير معروفة.
  • اتصالات TCP مع عقدة نظير معروفة.
  • اتصالات TCP مع نقطة نهاية خدمة معروفة باستخدام مثيل مدير الخدمة لإعداد الأشياء.
  • اتصالات TCP القائمة على اتصال محدد مسبقًا.

البنائين والمدمرين

Binding (void)
منشئ الافتراضي ل تجليد الكائنات.
~Binding (void)
والمدمر ل ربط الكائنات.

الأنواع العامة

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
تعداد
مجموعة تجليد الدول الكائن.

السمات العامة

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

مجموعة تجليد الدول الكائن.

الخصائص
kState_Complete

حالة و التجليد التي هي كاملة وجاهزة للاستخدام.

kState_Completing

حالة و التجليد التي هي في طور الانتهاء.

kState_Incomplete

الحالة الأولية (والأخيرة) من الربط .

السمات العامة

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.

الوظائف العامة

ربط

 Binding(
  void
)

منشئ الافتراضي ل تجليد الكائنات.

يزيل كل حالة داخلية.

أكمل

void CompleteConfirm(
  WeaveConnection *aConnection
)

معالجة تأكيد طلب الربط.

تفاصيل
المعلمات
[in] aConnection
مؤشر إلى نشطة WeaveConnection إلى الهدف ملزم.

أكمل

void CompleteConfirm(
  StatusReport & aReport
)

معالجة فشل طلب الربط.

تفاصيل
المعلمات
[in] aReport
مرجع إلى كائن StatusReport يصف الفشل.

أكمل

void CompleteConfirm(
  void
)

معالجة تأكيد طلب الربط.

طلب كامل

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

طلب استكمال ملزم.

الانتهاء من الربط هو، على الأقل بالنسبة الارتباطات التي تتطلب TCP، نفذت فيما يتعلق معين ProtocolEngine الكائن، الذي يوفر الوصول إلى مثيل ExchangeManager.

تفاصيل
المعلمات
[in] aEngine
مؤشر إلى ProtocolEngine الكائن نيابة التي يتم تنفيذها على الانتهاء.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INCORRECT_STATE
إذا كان الربط قد اكتمل بالفعل.
WEAVE_ERROR_NO_MEMORY
إذا كان الاتصال مطلوبًا ولم يتوفر أي شيء
عائدات
خلاف ذلك، أي WEAVE_ERROR عاد أثناء محاولة الاتصال.

الاتصال

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

أكمل ربط TCP من خلال توفير اتصال مكتمل.

لا يمكن استخدام ربط TCP الذي تمت تهيئته حديثًا حتى يكتمل. عادةً ما يتم ذلك عند الطلب عندما يحاول التطبيق الاستفادة من الربط لإرسال الرسائل ولكن يمكن أيضًا إكماله بشكل صريح من خلال توفير اتصال Weave.

تفاصيل
المعلمات
[in] aConnection
مؤشر إلى WeaveConnection تستخدم لاستكمال الربط.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INCORRECT_STATE
إذا كان الربط لديه اتصال بالفعل.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الاتصال NULL.

وضع اللمسات الأخيرة

void Finalize(
  void
)

"غير مكتمل" ملزم وتحريره.

قد يكون الربط الدولة يتطلب تنظيف، على سبيل المثال إغلاق الصدد، والتي تتم معالجتها من قبل طريقة Uncomplete () بالإضافة إلى الدولة التي تمسح ببساطة إلى حالته الأولية من قبل مجانا () الأسلوب. هذه الطريقة ، من أجل الراحة إلى حد كبير ، تستدعي كليهما.

أنظر أيضا:
إنهاء (WEAVE_ERROR)

وضع اللمسات الأخيرة

void Finalize(
  WEAVE_ERROR aErr
)

"غير مكتمل" ملزم وتحريره.

قد يكون الربط الدولة يتطلب تنظيف، على سبيل المثال إغلاق الصدد، والتي تتم معالجتها من قبل طريقة Uncomplete () بالإضافة إلى الدولة التي تمسح ببساطة إلى حالته الأولية من قبل مجانا () الأسلوب. هذه الطريقة ، من أجل الراحة إلى حد كبير ، تستدعي كليهما.

تفاصيل
المعلمات
[in] aErr
يشير رمز الخطأ هذا إلى سبب هذا الطلب. إذا لم يكن WEAVE_NO_ERROR ، فقد يتم إحباط اتصال TCP.
أنظر أيضا:
إنهاء (باطل)

حر

void Free(
  void
)

امسح الحالة الملزمة.

إعادة جميع الحالات الملزمة إلى حالتها الأصلية دون قيد أو شرط.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

إنتاج ExchangeContext كائن من الربط .

تفاصيل
المعلمات
[in] aExchangeMgr
مؤشر إلى مدير الصرف لطلب سياق منه.
[in] aAppState
يتم تخزين مؤشر الفراغ لكائن حالة التطبيق في سياق التبادل لاستخدامه لاحقًا.
عائدات
مؤشر إلى ExchangeContext الكائن أو NULL على الفشل.

إشارة غير كاملة

void IncompleteIndication(
  StatusReport & aReport
)

التعامل مع فشل الربط.

يتم استدعاء هذا الأسلوب، وهذا بدوره، يتضرع معالجات طبقة أعلى عند الربط فشلت بعد الانتهاء، أي بعد CompleteConfirm () قد احتج بها مع حالة نجاح تدل.

تفاصيل
المعلمات
[in] aReport
إحالة إلى تقرير حالة يصف الخطأ الذي حدث.
أنظر أيضا:
CompleteConfirm (StatusReport وaReport) .

فيه

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

تهيئة ملزم مع مجرد ID العقدة.

ينتج عن هذا ارتباط مع النقل الافتراضي الذي تم تكوينه.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف 64 بت لهدف الربط.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الربط غير محدد بشكل كافٍ.

فيه

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

تهيئة ملزم الكائن على أساس ID الأقران والنقل.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع لمعرف عقدة 64 بت لهدف الربط.
[in] aTransport
مواصفات النقل من WeaveTransportOption.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الربط غير محدد بشكل كافٍ.

فيه

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

تهيئة ربط الكائن إلى نقطة نهاية الخدمة.

هذه هي الطريقة التي تلتزم بها بنقطة نهاية معينة في خدمة Nest. يتطلب الربط من هذا النوع عملية إكمال متعددة المراحل ، والتي قد تتضمن ملء أو تحديث ذاكرة التخزين المؤقت لدليل الخدمة المحلية. بالنسبة للجزء الأكبر ، تكون هذه العملية مخفية عن التطبيق ولكنها تعني أن الأخطاء التي تظهر لاحقًا في العملية قد يتم تسليمها ، عادةً عبر رد الاتصال "تأكيد" ذي الصلة ، بعد - أحيانًا بعد فترة طويلة - الطلب الأصلي للاستخدام (وإكماله) الترابط.

تفاصيل
المعلمات
[in] aServiceEpt
مرجع لمعرف 64 بت لنقطة نهاية Weave Service ذات الأهمية.
[in] aServiceMgr
مؤشر لمثيل مدير الخدمة لاستخدامه في البحث عن طبقة خدمة والاتصال بها.
[in] aAuthMode
وضع المصادقة المستخدم في الاتصال.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الربط غير محدد بشكل كافٍ.

فيه

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

تهيئة ربط كائن مع WeaveConnection .

تفاصيل
المعلمات
[in] aConnection
مؤشر إلى WeaveConnection لاستخدام كأساس لربط ..
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الربط غير محدد بشكل كافٍ.

مكتمل

bool IsComplete(
  void
)

تحقق من اكتمال الربط.

تفاصيل
عائدات
صحيح إذا كان كاملاً ، خطأ على خلاف ذلك.
أنظر أيضا:
CompleteRequest (ProtocolEngine * aEngine)

مجاني

bool IsFree(
  void
)

الشيك هو ملزم مجاني.

تعني كلمة "مجاني" في هذا السياق ببساطة أن "لديه معرف عقدة نظير محدد". IsFree () يجب اعتبار المعنى "تمت زيارتها مجانا () دعا عليه ولم تستخدم منذ".

تفاصيل
عائدات
صحيح إذا كان الربط مجانيًا أو غير صحيح بخلاف ذلك.

طلب غير مكتمل

void UncompleteRequest(
  void
)

يتسبب في أن يكون الربط غير مكتمل.

بشكل أساسي ، يجب أن يكون الارتباط في حالة "غير مكتمل" بعد استدعاء هذه الطريقة عليه ، ولكن بشكل أكثر دقة ، يجب تنظيف أي حالة ذات صلة غير واردة في الربط نفسه ، على سبيل المثال اتصال TCP. تطبيقات قد تنظر استدعاء UncompleteRequest () كجزء من عملية التنظيف على خطأ.

أنظر أيضا:
طلب غير كامل (WEAVE_ERROR)

طلب غير مكتمل

void UncompleteRequest(
  WEAVE_ERROR aErr
)

يتسبب في أن يكون الربط غير مكتمل.

بشكل أساسي ، يجب أن يكون الارتباط في حالة "غير مكتمل" بعد استدعاء هذه الطريقة عليه ، ولكن بشكل أكثر دقة ، يجب تنظيف أي حالة ذات صلة غير واردة في الربط نفسه ، على سبيل المثال اتصال TCP. تطبيقات قد تنظر استدعاء UncompleteRequest () كجزء من عملية التنظيف على خطأ.

تفاصيل
المعلمات
[in] aErr
إذا لم يكن WEAVE_NO_ERROR ، فسيتم إحباط الاتصال الحالي ، إن وجد ، بدلاً من إغلاقه بأمان.
أنظر أيضا:
طلب غير مكتمل (باطل)

~ ملزمة

virtual  ~Binding(
  void
)

والمدمر ل ربط الكائنات.

يمسح جميع الحالات الداخلية ويغلق الاتصالات المفتوحة إذا لزم الأمر.