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::DMPpublisher

سازندگان و ویرانگرها

ProtocolEngine (void)
~ProtocolEngine (void)

ویژگی های محافظت شده

mBindingTable [kBindingTableSize]
ProtocolEngine یک جدول الزام آور دارد که اگر موتور قرار است مسئول هر چیزی فراتر از دریافت اعلان های پخش باشد، احتمالاً باید حداقل یک ورودی داشته باشد.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

توابع عمومی

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
تأییدیه که یک درخواست bind با موفقیت تکمیل شده است را کنترل کنید.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
تأییدیه عدم موفقیت درخواست bind را کنترل کنید.
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:: پروفایل ها:: DataManagement_Legacy:: ProtocolEngine:: DMTtransaction

ویژگی های محافظت شده

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine یک جدول الزام آور دارد که اگر موتور قرار است مسئول هر چیزی فراتر از دریافت اعلان های پخش باشد، احتمالاً باید حداقل یک ورودی داشته باشد.

اتصالات به طور کلی توسط شناسه گره ایندکس می شوند. این بدان معنی است که هر موتور فقط می تواند یک اتصال واحد به یک نقطه پایانی سرویس داشته باشد.

مشخصات WDM دارای مفهوم "پیوند پیش فرض" است که در صورت عدم ارائه مقصد صریح، مکانی است که پیام ها می روند. این بیشتر در دستگاه‌های بسیار ساده با یک صحافی یا تعداد کمی صحافی استفاده می‌شود و برای اهداف دیگر، اولین اتصال تشکیل‌شده است.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

توابع عمومی

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

تأییدیه که یک درخواست bind با موفقیت تکمیل شده است را کنترل کنید.

هنگامی که یک اتصال کامل شد، موتور پروتکل از جدول تراکنش می گذرد و هر تراکنش وابسته به آن اتصال را شروع می کند.

جزئیات
مولفه های
[in] aBinding
اشاره گر به صحافی کامل شده.
برمی گرداند
WEAVE_NO_ERROR در موفقیت. در غیر این صورت یک WEAVE_ERROR نشان دهنده ناتوانی در شروع یک تراکنش است.

BindConfirm

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

تأییدیه عدم موفقیت درخواست bind را کنترل کنید.

هنگامی که یک درخواست bind با شکست مواجه می شود، موتور پروتکل باید از جدول تراکنش عبور کند و بسته به اتصال، هر تراکنش را با شکست مواجه کند.

جزئیات
مولفه های
[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 که منعکس کننده شکست عملیات bind است را برگردانید.

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 اگر جدول صحافی پر است. در غیر این صورت خطایی را بازگردانید که منعکس کننده شکست در اولیه سازی اتصال است.

نشان ناقص

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 اگر دلیل خاصی برای این درخواست unbind وجود نداشته باشد، در غیر این صورت علت خطا منتقل می شود.
همچنین ببینید:
UnbindRequest(const uint64_t)

~موتور پروتکل

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
)

Fail Transactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

نهایی کردن

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

Finalize TransactionTable

void FinalizeTransactionTable(
  void
)

نهایی کردن معاملات

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
)