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
)

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

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

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

IncompleteIndication

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

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

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

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

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
)

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

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

التفاصيل
المعلمات
[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
)