nl:: Weave:: الملفات الشخصية:: 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::OnConnectStartvoid(*
يتم إجراء معاودة الاتصال بالتطبيق مباشرةً قبل إنشاء الاتصال. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryStartvoid(*
رد اتصال تطبيق لوضع علامة على وقت طلب دليل خدمة صادر. |
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_Solved، ما يعني أنه تم استلام الاستجابة من نقطة نهاية "دليل الخدمة".
|
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
|
عدد المللي ثانية التي يجب تلقي رد خلالها لطلب بحث الدليل قبل انتهاء مهلة سياق التبادل. |
OnConnectStart
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
يتم إجراء معاودة الاتصال بالتطبيق مباشرةً قبل إنشاء الاتصال.
يمكن استخدام رد الاتصال هذا بواسطة التطبيقات لمراقبة الوسيطات التي يتم تمريرها إلى #WeaveConnection::Connect() وتغييرها اختياريًا خلال فترة إنشاء اتصال الخدمة. سيتم استدعاء رد الاتصال هذا لكل من الاتصال بنقطة نهاية الخدمة المستهدفة، بالإضافة إلى الاتصال بنقطة نهاية دليل الخدمة في حال إجراء بحث الدليل.
OnServiceEndpointQueryStart
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 على نجاح العملية، وإلا سيتم إلغاء عملية التحميل.
|
معالج الحالة
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
معالج لحالات الخطأ والحالة.
قد يتم إبلاغ مستخدم مدير الخدمة بمشاكل محاولة تنفيذ طلب اتصال بإحدى الطريقتين التاليتين. قد تتلقى تقرير حالة من الخدمة أو قد تتلقى WEAVE_ERROR داخليًا. وفي كلتا الحالتين، تأتي المعلومات من خلال معاودة الاتصال هذه.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
وظائف عامة
ضبط الاتصال باستدعاء الاتصال
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
ضبط دالة رد اتصال ليتم طلبها مباشرةً قبل إنشاء الاتصال.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
مدير خدمات WeaveService
WeaveServiceManager( void )
تعمل هذه الطريقة على إعداد مثيل WeaveServiceManager.
لاحظ أنه يجب استدعاء الدالة init() لإعداد هذا المثيل بشكلٍ أكبر.
إلغاء
void cancel( uint64_t aServiceEp, void *aAppState )
تلغي هذه الطريقة طلب الربط.
تلغي هذه الطريقة طلب الربط نظرًا لرقم تعريف نقطة نهاية الخدمة وكائن حالة التطبيق الذي تم إدخاله في وقت الطلب كمعرّفات. وفي حال كان آخر طلب ربط، ستمحو هذه الطريقة أي حالة اتصال بدليل خدمة في انتظار المراجعة أيضًا.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
محو ذاكرة التخزين المؤقت
void clearCache( void )
وستمحو هذه الطريقة الحالة وذاكرة التخزين المؤقت للمدير إذا كانت الحالة في الوحدة الطرفية kServiceMgrState_Solved، ما يعني أنه تم استلام الاستجابة من نقطة نهاية "دليل الخدمة".
اتصل
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 على مستوى النجاح، أو رمز خطأ ذو صلة.
|
init
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_{9/} إذا كانت الوسيطة الدالة غير صالحة، وبخلاف ذلك، 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 )
تتعامل هذه الطريقة مع أي رسالة رد في المحادثة مع خدمة الدليل.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
انتهاء مهلة الاستجابة
void onResponseTimeout( void )
تتعامل هذه الطريقة مع حدث المهلة الذي لم يتم استلام أي استجابة من خدمة الدليل فيه.
نقل
void relocate( WEAVE_ERROR aError )
تعيد هذه الطريقة نقل ذاكرة التخزين المؤقت لدليل الخدمة.
عندما تعرض نقطة نهاية الخدمة تقرير حالة يحتوي على رمز الحالة kStatus_Relocation، يمكن للتطبيق استدعاء unSolve() لمحو ذاكرة التخزين المؤقت وإلغاء طلبات الاتصال. تعمل هذه الطريقة على تبسيط معالجة الأخطاء عن طريق استدعاء unSolve() في المرة الأولى، وreset() إذا لم يتم حل المشكلة بعد.
يستغرق هذا الإصدار من الطريقة - هنا للتوافق مع الأنظمة القديمة - خطأ ويسجِّله، ثم يطلب relocate(Empty) .
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
relocate(Empty)
نقل
void relocate( void )
تعيد هذه الطريقة نقل ذاكرة التخزين المؤقت لدليل الخدمة.
عندما تعرض نقطة نهاية الخدمة تقرير حالة يحتوي على رمز الحالة kStatus_Relocation، يمكن للتطبيق استدعاء unSolve() لمحو ذاكرة التخزين المؤقت وإلغاء طلبات الاتصال. تعمل هذه الطريقة على تبسيط معالجة الأخطاء عن طريق استدعاء unSolve() في المرة الأولى، وreset() إذا لم يتم حل المشكلة بعد.
يُرجى الاطّلاع أيضًا على:relocate(WEAVE_ERROR)
EnterOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
أضِف إدخال الدليل الذي تم تجاوزه لاسم المضيف ومعرّف المنفذ في بداية قائمة الدليل.
إعادة ضبط
void reset( WEAVE_ERROR aError )
تعيد هذه الطريقة ضبط مدير الخدمة إلى حالته الأولية.
تؤدي هذه الطريقة إلى إعادة ضبط جميع حالات مدير الخدمة، بما في ذلك حالة الاتصالات وحالة ذاكرة التخزين المؤقت وحالة أي طلبات في انتظار الاتصال.
هذا الإصدار من الطريقة - متوفّر هنا للتوافق مع الأنظمة القديمة - يستغرق تسجيل الأخطاء ويسجّلها، ثم يطلب إعادة الضبط(إبطال) .
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
إعادة ضبط(إلغاء)
إعادة ضبط
void reset( void )
تعيد هذه الطريقة ضبط مدير الخدمة إلى حالته الأولية.
تؤدي هذه الطريقة إلى إعادة ضبط جميع حالات مدير الخدمة، بما في ذلك حالة الاتصالات وحالة ذاكرة التخزين المؤقت وحالة أي طلبات في انتظار المراجعة للاتصال.
يُرجى الاطّلاع أيضًا على:إعادة ضبط(WEAVE_ERROR)
بلا حل
void unresolve( WEAVE_ERROR aError )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمة بحيث يصدر مدير الخدمة طلبًا لدليل الخدمة في الطلب التالي.
يستغرق هذا الإصدار من الطريقة - هنا للتوافق مع الأنظمة القديمة - خطأ ويسجِّله، ثم يستدعي unالحل(إلغاء) .
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
unالحل(إلغاء)
بلا حل
void unresolve( void )
تؤدي هذه الطريقة إلى إلغاء صلاحية ذاكرة التخزين المؤقت لدليل الخدمة.
تضبط هذه الطريقة حالة ذاكرة التخزين المؤقت لدليل الخدمة بحيث يصدر مدير الخدمة طلبًا لدليل الخدمة في الطلب التالي.
يمكنك أيضًا الاطّلاع على ما يلي:لم يتم حلّ المشكلة(WEAVE_ERROR)
~WeaveServiceManager
~WeaveServiceManager( void )
تؤدي هذه الطريقة إلى تدمير مثيل WeaveServiceManager.