nl :: نسج:: مظهر:: 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)
GetBinding (const uint64_t & aPeerNodeId)
NewBinding (void)
StartTransaction ( DMTransaction *aTransaction, Binding *aBinding)
StartTransaction ( DMTransaction *aTransaction)
StatusResponse ( ExchangeContext *aExchangeCtx, StatusReport & aStatus)

الطبقات

نيكولا لانغ :: :: نسج الملامح :: :: DataManagement_Legacy ProtocolEngine :: DMTransaction

السمات المحمية

mBindingTable

Binding mBindingTable[kBindingTableSize]

و ProtocolEngine يحتوي على جدول ملزم، إذا كان المحرك سوف يكون مسؤولا عن أي شيء أبعد من مجرد تلقي الإخطارات البث، وربما يحتاج لاحتواء إدخال واحد على الأقل.

يتم فهرسة الارتباطات بشكل عام بواسطة معرف العقدة. ما يعنيه هذا هو أن كل محرك يمكن أن يكون له ارتباط واحد فقط بنقطة نهاية خدمة معينة.

تحتوي مواصفات WDM على فكرة "الربط الافتراضي" وهي مكان إرسال رسائل إذا لم يتم توفير وجهة صريحة. سيتم استخدام هذا في الغالب في أجهزة بسيطة للغاية مع رابط واحد أو عدد صغير من الارتباطات ، ولأغراض أخرى ، سيكون أول رابط تم تكوينه.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

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

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

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

بمجرد اكتمال الربط ، يمر محرك البروتوكول عبر جدول المعاملات ويبدأ أي معاملات تعتمد على هذا الربط.

تفاصيل
المعلمات
[in] aBinding
مؤشر إلى الربط المكتمل.
عائدات
WEAVE_NO_ERROR على النجاح. وإلا إرجاع WEAVE_ERROR يعكس عدم القدرة على بدء معاملة.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

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

عندما يفشل طلب الربط ، يجب أن يمر محرك البروتوكول عبر جدول المعاملات ويفشل أي معاملات اعتمادًا على الربط.

تفاصيل
المعلمات
[in] aBinding
مؤشر إلى فشل الربط.
[in] aReport
مرجع إلى كائن StatusReport يوضح بالتفصيل سبب الفشل.
عائدات

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

اطلب ربطًا باستخدام معرف عقدة نظير معروف ومحدد النقل.

نظرًا لمعرف عقدة النظير ومواصفات النقل ، يُنشئ هذا الطلب ارتباطًا لذلك النظير. سيتطلب العطاء استكمالًا إضافيًا فقط إذا كان النقل هو TCP. إذا كان الارتباط بالنظير موجودًا بالفعل ، فيتم إعادة استخدامه.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف عقدة 64 بت للكيان النظير الذي يعد هدف الربط.
[in] aTransport
النقل للاستخدام.
عائدات
WEAVE_NO_ERROR على نجاح أو WEAVE_ERROR_NO_MEMORY إذا كان الجدول ملزم ممتلئ. وإلا إرجاع WEAVE_ERROR يعكس عدم تهيئة ملزمة.
أنظر أيضا:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

الارتباط بنظير معروف باستخدام النقل الافتراضي.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف عقدة 64 بت للكيان النظير الذي يعد هدف الربط.
عائدات
WEAVE_NO_ERROR على النجاح. وإلا إرجاع WEAVE_ERROR يعكس فشل عملية الربط.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

اطلب ربطًا باستخدام اتصال Weave نشط.

يمكن أيضًا إنشاء ارتباط باستخدام اتصال موجود ومفتوح. لاحظ أن الارتباطات التي تم إنشاؤها بهذه الطريقة لا تتطلب استكمالًا إضافيًا.

تفاصيل
المعلمات
[in] aConnection
مؤشر لاتصال نسج ليستخدمه الربط.
عائدات
WEAVE_NO_ERROR على نجاح أو WEAVE_ERROR_NO_MEMORY إذا كان الجدول ملزم ممتلئ. وبخلاف ذلك ، يتم إرجاع خطأ يعكس فشل بدء الربط.

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

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

تعامل مع إشارة إلى فشل الربط.

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

تفاصيل
المعلمات
[in] aBinding
مؤشر إلى فشل الربط.
[in] aReport
مرجع إلى كائن StatusReport يوضح بالتفصيل سبب الفشل.

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

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

تعامل مع إشارة إلى أن الربط أصبح غير مكتمل.

يجب أن تستخدم الطبقات العليا التي تريد إعلامها بفشل الربط هذه الطريقة ، والتي تقوم ببساطة بتمرير معرف النظير مع تقرير الحالة. في الواقع، لأن هذا الأسلوب هو الفراغ الظاهري، أي DMClient أو DMPublisher يجب فئة فرعية توفر التنفيذ.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف 64 بت لعقدة النظير أو نقطة نهاية الخدمة التي تمثل هدف الربط الفاشل.
[in] aReport
مرجع إلى كائن StatusReport يوضح بالتفصيل سبب الفشل.

فيه

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
)

اطلب التراجع عن الربط وإزالته من جدول الربط.

عندما يكون الارتباط "غير مرتبط" ، يجب إزالة أي معاملات تعتمد عليه حاليًا أيضًا. تقوم هذه الطريقة بإنهاء جميع المعاملات مع هذا الربط تلقائيًا.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف عقدة 64 بت أو نقطة نهاية الخدمة التي تعرف الارتباط.
أنظر أيضا:
UnbindRequest (const uint64_t ، WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

اطلب التراجع عن الربط وإزالته من جدول الربط.

عندما يكون الربط "غير مرتبط" ، يجب إزالة أي معاملات تعتمد عليه حاليًا أيضًا. تقوم هذه الطريقة بإنهاء جميع المعاملات مع هذا الربط تلقائيًا.

تفاصيل
المعلمات
[in] aPeerNodeId
مرجع إلى معرف عقدة 64 بت أو نقطة نهاية الخدمة التي تحدد الربط.
[in] aErr
WEAVE_NO_ERROR إذا لم يكن هناك سبب محدد لطلب إلغاء الربط هذا ، وإلا فسيتم تمرير سبب الخطأ.
أنظر أيضا:
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
)

المعاملات الفاشلة

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

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

virtual void Finalize(
  void
)

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

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

إنهاء المعاملات

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

ابدأ المعاملة

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

ابدأ المعاملة

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

الحالة: الاستجابة

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)