nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
كائن المدير لدليل خدمة Weave.
ملخّص
مدير خدمة Weave هو الواجهة الرئيسية للتطبيقات التي تتعامل مع خدمة الدليل. وبناءً على ذلك، يخفي التعقيدات الكامنة في البحث عن إدخال الدليل المرتبط بنقطة نهاية الخدمة، وإجراء بحث نظام أسماء النطاقات على اسم أو أكثر من أسماء المضيفين هناك، ومحاولة الاتصال، وتأمين الاتصال، وما إلى ذلك. وقد تدير أيضًا ذاكرة تخزين مؤقت لمعلومات دليل الخدمة.
الشركات المصنّعة والمُصنّعة |
|
---|---|
WeaveServiceManager(void)
تعمل هذه الطريقة على إعداد مثيل WeaveServiceManager.
|
|
~WeaveServiceManager(void)
تؤدي هذه الطريقة إلى تدمير مثيل WeaveServiceManager.
|
الأنواع العامة |
|
---|---|
@303{
|
تعداد |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
طلب استدعاء للتطبيق تم إجراؤه مباشرةً قبل إنشاء الاتصال |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBeginvoid(*
طلب استدعاء للتطبيق لتحديد وقت طلب دليل الخدمة الصادر |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
طلب استدعاء للتطبيق لإرسال قيم الوقت من استجابة دليل الخدمات |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor دالة موصّل لمعلومات الدليل الجذر. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
يشير ذلك المصطلح إلى معالج لشروط الحالة والأخطاء. |
وظائف عامة |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
اضبط دالة للردّ على المكالمات ليتم استدعاؤها مباشرةً قبل إنشاء الاتصال.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
تلغي هذه الطريقة طلب ربط الحساب.
|
clearCache(void)
|
void
تمحو هذه الطريقة حالة المدير وذاكرة التخزين المؤقت فيه إذا كانت الحالة في الوحدة الطرفية kServiceMgrState_solutionsd، ما يعني أنه تم تلقّي الاستجابة من نقطة نهاية "دليل الخدمة".
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
تطلب هذه الطريقة الاتصال بخدمة Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
تعمل هذه الطريقة على إعداد كائن مدير الخدمة.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
تبحث هذه الطريقة عن معلومات الدليل لنقطة نهاية الخدمة.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
تبحث هذه الطريقة عن معلومات الدليل لنقطة نهاية الخدمة.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
تعالج هذه الطريقة حدث "الإغلاق الناجح للاتصال" الذي يُبلغ عنه سياق تبادل Weave المرتبط.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
تعالج هذه الطريقة حدث اكتمال الاتصال لمعاملة طلب نقطة نهاية الخدمة.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
تتعامل هذه الطريقة مع أي رسالة رد في المحادثة باستخدام خدمة الدليل.
|
onResponseTimeout(void)
|
void
تعالج هذه الطريقة حدث انتهاء المهلة الذي لم يتم فيه تلقّي أي رد من خدمة الدليل.
|
relocate(WEAVE_ERROR aError)
|
void
تنقل هذه الطريقة ذاكرة التخزين المؤقت لدليل الخدمة.
|
relocate(void)
|
void
تنقل هذه الطريقة ذاكرة التخزين المؤقت لدليل الخدمة.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
أضِف إدخال دليل إلغاء اسم المضيف ومعرّف المنفذ في بداية قائمة الأدلة.
|
reset(WEAVE_ERROR aError)
|
void
تؤدي هذه الطريقة إلى إعادة ضبط مدير الخدمة على حالته الأولية.
|
reset(void)
|
void
تؤدي هذه الطريقة إلى إعادة ضبط مدير الخدمة على حالته الأولية.
|
unresolve(WEAVE_ERROR aError)
|
void
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
|
unresolve(void)
|
void
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
|
صفوف |
|
---|---|
nl:: |
تمثّل هذه الفئة معاملة واحدة يديرها مدير الخدمة. |
الأنواع العامة
@303
@303
أماكن إقامة | |
---|---|
kWeave_DefaultSendTimeout
|
عدد المللي ثانية التي يجب تلقّي استجابة لطلب بحث الدليل قبل انتهاء مهلة سياق التبادل. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
استدعاء تطبيق يتم إجراؤه قبل إنشاء الاتصال مباشرةً.
يمكن للتطبيقات استخدام هذا الاستدعاء من أجل مراقبة الوسيطات التي تم تمريرها إلى #WeaveConnection::Connect() أو تغييرها بشكل اختياري أثناء عملية إنشاء اتصال الخدمة. سيتم استدعاء عملية الاستدعاء هذه لكل من الاتصال بنقطة نهاية الخدمة المستهدفة، بالإضافة إلى الاتصال بنقطة نهاية دليل الخدمات في حال ضرورة إجراء البحث في الدليل.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
استدعاء تطبيق لتحديد وقت طلب بحث دليل خدمة صادر.
ويُطلَق على ذلك عندما نكون على وشك إرسال طلب طلب بحث نقطة نهاية الخدمة. وتُستخدم هذه القاعدة للمطابقة مع OnServiceEndpointQueryEnd لتعويض وقت رحلة الرسالة.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
طلب استدعاء للتطبيق لإرسال قيم الوقت من استجابة دليل الخدمات
يتمّ استدعاء هذا الإجراء عند تلقّي معلومات الوقت من ردّ طلب البحث في دليل الخدمات. يُرجى العِلم أنّه لن يتمّ إجراء هذا الإجراء إلا إذا تمّ تحليل الردّ بنجاح وتضمين معلومات الوقت.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
دالة وصول إلى معلومات الدليل الجذر
يجب أن تبدأ في مكان ما وباستخدام دليل الخدمة، يجب أن تبدأ بدليل بديل يحتوي على عنوان خادم يمكنك الوصول إليه في أي شيء آخر. وبما أنّه من المحتمل أن يختلف تصريف هذه المعلومات وأصلها من جهاز إلى آخر، نوفّر هنا إمكانية معاودة الاتصال بهذه المعلومات.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
المرتجعات |
WEAVE_NO_ERROR في حال النجاح، وإلا سيتم إيقاف عملية التحميل.
|
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
يشير ذلك المصطلح إلى معالج لشروط الحالة والأخطاء.
قد يتم إبلاغ مستخدم مدير الخدمة بالمشكلات التي تحدث في محاولة تنفيذ طلب الاتصال بإحدى طريقتين. قد يتلقى تقرير الحالة من الخدمة أو قد يتلقى رسالة WEAVE_ERROR تم إنشاؤها داخليًا. وفي كلتا الحالتين، تأتي المعلومات من خلال معاودة الاتصال هذه.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
وظائف عامة
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
إعداد دالة رد الاتصال التي سيتم طلبها قبل إنشاء الاتصال مباشرةً.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
WeaveServiceManager
WeaveServiceManager( void )
تعمل هذه الطريقة على إعداد مثيل WeaveServiceManager.
تجدر الإشارة إلى ضرورة استدعاء init() لإعداد هذا المثيل بشكل أكبر.
إلغاء
void cancel( uint64_t aServiceEp, void *aAppState )
تلغي هذه الطريقة طلب ربط الحساب.
تلغي هذه الطريقة طلب الاتصال استنادًا إلى معرّف نقطة نهاية الخدمة وعنصر حالة التطبيق الذي تم تمريره في وقت الطلب كمعرّفات. إذا كان هذا هو آخر طلب اتصال، تُزيل هذه الطريقة أيضًا أي حالة انتظار في ما يتعلّق باتصال دليل الخدمات.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
clearCache
void clearCache( void )
تمحو هذه الطريقة حالة المدير وذاكرة التخزين المؤقت فيه إذا كانت الحالة في الوحدة الطرفية kServiceMgrState_solutionsd، ما يعني أنه تم تلقّي الاستجابة من نقطة نهاية "دليل الخدمة".
اتصل
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
تطلب هذه الطريقة الاتصال بخدمة Weave.
هذه هي طلب الاتصال على مستوى أعلى. ويؤدي ذلك إلى إنشاء اتصال آمن بخدمة Weave استنادًا إلى نقطة نهاية الخدمة ووضع المصادقة، أو ينتهي الأمر بتعذُّر إجراء ذلك.
ولا يمكن استدعاء هذه الطريقة إلا بعد نجاح استدعاء الدالة init()، ويمكن إلغاء طلب الاتصال عن طريق cancel().
يمكن استدعاء هذه الطريقة قبل أن يتم ملء ذاكرة التخزين المؤقت المحلية ببيانات من البيانات المتوفرة تلقائيًا أو من رحلة إلى خدمة الدليل. سيضيف مدير الخدمة الطلب إلى قائمة الانتظار قبل التمكّن من تحديد محتوى ذاكرة التخزين المؤقت.
التفاصيل | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||||||||
المرتجعات |
WEAVE_NO_ERROR بشأن النجاح؛ بخلاف ذلك، رمز خطأ ذي صلة.
|
إعداد
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
تعمل هذه الطريقة على إعداد عنصر "مدير الخدمات".
لاستخدامه، يجب بدء تشغيل عنصر مدير الخدمة. بعد استدعاء هذه الطريقة بنجاح، يمكن للعملاء البدء في استدعاء connect() وlookup() وطرق أخرى.
التفاصيل | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||||||||||
المرتجعات |
WEAVE_ERROR_INVALID_ARGUMENT إذا كانت وسيطة الدالة غير صالحة، وإلا WEAVE_NO_ERROR.
|
البحث
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
تبحث هذه الطريقة عن معلومات الدليل لنقطة نهاية الخدمة.
إذا تم حلّ مشكلة دليل الخدمة، أي في حال إجراء عملية connect() بنجاح، ستتم هذه الطريقة تعبئة الكائن HostPortList المقدَّم.
ملاحظة: يتم ربط HostPortList بعنصر WeaveServiceManager، ويظل صالحًا إلى أن يتم محو ذاكرة التخزين المؤقت لدليل الخدمات أو إلى أن يتم إجراء عملية بحث أخرى في دليل الخدمات.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
عرض القيم |
|
البحث
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
تبحث هذه الطريقة عن معلومات الدليل لنقطة نهاية الخدمة.
إذا تم حلّ دليل الخدمة، أي إذا كانت هناك عملية connect() ناجحة، ستعرض هذه الطريقة إدخال دليل وفقًا لمعرّف نقطة نهاية الخدمة.
تكشف هذه الطريقة عن تفاصيل التنفيذ الداخلي لدليل الخدمة، ويجب أن تفضِّل عمليات التنفيذ بشدة استخدام صيغة هذه الطريقة التي تنشئ HostPortList.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
عرض القيم |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
تعالج هذه الطريقة حدث "الإغلاق الناجح للاتصال" الذي يُبلغ عنه سياق تبادل Weave المرتبط.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
تعالج هذه الطريقة حدث الاتصال المكتمل لمعاملة طلب بحث نقطة نهاية الخدمة.
هناك احتمالان. أولاً، قد يكون الاتصال قد تعذّر، وفي هذه الحالة سننتهي من هذه العملية. بخلاف ذلك، يكون الاتصال مكتملاً بالفعل، وما نريد فعله هو فتح سياق تبادل وإرسال طلب بحث في الدليل.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
تتعامل هذه الطريقة مع أي رسالة رد في المحادثة باستخدام خدمة الدليل.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
onResponseTimeout
void onResponseTimeout( void )
تتعامل هذه الطريقة مع حدث المهلة، الذي لم يتم تلقي أي رد من خدمة الدليل فيه.
نقل
void relocate( WEAVE_ERROR aError )
تنقل هذه الطريقة ذاكرة التخزين المؤقت لدليل الخدمة.
عندما تعرض نقطة نهاية الخدمة تقرير حالة يتضمّن رمز الحالة kStatus_Relocated، يمكن للتطبيق استدعاء unresolve() لتنظيف ذاكرة التخزين المؤقت وإلغاء طلبات الاتصال. تعمل هذه الطريقة على تبسيط معالجة الأخطاء من خلال استدعاء unresolve() في المرة الأولى وreset() إذا لم يتم حلّ المشكلة بعد.
يُستخدَم هذا الإصدار من الطريقة - المخصّص للتوافق مع الأنظمة القديمة - لتسجيل خطأ ثم استدعاء relocate(void).
التفاصيل | |||
---|---|---|---|
المعلمات |
|
relocate(void)
نقل
void relocate( void )
تعمل هذه الطريقة على إعادة تحديد موقع ذاكرة التخزين المؤقت لدليل الخدمة.
عندما تعرض نقطة نهاية خدمة تقرير حالة برمز الحالة kStatus_Replacement، يمكن للتطبيق استدعاء unresolve() لمحو ذاكرة التخزين المؤقت وإلغاء طلبات الاتصال. تعمل هذه الطريقة على تبسيط معالجة الأخطاء من خلال استدعاء unresolve() في المرة الأولى، وreset() إذا لم يتم حلّ المشكلة بعد.
يُرجى الاطّلاع أيضًا على:إعادة تحديد(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
أضِف إدخال دليل إلغاء اسم المضيف ومعرّف المنفذ في بداية قائمة الأدلة.
إعادة ضبط
void reset( WEAVE_ERROR aError )
تؤدي هذه الطريقة إلى إعادة ضبط مدير الخدمة على حالته الأولية.
تؤدي هذه الطريقة إلى إعادة ضبط جميع حالات خدمة "مدير الخدمات"، بما في ذلك حالة الاتصالات وحالة ذاكرة التخزين المؤقت وحالة أي طلبات ربط في انتظار المراجعة.
هذا الإصدار من الطريقة - متوفر هنا للتوافق مع الأنظمة القديمة - يتخذ خطأً ويسجله ثم يستدعي reset(null) .
التفاصيل | |||
---|---|---|---|
المعلمات |
|
reset(void)
إعادة ضبط
void reset( void )
تؤدي هذه الطريقة إلى إعادة ضبط مدير الخدمة على حالته الأولية.
تؤدي هذه الطريقة إلى إعادة ضبط جميع حالات خدمة "مدير الخدمات"، بما في ذلك حالة الاتصالات وحالة ذاكرة التخزين المؤقت وحالة أي طلبات ربط في انتظار المراجعة.
راجِع أيضًا:reset(WEAVE_ERROR)
إلغاء حلّ
void unresolve( WEAVE_ERROR aError )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمة، بحيث يُصدر مدير الخدمة استعلامًا لدليل الخدمة عند الطلب التالي.
يُستخدَم هذا الإصدار من الطريقة - المخصّص للتوافق مع الأنظمة القديمة - لتسجيل خطأ ثم استدعاء unresolve(void).
التفاصيل | |||
---|---|---|---|
المعلمات |
|
unresolve(void)
لم يتم الحل
void unresolve( void )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمات لكي يُصدر مدير الخدمات طلب بحث في دليل الخدمات عند الطلب التالي.
يُرجى الاطّلاع أيضًا على:unresolve(WEAVE_ERROR)
~WeaveServiceManager
~WeaveServiceManager( void )
تؤدي هذه الطريقة إلى إتلاف مثيل WeaveServiceManager.