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_Replacement، يمكن للتطبيق استدعاء 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) .
التفاصيل | |||
---|---|---|---|
المعلمات |
|
إعادة ضبط(غير)
إعادة ضبط
void reset( void )
تؤدي هذه الطريقة إلى إعادة ضبط مدير الخدمة على حالته الأولية.
تؤدي هذه الطريقة إلى إعادة ضبط جميع حالات مدير الخدمة، بما في ذلك حالة الاتصالات وحالة ذاكرة التخزين المؤقت وحالة أي طلبات ربط في انتظار المراجعة.
يُرجى الاطّلاع أيضًا على:إعادة ضبط(WEAVE_ERROR)
لم يتم الحل
void unresolve( WEAVE_ERROR aError )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمة، بحيث يُصدر مدير الخدمة استعلامًا لدليل الخدمة عند الطلب التالي.
هذا الإصدار من الطريقة - هنا للتوافق مع الأنظمة القديمة - يأخذ خطأ ويسجلها ثم يستدعي unresolve(null) .
التفاصيل | |||
---|---|---|---|
المعلمات |
|
لم يتم حله(ملغى)
لم يتم الحل
void unresolve( void )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمة، بحيث يُصدر مدير الخدمة استعلامًا لدليل الخدمة عند الطلب التالي.
يُرجى الاطّلاع أيضًا على:unresolve(WEAVE_ERROR)
~WeaveServiceManager
~WeaveServiceManager( void )
تؤدي هذه الطريقة إلى إتلاف مثيل WeaveServiceManager.