nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager

#include <src/lib/profiles/service-directory/ServiceDirectory.h>

Weave सेवा डायरेक्ट्री के लिए मैनेजर ऑब्जेक्ट.

खास जानकारी

Weave सेवा मैनेजर, डायरेक्ट्री सेवा के लिए ऐप्लिकेशन का मुख्य इंटरफ़ेस है. इसलिए, यह सेवा के एंडपॉइंट से जुड़ी डायरेक्ट्री एंट्री को खोजने, वहां मिले एक या उससे ज़्यादा होस्ट नेम पर डीएनएस लुकअप करने, कनेक्ट करने, कनेक्शन को सुरक्षित करने वगैरह से जुड़ी समस्याओं को छिपा देता है. यह कैश मेमोरी में सेव की जाने वाली सर्विस डायरेक्ट्री की जानकारी को भी मैनेज कर सकता है.

कंस्ट्रक्टर और डिस्ट्रक्टर

WeaveServiceManager(void)
यह तरीका WeaveServiceManager इंस्टेंस को शुरू करता है.
~WeaveServiceManager(void)
यह तरीका WeaveServiceManager इंस्टेंस को बंद कर देता है.

सार्वजनिक प्रकार

@303{
  kWeave_DefaultSendTimeout = 15000
}
enum
OnConnectBegin)(struct ServiceConnectBeginArgs &args) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBegin
void(*
कनेक्शन बनाने से ठीक पहले, ऐप्लिकेशन कॉलबैक किया जाता है.
OnServiceEndpointQueryBegin)(void) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBegin
void(*
आउटगोइंग सर्विस डायरेक्ट्री क्वेरी के समय को मार्क करने के लिए, ऐप्लिकेशन कॉलबैक.
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec) nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfo
void(*
सर्विस डायरेक्ट्री के रिस्पॉन्स से समय की वैल्यू डिलीवर करने के लिए, एक ऐप्लिकेशन कॉलबैक.
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::StatusHandler
void(*
गड़बड़ी और स्थिति की शर्तों के लिए हैंडलर.

सार्वजनिक फ़ंक्शन

SetConnectBeginCallback(OnConnectBegin aConnectBegin)
void
कनेक्शन सेट अप होने से ठीक पहले कॉल किए जाने के लिए, कॉलबैक फ़ंक्शन सेट करें.
cancel(uint64_t aServiceEp, void *aAppState)
void
इस तरीके से कनेक्ट करने का अनुरोध रद्द हो जाता है.
clearCache(void)
void
अगर मैनेजर का स्टेटस, टर्मिनल kServiceMgrState_Resolved स्टेटस में है, तो यह तरीका मैनेजर का स्टेटस और कैश मेमोरी मिटा देता है. इसका मतलब है कि Service Directory एंडपॉइंट से रिस्पॉन्स मिल गया है.
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::Weave::Profiles::ServiceDirectory::WeaveServiceManager::ConnectRequest

इस क्लास में सिर्फ़ एक लेन-देन होता है, जिसे सर्विस मैनेजर मैनेज करता है.

सार्वजनिक टाइप

@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)

सेवा डायरेक्ट्री के जवाब से समय की वैल्यू डिलीवर करने के लिए, ऐप्लिकेशन कॉलबैक.

इसे तब कॉल किया जाता है, जब हमें सेवा डायरेक्ट्री क्वेरी के जवाब से समय की जानकारी मिलती है. ध्यान दें कि यह कॉलबैक सिर्फ़ तब होगा, जब जवाब को सही तरीके से पार्स किया गया हो और समय की जानकारी शामिल की गई हो

विवरण
पैरामीटर
[in] timeQueryReceiptMsec
POSIX युग के बाद से, सर्वर साइड पर क्वेरी मिलने के बाद बीते एमएसईसी की संख्या.
[in] timeProcessMsec
इस क्वेरी को प्रोसेस करने में लगने वाले एमएसईसी की संख्या.

RootDirectoryAccessor

WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)

रूट डायरेक्ट्री की जानकारी के लिए ऐक्सेस करने वाला फ़ंक्शन.

आपको कहीं से शुरू करना होगा और आपको एक स्टब डायरेक्ट्री से शुरू करना होगा. इसमें उस सर्वर का पता होता है जिसे आप बाकी सभी चीज़ों तक पहुंचने के लिए हिट कर सकते हैं. इस जानकारी का डिस्पोज़िशन और सोर्स, डिवाइस के हिसाब से अलग-अलग हो सकता है. इसलिए, हम यहां एक ऐक्सेस करने वाला कॉलबैक उपलब्ध कराते हैं.

विवरण
पैरामीटर
[out] aDirectory
डायरेक्ट्री की जानकारी लिखने के लिए बफ़र का पॉइंटर.
[in] aLength
दिए गए बफ़र की लंबाई बाइट में.
लौटाए जाने वाले प्रॉडक्ट
सफल होने पर WEAVE_NO_ERROR, नहीं तो लोडिंग की प्रोसेस को रोक दिया जाएगा.

StatusHandler

void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)

गड़बड़ी और स्टेटस की शर्तों के लिए हैंडलर.

सेवा मैनेजर के उपयोगकर्ता को, कनेक्ट करने के अनुरोध को पूरा करने में आने वाली समस्याओं के बारे में दो तरीकों से बताया जा सकता है. इसे सेवा से स्थिति रिपोर्ट मिल सकती है या इसे अंदरूनी तौर पर जनरेट की गई WEAVE_ERROR मिल सकती है. दोनों ही मामलों में, जानकारी इस कॉलबैक से मिलती है.

विवरण
पैरामीटर
[in] anAppState
किसी ऐप्लिकेशन ऑब्जेक्ट का पॉइंटर, जिसे इससे जुड़े Conect() कॉल में पास किया गया था.
[in] anError
Weave का गड़बड़ी कोड, जो कनेक्ट करने के अनुरोध को पूरा करने की प्रोसेस के दौरान हुई गड़बड़ी के बारे में बताता है. अगर कोई गड़बड़ी नहीं हुई हो और स्टेटस रिपोर्ट उपलब्ध हो, तो यह WEAVE_NO_ERROR होगा.
[in] aStatusReport
रिमोट डायरेक्ट्री सेवा से जनरेट की गई स्टेटस रिपोर्ट का पॉइंटर. अगर स्थिति की कोई रिपोर्ट नहीं है और पिछले आर्ग्युमेंट में कोई इंटरनल गड़बड़ी है, तो यह आर्ग्युमेंट NULL होगा.

सार्वजनिक फ़ंक्शन

SetConnectBeginCallback

void SetConnectBeginCallback(
  OnConnectBegin aConnectBegin
)

कनेक्शन सेट अप होने से ठीक पहले कॉल किए जाने के लिए, कॉलबैक फ़ंक्शन सेट करें.

विवरण
पैरामीटर
[in] aConnectBegin
कॉलबैक फ़ंक्शन का पॉइंटर. NULL वैल्यू से कॉलबैक बंद हो जाता है.

WeaveServiceManager

 WeaveServiceManager(
  void
)

यह तरीका WeaveServiceManager इंस्टेंस को शुरू करता है.

ध्यान दें कि इस इंस्टेंस को और शुरू करने के लिए, init() को कॉल करना ज़रूरी है.

अभी नहीं

void cancel(
  uint64_t aServiceEp,
  void *aAppState
)

इस तरीके से, खाता जोड़ने का अनुरोध रद्द किया जा सकता है.

यह तरीका, सेवा के एंडपॉइंट आईडी और अनुरोध के समय आइडेंटिफ़ायर के तौर पर पास किए गए ऐप्लिकेशन स्टेटस ऑब्जेक्ट को देखते हुए, कनेक्ट करने के अनुरोध को रद्द कर देता है. अगर यह आखिरी बार कनेक्ट करने का अनुरोध है, तो इस तरीके से सर्विस डायरेक्ट्री कनेक्शन की अधूरी स्थिति को भी हटा दिया जाता है.

विवरण
पैरामीटर
[in] aServiceEp
रद्द किए जा रहे अनुरोध का सेवा एंडपॉइंट आईडी.
[in] anAppState
connect() कॉल में दिए गए ऐप्लिकेशन स्टेटस ऑब्जेक्ट का पॉइंटर.

clearCache

void clearCache(
  void
)

अगर मैनेजर का स्टेटस, टर्मिनल kServiceMgrState_Resolved स्टेटस में है, तो यह तरीका मैनेजर का स्टेटस और कैश मेमोरी मिटा देता है. इसका मतलब है कि Service Directory एंडपॉइंट से रिस्पॉन्स मिल गया है.

कनेक्ट करें

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() की मदद से कनेक्शन का अनुरोध रद्द किया जा सकता है.

इस तरीके को, डिफ़ॉल्ट तौर पर उपलब्ध कराए गए डेटा या डायरेक्ट्री सेवा के ट्रिप से, लोकल कैश मेमोरी में डेटा भरने से पहले कॉल किया जा सकता है. कैश मेमोरी की सामग्री को तय करने से पहले सेवा मैनेजर अनुरोध को सूची में जोड़ देगा.

विवरण
पैरामीटर
[in] aServiceEp
आपकी पसंद की सेवा के लिए, ServiceDirectory.h में बताए गए सेवा एंडपॉइंट आइडेंटिफ़ायर.
[in] aAuthMode
अपनी पसंद की सेवा से कनेक्ट करते समय, पुष्टि करने का तरीका.
[in] aAppState
ऐप्लिकेशन की स्थिति वाले ऑब्जेक्ट का पॉइंटर, जिसे कॉलबैक को तर्क के तौर पर भेजा जाता है.
[in] aStatusHandler
कनेक्शन पूरा होने से पहले होने वाली गड़बड़ी के मामले में, कॉलबैक को लागू किया जाता है.
[in] aConnectionCompleteHandler
अनुरोध किया गया कनेक्शन पूरा होने पर, कॉलबैक को ट्रिगर किया जाता है. ध्यान दें कि Weave गड़बड़ी कोड की वजह से कनेक्शन पूरा नहीं हो सकता.
[in] aConnectTimeoutMsecs
टीसीपी कनेक्शन टाइम आउट (ज़रूरी नहीं) मिलीसेकंड में.
[in] aConnectIntf
वह वैकल्पिक इंटरफ़ेस जिस पर कनेक्शन बनाना है.
लौटाए जाने वाले प्रॉडक्ट
सफलता मिलने पर 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(), और अन्य तरीकों को कॉल कर सकते हैं.

विवरण
पैरामीटर
[in] aExchangeMgr
सभी सर्विस डायरेक्ट्री प्रोफ़ाइल एक्सचेंज के लिए, एक्सचेंज मैनेजर का पॉइंटर.
[in] aCache
बफ़र का पॉइंटर, जिसका इस्तेमाल डायरेक्ट्री की जानकारी को कैश मेमोरी में सेव करने के लिए किया जा सकता है.
[in] aCacheLen
कैश मेमोरी की लंबाई बाइट में.
[in] aAccessor
कॉलबैक, जैसा कि ServiceDirectory.h में बताया गया है, ताकि रूट डायरेक्ट्री को डायरेक्ट्री लुकअप के शुरुआती पॉइंट के तौर पर लोड किया जा सके.
[in] aDirAuthMode
डायरेक्ट्री सेवा से बात करते समय, पुष्टि करने वाला मोड इस्तेमाल किया जा सकता है.
[in] aServiceEndpointQueryBegin
OnServiceEndpointQueryBegin टाइप का फ़ंक्शन पॉइंटर, जिसे सेवा डायरेक्ट्री के अनुरोध की शुरुआत में कॉल किया जाता है. साथ ही, अगर ऐप्लिकेशन को सेवा डायरेक्ट्री प्रोटोकॉल से मिलने वाले समय सिंक्रोनाइज़ेशन का इस्तेमाल करना है, तो ऐप्लिकेशन कोड को समय को मार्क करने की अनुमति मिलती है.
[in] aServiceEndpointQueryEndWithTimeInfo
OnServiceEndpointQueryEndWithTimeInfo टाइप का फ़ंक्शन पॉइंटर, जिसे सेवा डायरेक्ट्री मिलने पर कॉल किया जाता है. इसकी मदद से, ऐप्लिकेशन जवाब में दिए गए टाइम फ़ील्ड का इस्तेमाल करके, Weave सेवा के साथ सिंक कर सकते हैं. यह कॉलबैक तब किया जाता है, जब सेवा मैनेजर को समय की जानकारी के साथ जवाब मिलता है. कॉलबैक करने से पहले, कैश मेमोरी में डेटा भर जाना चाहिए.
[in] aConnectBegin
OnConnectConnect टाइप का एक फ़ंक्शन पॉइंटर, जिसे कनेक्शन बनाने से ठीक पहले कॉल किया जाता है. यह ऐप्लिकेशन को #WeaveConnection::Connect() पर दिए गए आर्ग्युमेंट की निगरानी करने और उन्हें बदलने का विकल्प देता है. शून्य (डिफ़ॉल्ट) वैल्यू से कॉलबैक बंद हो जाता है.
लौटाए जाने वाले प्रॉडक्ट
अगर फ़ंक्शन का आर्ग्युमेंट अमान्य है, तो WEAVE_ERROR_INVALID_ARGUMENT; अन्यथा, WEAVE_NO_ERROR.

लुकअप

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  HostPortList *outHostPortList
)

यह तरीका, सेवा एंडपॉइंट की डायरेक्ट्री जानकारी खोजता है.

अगर सेवा डायरेक्ट्री को हल कर लिया गया है, यानी connect() ऑपरेशन पूरा हो गया है, तो यह तरीका दिए गए HostPortList ऑब्जेक्ट को पॉप्युलेट करेगा.

ध्यान दें: HostPortList, WeaveServiceManager ऑब्जेक्ट से बंधा होता है. यह तब तक मान्य रहता है, जब तक सेवा डायरेक्ट्री का कैश मेमोरी मिटाया नहीं जाता या सेवा डायरेक्ट्री का कोई दूसरा लुकअप नहीं होता.

विवरण
पैरामीटर
[in] aServiceEp
खोजने के लिए, सेवा एंडपॉइंट का आइडेंटिफ़ायर.
[out] outHostPortList
HostPortList का पॉइंटर, जो डायरेक्ट्री एंट्री को खोजने पर अपने-आप भर जाएगा. वैल्यू शून्य नहीं होनी चाहिए.
रिटर्न वैल्यू
WEAVE_NO_ERROR
कोड डालने के बाद, आपको एक मैसेज दिखेगा. अगर कोड सही है, तो आपको 'सही कोड' दिखेगा. अगर कोड गलत है, तो आपको गड़बड़ी का कोड दिखेगा.
WEAVE_ERROR_INVALID_SERVICE_EP
अगर दिया गया सर्विस एंडपॉइंट नहीं मिलता है.
WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
अगर डायरेक्ट्री में किसी ऐसे डायरेक्ट्री टाइप की जानकारी है जिसकी जानकारी नहीं है.

लुकअप

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  uint8_t *aControlByte,
  uint8_t **aDirectoryEntry
)

यह तरीका, किसी सेवा एंडपॉइंट के लिए डायरेक्ट्री की जानकारी खोजता है.

अगर सर्विस डायरेक्ट्री का समाधान हो गया है यानी अगर connect() कार्रवाई पूरी होती है, तो यह तरीका, सर्विस एंडपॉइंट आइडेंटिफ़ायर के आधार पर डायरेक्ट्री एंट्री दिखाएगा.

इस तरीके में, सर्विस डायरेक्ट्री के अंदरूनी इस्तेमाल की जानकारी दिखाई जाती है. हालांकि, लागू करने के लिए इस तरीके के उसी वैरिएंट का इस्तेमाल करना चाहिए जो HostPortList को जनरेट करता है.

विवरण
पैरामीटर
[in] aServiceEp
खोजने के लिए, सेवा एंडपॉइंट का आइडेंटिफ़ायर.
[out] aControlByte
डायरेक्ट्री एंट्री कंट्रोल बाइट को लिखने की जगह का पॉइंटर.
[out] aDirectoryEntry
डायरेक्ट्री एंट्री पर ले जाने वाला पॉइंटर-पॉइंटर.
रिटर्न वैल्यू
WEAVE_NO_ERROR
कोड डालने के बाद, आपको एक मैसेज दिखेगा. अगर कोड सही है, तो आपको 'सही कोड' दिखेगा. अगर कोड गलत है, तो आपको गड़बड़ी का कोड दिखेगा.
WEAVE_ERROR_INVALID_SERVICE_EP
अगर दिया गया सर्विस एंडपॉइंट नहीं मिलता है.
WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
अगर डायरेक्ट्री में डायरेक्ट्री एंट्री का कोई ऐसा टाइप है जिसके बारे में जानकारी नहीं है.

onConnectionClosed

void onConnectionClosed(
  WEAVE_ERROR aError
)

यह तरीका, कनेक्टिविटी बंद होने के उस इवेंट को मैनेज करता है जिसकी शिकायत, कनेक्टिविटी से जुड़े Weave एक्सचेंज कॉन्टेक्स्ट ने की है.

विवरण
पैरामीटर
[in] aError
इस कनेक्शन को बंद होने की वजह बताने वाली Weave गड़बड़ी.

onConnectionComplete

void onConnectionComplete(
  WEAVE_ERROR aError
)

यह तरीका, सर्विस एंडपॉइंट क्वेरी ट्रांज़ैक्शन के लिए, कनेक्ट पूरा होने वाले इवेंट को हैंडल करता है.

इसके कुछ कारण हो सकते हैं. पहली बात, यह हो सकता है कि कनेक्शन इस मामले में काम पूरा न कर पाए. अगर ऐसा नहीं है, तो कनेक्ट करने की प्रोसेस पूरी हो गई है. अब हमें एक्सचेंज कॉन्टेक्स्ट खोलना है और डायरेक्ट्री क्वेरी भेजनी है.

विवरण
पैरामीटर
[in] aError
कनेक्शन सेटअप करने के दौरान कोई गड़बड़ी होने पर, Weave से जुड़ी गड़बड़ी.

onResponseReceived

void onResponseReceived(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

यह तरीका, डायरेक्ट्री सेवा के साथ बातचीत में किसी भी जवाब वाले मैसेज को मैनेज करता है.

विवरण
पैरामीटर
[in] aProfileId
आने वाले इस मैसेज के लिए प्रोफ़ाइल आईडी.
[in] aMsgType
इस मैसेज के लिए खास तरह की प्रोफ़ाइल.
[in] aMsg
इस मैसेज का कॉन्टेंट.

onResponseTimeout

void onResponseTimeout(
  void
)

यह तरीका, टाइम आउट इवेंट को मैनेज करता है. इसमें डायरेक्ट्री सेवा से कोई जवाब नहीं मिला.

दूसरी जगह ले जाना

void relocate(
  WEAVE_ERROR aError
)

इस तरीके से, सेवा डायरेक्ट्री कैश मेमोरी की जगह बदल जाती है.

जब कोई सेवा एंडपॉइंट, स्थिति कोड kStatus_Relocation के साथ स्टेटस रिपोर्ट दिखाता है, तो ऐप्लिकेशन कैश मेमोरी को हटाने और कनेक्शन के अनुरोधों को रद्द करने के लिए, unresolve() को कॉल कर सकता है. यह तरीका, पहली बार unresolve() को कॉल करके और समस्या हल न होने पर reset() को कॉल करके, गड़बड़ी को मैनेज करने की प्रोसेस को आसान बनाता है.

इस तरीके का यह वर्शन - यहां पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. यह किसी गड़बड़ी को चुनता है और लॉग करता है. इसके बाद, relocate(void) को कॉल करता है.

विवरण
पैरामीटर
[in] aError
लॉग करने में कोई गड़बड़ी हुई.
यह भी देखें:
जगह बदलें(शून्य)

दूसरी जगह ले जाना

void relocate(
  void
)

इस तरीके से, सर्विस डायरेक्ट्री की कैश मेमोरी को बदला जाता है.

जब कोई सेवा एंडपॉइंट, स्थिति कोड kStatus_Relocated के साथ स्थिति रिपोर्ट दिखाता है, तो ऐप्लिकेशन कैश मेमोरी मिटाने और कनेक्शन के अनुरोधों को रद्द करने के लिए, unresolve() को कॉल कर सकता है. यह तरीका unresolve() को पहली बार में कॉल करके और गड़बड़ी को आसानी से मैनेज करता है. इसके अलावा, अगर समस्या अभी तक हल नहीं होती है, तो reset() को आसानी से किया जा सकता है.

यह भी देखें:
relocate(WEAVE_ERROR)

replaceOrAddCacheEntry

WEAVE_ERROR replaceOrAddCacheEntry(
  uint16_t port,
  const char *hostName,
  uint8_t hostLen,
  uint64_t serviceEndpointId
)

डायरेक्ट्री सूची की शुरुआत में, किसी होस्टनेम और पोर्ट आईडी की ओवरराइडिंग डायरेक्ट्री एंट्री जोड़ें.

रीसेट करें

void reset(
  WEAVE_ERROR aError
)

यह तरीका, सेवा मैनेजर को उसकी शुरुआती स्थिति पर रीसेट कर देता है.

यह तरीका, सेवा मैनेजर की सभी स्थितियों को रीसेट करता है. इनमें संचार की स्थिति, कैश मेमोरी की स्थिति, और कनेक्ट किए गए अनुरोधों की मंज़ूरी बाकी है.

इस तरीके का यह वर्शन - यहां पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके तहत, गड़बड़ी का पता लगाकर उसे लॉग किया जाता है. इसके बाद, reset(void) को कॉल किया जाता है.

विवरण
पैरामीटर
[in] aError
इस कार्रवाई को ट्रिगर करने वाली गड़बड़ी.
इन्हें भी देखें:
reset(void)

रीसेट करें

void reset(
  void
)

यह तरीका, सेवा मैनेजर को उसकी शुरुआती स्थिति पर रीसेट कर देता है.

यह तरीका, सेवा मैनेजर की सभी स्थितियों को रीसेट कर देता है. इनमें, कम्यूनिकेशन की स्थिति, कैश मेमोरी की स्थिति, और कनेक्ट किए गए किसी भी अनुरोध को मंज़ूरी मिलना बाकी है.

इन्हें भी देखें:
reset(WEAVE_ERROR)

अनसॉल्व करें

void unresolve(
  WEAVE_ERROR aError
)

इस तरीके से, सेवा डायरेक्ट्री का कैश मेमोरी मिट जाता है.

यह तरीका, सर्विस डायरेक्ट्री की कैश मेमोरी का स्टेटस सेट करता है, ताकि अगले अनुरोध पर सेवा मैनेजर, सर्विस डायरेक्ट्री से जुड़ी क्वेरी जारी कर दे.

इस तरीके का यह वर्शन, पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. यह गड़बड़ी को रिकॉर्ड करता है और फिर unresolve(void) को कॉल करता है.

विवरण
पैरामीटर
[in] aError
इस कार्रवाई को ट्रिगर करने वाली गड़बड़ी.
यह भी देखें:
समाधान न होना(शून्य)

अनसुलझा

void unresolve(
  void
)

इस तरीके से, सेवा डायरेक्ट्री का कैश मेमोरी मिट जाता है.

यह तरीका, सर्विस डायरेक्ट्री की कैश मेमोरी का स्टेटस सेट करता है, ताकि अगले अनुरोध पर सेवा मैनेजर, सर्विस डायरेक्ट्री से जुड़ी क्वेरी जारी कर दे.

यह भी देखें:
unresolve(WEAVE_ERROR)

~WeaveServiceManager

 ~WeaveServiceManager(
  void
)

यह तरीका WeaveServiceManager इंस्टेंस को बंद कर देता है.