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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

صفوف

nl::Weave::Profiles::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
)

اطلب إجراء ربط باستخدام رقم تعريف عقدة نظيرة معروفة ومحدِّد نقل.

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

التفاصيل
المَعلمات
[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 الذي سيتم استخدامه من خلال عملية الربط.
المرتجعات
WEAVE_NO_ERROR عند النجاح أو WEAVE_ERROR_NO_MEMORY إذا كان جدول الربط ممتلئ. إذا لم يتم إجراء ذلك، سيتم عرض خطأ يشير إلى تعذّر بدء عملية الربط.

IncompleteIndication

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

التعامل مع إشارة إلى تعذُّر إجراء عملية الربط

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

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

IncompleteIndication

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
)

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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)