nl:: بافت:: پروفایل ها:: DataManagement_Legacy:: صحافی
#include <src/lib/profiles/data-management/Legacy/Binding.h>
کلاس Binding وضعیت ارتباطات را از طرف یک موجودیت برنامه با استفاده از Weave مدیریت می کند.
خلاصه
هنگامی که یک برنامه می خواهد از Weave برای برقراری ارتباط با یک موجودیت راه دور استفاده کند، گزینه های بسیار متنوعی وجود دارد. کلاس Binding این گزینه ها را جمع می کند و آنها را به گونه ای مرتب می کند که چیزهای آسان آسان و چیزهای دشوارتر حداقل قابل کنترل باشند. گزینه های تحت پوشش عبارتند از:
- ارتباط UDP unicast با یک گره همتا شناخته شده.
- UDP با "هر" گره پخش می شود.
- ارتباط unicast WRMP با یک گره همتا شناخته شده.
- ارتباطات TCP با یک گره همتا شناخته شده.
- ارتباطات TCP با یک نقطه پایانی سرویس شناخته شده با استفاده از یک نمونه مدیر سرویس برای تنظیم موارد.
- ارتباطات TCP بر اساس یک اتصال از پیش ایجاد شده.
سازندگان و ویرانگرها | |
---|---|
Binding (void) سازنده پیش فرض برای Binding اشیاء. | |
~Binding (void) تخریب کننده برای اتصال اشیاء. |
انواع عمومی | |
---|---|
@165 { | enum مجموعه ای از حالت های شی Binding . |
صفات عمومی | |
---|---|
mAuthMode | WeaveAuthMode حالت احراز هویت Weave مورد استفاده قرار می گیرد. |
mConnection | اشاره گر به اتصال Weave که در حال حاضر در این صحافی استفاده می شود. |
mEngine | اشاره گر به شی ProtocolEngine مربوط به این Binding . |
mPeerNodeId | uint64_t شناسه گره 64 بیتی هدف اتصال. |
mServiceMgr | یک اشاره گر به شی (اختیاری) ServiceManager برای استفاده در تکمیل این اتصال. |
mState | uint8_t وضعیت فعلی شی Binding . |
mTransport | uint8_t حمل و نقل مورد استفاده در تکمیل این صحافی . |
توابع عمومی | |
---|---|
CompleteConfirm ( WeaveConnection *aConnection) | void رسیدگی به تایید یک درخواست bind. |
CompleteConfirm ( StatusReport & aReport) | void رسیدگی به شکست یک درخواست bind. |
CompleteConfirm (void) | void رسیدگی به تایید یک درخواست bind. |
CompleteRequest ( ProtocolEngine *aEngine) | درخواست تکمیل یک الزام آور. |
Connect ( WeaveConnection *aConnection) | یک اتصال TCP را با ارائه یک اتصال کامل تکمیل کنید. |
Finalize (void) | void یک صحافی را "ناتمام" کنید و آن را آزاد کنید. |
Finalize ( WEAVE_ERROR aErr) | void یک صحافی را "ناتمام" کنید و آن را آزاد کنید. |
Free (void) | void حالت اتصال را پاک کنید. |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | یک شی ExchangeContext از یک Binding تولید کنید. |
IncompleteIndication ( StatusReport & aReport) | void رسیدگی به شکست یک اتصال. |
Init (const uint64_t & aPeerNodeId) | یک Binding را فقط با شناسه گره راه اندازی کنید. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | یک شی Binding را بر اساس شناسه همتا و انتقال اولیه کنید. |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | یک شی Binding به یک نقطه پایانی سرویس را راه اندازی کنید. |
Init ( WeaveConnection *aConnection) | یک شی Binding را با یک WeaveConnection راه اندازی کنید. |
IsComplete (void) | bool بررسی کنید که آیا یک اتصال کامل است یا خیر. |
IsFree (void) | bool چک یک الزام آور رایگان است. |
UncompleteRequest (void) | void باعث ناقص بودن یک اتصال شود. |
UncompleteRequest ( WEAVE_ERROR aErr) | void باعث ناقص بودن یک اتصال شود. |
انواع عمومی
@165
@165
صفات عمومی
mAuthMode
WeaveAuthMode mAuthMode
حالت احراز هویت Weave مورد استفاده قرار می گیرد.
(READ_ONLY)
این حالت احراز هویت است که در تمام ارتباطات تحت کنترل این اتصال استفاده می شود.
mConnection
WeaveConnection * mConnection
اشاره گر به اتصال Weave که در حال حاضر در این صحافی استفاده می شود.
(فقط خواندنی)
اتصالات TCP ممکن است با یک اتصال مستقیماً خارج از خفاش مقداردهی اولیه شوند یا ممکن است یکی را در زمان تکمیل اختصاص دهند.
موتور من
ProtocolEngine * mEngine
اشاره گر به شی ProtocolEngine مربوط به این Binding .
یک اتصال به طور کلی با توجه به یک موتور پروتکل خاص تکمیل می شود، که بیشتر به عنوان راهی برای دسترسی به MessageLayer استفاده می شود. این جایی است که ما آن را پیگیری می کنیم.
mPeerNodeId
uint64_t mPeerNodeId
شناسه گره 64 بیتی هدف اتصال.
(فقط خواندنی)
هر Binding یک موجودیت هدف دارد که در اینجا نامگذاری شده است. علاوه بر شناسه گره Weave، ممکن است یک نقطه پایانی سرویس را نامگذاری کند.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
یک اشاره گر به شی (اختیاری) ServiceManager برای استفاده در تکمیل این اتصال.
(فقط خواندنی)
هنگام اتصال به سرویس Weave، یک شناسه پایانی سرویس 64 بیتی ممکن است در زمان اولیه به جای شناسه گره Weave ارائه شود. در این مورد، یک شی ServiceManager نیز برای تکمیل اتصال مورد نیاز است. اتصالات TCP یا WRMP معمولی به شی ServiceManager نیاز ندارند.
mState
uint8_t mState
وضعیت فعلی شی Binding .
فقط یک عملیات "کامل" می تواند در هر زمان اجرا شود و در هر صورت، اگر بخواهید یک اتصال کامل شده را تکمیل کنید، فقط تابع تایید را فورا فراخوانی می کند. متغیر حالت زیر وضعیت فعلی را ردیابی می کند و به عنوان قفل عمل می کند.
mTransport
uint8_t mTransport
حمل و نقل مورد استفاده در تکمیل این صحافی .
(فقط خواندنی)
مقادیر ممکن برای mTransport در DMConstants.h تعریف شده است.
توابع عمومی
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
رسیدگی به تایید یک درخواست bind.
جزئیات | |||
---|---|---|---|
پارامترها |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
رسیدگی به شکست یک درخواست bind.
جزئیات | |||
---|---|---|---|
پارامترها |
|
CompleteConfirm
void CompleteConfirm( void )
رسیدگی به تایید یک درخواست bind.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
درخواست تکمیل یک الزام آور.
تکمیل یک اتصال، حداقل برای اتصالهایی که نیاز به TCP دارند، با توجه به یک شی ProtocolEngine خاص انجام میشود که دسترسی به یک نمونه ExchangeManager را فراهم میکند.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
پارامترها |
| ||||||
ارزش های بازگشتی |
| ||||||
برمی گرداند | در غیر این صورت، هر WEAVE_ERROR هنگام تلاش برای اتصال بازگشت. |
اتصال
WEAVE_ERROR Connect( WeaveConnection *aConnection )
یک اتصال TCP را با ارائه یک اتصال کامل تکمیل کنید.
یک اتصال TCP که به تازگی مقداردهی اولیه شده است را نمی توان تا زمانی که تکمیل شود استفاده کرد. معمولاً زمانی که برنامه سعی میکند از اتصال برای ارسال پیام استفاده کند، این کار در صورت تقاضا انجام میشود، اما میتوان آن را به صراحت با ارائه یک اتصال Weave تکمیل کرد.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
پارامترها |
| ||||||
ارزش های بازگشتی |
|
نهایی کردن
void Finalize( void )
یک صحافی را "ناتمام" کنید و آن را آزاد کنید.
Bindingها ممکن است حالتی داشته باشند که نیاز به پاکسازی دارد، مثلاً بسته شدن اتصال، که با روش Uncomplete() مدیریت می شود، علاوه بر حالتی که به سادگی با روش Free() به حالت اولیه پاک می شود. این روش، تا حد زیادی به خاطر راحتی، هر دو را فراخوانی می کند.
همچنین ببینید:نهایی کردن (WEAVE_ERROR)
نهایی کردن
void Finalize( WEAVE_ERROR aErr )
یک صحافی را "ناتمام" کنید و آن را آزاد کنید.
Bindingها ممکن است حالتی داشته باشند که نیاز به پاکسازی دارد، مثلاً بسته شدن اتصال، که با روش Uncomplete() مدیریت می شود، علاوه بر حالتی که به سادگی با روش Free() به حالت اولیه پاک می شود. این روش، تا حد زیادی به خاطر راحتی، هر دو را فراخوانی می کند.
جزئیات | |||
---|---|---|---|
پارامترها |
|
نهایی کردن (باطل)
رایگان
void Free( void )
حالت اتصال را پاک کنید.
بدون قید و شرط تمام حالت های اتصال را به حالت اولیه خود برگردانید.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
یک شی ExchangeContext از یک Binding تولید کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
برمی گرداند | یک اشاره گر به یک شی ExchangeContext یا NULL در صورت شکست. |
نشان ناقص
void IncompleteIndication( StatusReport & aReport )
رسیدگی به شکست یک اتصال.
این متد فراخوانی میشود و به نوبه خود، هنگامی که اتصال پس از تکمیل نشد، یعنی پس از فراخوانی CompleteConfirm () با وضعیتی که نشان دهنده موفقیت است، دستههای لایه بالاتر را فراخوانی میکند.
جزئیات | |||
---|---|---|---|
پارامترها |
|
CompleteConfirm (StatusReport &aReport) .
شروع کنید
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
یک Binding را فقط با شناسه گره راه اندازی کنید.
این منجر به اتصال با انتقال پیش فرض پیکربندی شده می شود.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
ارزش های بازگشتی |
|
شروع کنید
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
یک شی Binding را بر اساس شناسه همتا و انتقال اولیه کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
ارزش های بازگشتی |
|
شروع کنید
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
یک شی Binding به یک نقطه پایانی سرویس را راه اندازی کنید.
به این ترتیب به یک نقطه پایانی خاص در سرویس Nest متصل می شوید. اتصال از این نوع نیاز به یک فرآیند تکمیل چند مرحله ای دارد که ممکن است شامل پر کردن یا به روز رسانی کش دایرکتوری خدمات محلی باشد. در بیشتر موارد، این فرآیند از برنامه پنهان است، اما به این معنی است که خطاهایی که بعداً در فرآیند ایجاد میشوند، معمولاً از طریق پاسخ تماس «تأیید» مربوطه، پس از درخواست اصلی برای استفاده (و تکمیل) - گاهی اوقات مدتها پس از آن - ارائه میشوند. الزام آور
جزئیات | |||||||
---|---|---|---|---|---|---|---|
پارامترها |
| ||||||
ارزش های بازگشتی |
|
شروع کنید
WEAVE_ERROR Init( WeaveConnection *aConnection )
یک شی Binding را با یک WeaveConnection راه اندازی کنید.
جزئیات | |||||
---|---|---|---|---|---|
پارامترها |
| ||||
ارزش های بازگشتی |
|
کامل است
bool IsComplete( void )
بررسی کنید که آیا یک اتصال کامل است یا خیر.
جزئیات | |
---|---|
برمی گرداند | اگر کامل باشد درست، در غیر این صورت نادرست است. |
CompleteRequest (ProtocolEngine *aEngine)
رایگان است
bool IsFree( void )
چک یک الزام آور رایگان است.
"رایگان" در این زمینه به سادگی به این معنی است که "شناسه گره همتا تعریف شده دارد". IsFree() باید به این معنا در نظر گرفته شود که "() Free روی آن فراخوانی شده و از آن زمان استفاده نشده است".
جزئیات | |
---|---|
برمی گرداند | درست است اگر صحافی آزاد باشد، در غیر این صورت نادرست است. |
UncompleteRequest
void UncompleteRequest( void )
باعث ناقص بودن یک اتصال شود.
اساساً، پس از فراخوانی این روش، یک اتصال باید در حالت «ناقص» باشد، اما، بهطور دقیقتر، هر وضعیت مرتبطی که در خود اتصال وجود ندارد، به عنوان مثال اتصال TCP، نیز باید پاک شود. برنامه ها ممکن است فراخوانی UncompleteRequest() را به عنوان بخشی از پاکسازی خطا در نظر بگیرند.
همچنین ببینید:درخواست ناتمام (WEAVE_ERROR)
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
باعث ناقص بودن یک اتصال شود.
اساساً، پس از فراخوانی این روش، یک اتصال باید در حالت «ناقص» باشد، اما، بهطور دقیقتر، هر وضعیت مرتبطی که در خود اتصال وجود ندارد، به عنوان مثال اتصال TCP، نیز باید پاک شود. برنامه ها ممکن است فراخوانی UncompleteRequest() را به عنوان بخشی از پاکسازی خطا در نظر بگیرند.
جزئیات | |||
---|---|---|---|
پارامترها |
|
UncompleteRequest (باطل)
~ صحافی
virtual ~Binding( void )
تخریب کننده برای اتصال اشیاء.
تمام حالت های داخلی را پاک می کند و در صورت لزوم، اتصالات باز را می بندد.