nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
هذه فئة تجريدية.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
فئة محرك بروتوكول WDM.
ملخّص
يحتوي كيان إدارة البيانات، أو العميل أو الناشر، على مكوّن محرّك بروتوكول ومكوِّن مدير البيانات. تمثل هذه الفئة المجرّدة الميزات الشائعة لمحرك البروتوكول.
الاكتساب
الفئات الفرعية المعروفة المباشرة:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
الدلالة والهياكل |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
السمات المحمية |
|
---|---|
mBindingTable[kBindingTableSize]
|
يتضمن ProtocolEngine جدولًا ملزمًا يحتوي على إدخال واحد على الأقل إذا كان المحرك سيكون مسؤولاً عن أي شيء بخلاف تلقي إشعارات البث فحسب.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
الدوال العامة |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
معالجة التأكيد بأنّ طلب الربط قد اكتمل بنجاح
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
معالجة التأكيد بتعذُّر طلب الربط.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
اطلب إجراء ربط باستخدام رقم تعريف عقدة نظيرة معروفة ومحدِّد نقل.
|
BindRequest(const uint64_t & aPeerNodeId)
|
الربط بنظير معروف باستخدام طريقة النقل التلقائية
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
يمكنك طلب إجراء ربط باستخدام اتصال Weave نشط.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
التعامل مع إشارة إلى تعذُّر إجراء عملية الربط
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
معالجة إشارة إلى أن الربط أصبح غير مكتمل.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
طلب التراجع عن الربط وإزالته من جدول الربط.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
طلب التراجع عن الربط وإزالته من جدول الربط.
|
الدوال المحمية |
|
---|---|
Clear(void)
|
void
|
ClearBindingTable(void)
|
void
|
ClearTransactionTable(void)
|
void
|
DequeueTransaction(DMTransaction *aTransaction)
|
void
|
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
EnqueueTransaction(DMTransaction *aTransaction)
|
|
FailTransactions(Binding *aBinding, StatusReport & aReport)
|
bool
|
Finalize(void)
|
virtual void
|
FinalizeBindingTable(void)
|
void
|
FinalizeTransactionTable(void)
|
void
|
FinalizeTransactions(Binding *aBinding)
|
void
|
FromExchangeCtx(ExchangeContext *aExchangeCtx)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
صفوف |
|
---|---|
nl:: |
السمات المحمية
mBindingTable
Binding mBindingTable[kBindingTableSize]
يتضمن ProtocolEngine جدولًا ملزمًا يحتوي على إدخال واحد على الأقل إذا كان المحرك سيكون مسؤولاً عن أي شيء بخلاف تلقي إشعارات البث فحسب.
تتم فهرسة عمليات الربط بشكل عام حسب رقم تعريف العقدة. وهذا يعني أن كل محرك يمكن أن يكون له ارتباط واحد فقط بنقطة نهاية خدمة معينة.
تتضمن مواصفات WDM مفهوم "الربط الافتراضي" الذي ينتقل إليه الرسائل في حال عدم توفير وجهة صريحة. وغالبًا ما تُستخدم هذه الطريقة في الأجهزة البسيطة جدًا ذات الربط الواحد أو عدد صغير من عمليات الربط، ولأغراض أخرى، ستكون عملية الربط الأولى فقط.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
الدوال العامة
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
معالجة التأكيد بأنّ طلب الربط قد اكتمل بنجاح
بعد اكتمال الربط، ينتقل محرّك البروتوكول إلى جدول المعاملات ويبدأ أي معاملات تعتمد على هذا الربط.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
WEAVE_NO_ERROR بنجاح. بخلاف ذلك، اعرض خطأ WEAVE_ERROR يشير إلى عدم القدرة على بدء معاملة.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
معالجة التأكيد بتعذُّر طلب الربط.
عندما يفشل طلب ربط، يجب أن يمر محرك البروتوكول بجدول المعاملات ويفشل في أي معاملات اعتمادًا على الربط.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
المرتجعات |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
اطلب إجراء ربط باستخدام رقم تعريف عقدة نظيرة معروفة ومحدِّد نقل.
بالنظر إلى رقم تعريف عقدة نظير ومواصفات نقل، ينشئ هذا الطلب رابطًا لذلك النظير. يتطلب تقديم عروض الأسعار إكمالًا إضافيًا فقط إذا كان النقل عبارة عن بروتوكول التحكم بالنقل. في حال توفُّر رابط حالي، تتم إعادة استخدامه.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
المرتجعات |
WEAVE_NO_ERROR عند النجاح أو WEAVE_ERROR_NO_MEMORY إذا كان جدول الربط ممتلئ. وبخلاف ذلك، يتم عرض خطأ WEAVE_ERROR يشير إلى تعذّر إعداد الربط.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
الربط بنظير معروف باستخدام طريقة النقل التلقائية
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
WEAVE_NO_ERROR بنجاح. وبخلاف ذلك، يمكنك عرض WEAVE_ERROR التي توضح إخفاق عملية الربط.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
يمكنك طلب إجراء ربط باستخدام اتصال Weave نشط.
قد يتم أيضًا إنشاء ربط باستخدام اتصال موجود ومفتوح. تجدر الإشارة إلى أنّ عمليات الربط التي يتمّ إنشاؤها بهذه الطريقة لا تتطلّب إكمالًا إضافيًا.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
WEAVE_NO_ERROR عند النجاح أو WEAVE_ERROR_NO_MEMORY إذا كان جدول الربط ممتلئ. إذا لم يتم إجراء ذلك، سيتم عرض خطأ يشير إلى تعذّر بدء عملية الربط.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
التعامل مع إشارة إلى تعذُّر إجراء عملية الربط
عندما يصبح أحد الروابط غير مكتمل، أي عند إغلاق الاتصال لربط بروتوكول التحكم بالنقل، يجب أن يفشل محرك البروتوكول في أي معاملات تعتمد عليه، بما في ذلك استدعاء معالجات الحالة الخاصة به. بالإضافة إلى ذلك، يتم تمرير المؤشر غير المكتمل إلى أي كائن من فئة Supers ينفذ الطريقة البديلة لهذه الطريقة التي تأخذ رقم تعريف نظير.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
معالجة إشارة إلى أن الربط أصبح غير مكتمل.
يجب على الطبقات الأعلى التي تريد أن يتم إبلاغها بفشل الربط استخدام هذه الطريقة، التي تمرر رقم تعريف النظير مع تقرير الحالة. وفي الواقع، بما أن هذه الطريقة باطلة افتراضية، يجب تنفيذ أي فئة فرعية من DMClient أو DMPublisher.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
إنت
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
إنت
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
طلب التراجع عن الربط وإزالته من جدول الربط.
عندما يكون أحد الروابط "غير مرتبط"، يجب إزالة أيّ معاملات تعتمد عليه حاليًا. تُنهي هذه الطريقة جميع المعاملات باستخدام هذا الربط تلقائيًا.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
طلب التراجع عن الربط وإزالته من جدول الربط.
عندما يكون أحد الروابط "غير مرتبط"، يجب إزالة أيّ معاملات تعتمد عليه حاليًا. تُنهي هذه الطريقة جميع المعاملات باستخدام هذا الربط تلقائيًا.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
الدوال المحمية
محو
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
FailTransactions
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
الصياغة النهائية
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTransactions
void FinalizeTransactions( Binding *aBinding )
FromExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
NewBinding
Binding * NewBinding( void )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )