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 )
التعامل مع إشارة إلى تعذُّر الربط
عندما يصبح الربط غير مكتمل، أي عند إغلاق الاتصال فيما يخص ربط بروتوكول التحكم بالنقل، يجب أن يخفق محرك البروتوكول في أي معاملات تعتمد عليه، بما في ذلك طلب معالِجات الحالة الخاصة به. بالإضافة إلى ذلك، يتم تمرير المؤشر غير المكتمل إلى أي كائن من الفئة الفائقة ينفِّذ الشكل البديل لهذه الطريقة والذي يأخذ معرّف نظير.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
التعامل مع إشارة إلى أنّ عملية الربط أصبحت غير مكتملة
يجب أن تستخدم الطبقات الأعلى التي تريد أن يتم إبلاغها بفشل الربط هذه الطريقة، التي تمرر ببساطة معرف النظير مع تقرير الحالة. في الواقع، بما أنّ هذه الطريقة لاغية افتراضية، يجب أن يتم تنفيذ أي فئة فرعية من النوع DMClient أو DMPublisher.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Init
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 )