nl:: বুনা:: প্রোফাইল:: পরিষেবা নির্দেশিকা:: WeaveServiceManager

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

ওয়েভ সার্ভিস ডিরেক্টরির জন্য ম্যানেজার অবজেক্ট।

সারাংশ

ওয়েভ সার্ভিস ম্যানেজার হ'ল ডিরেক্টরি পরিষেবাতে অ্যাপ্লিকেশনগুলির জন্য প্রধান ইন্টারফেস। যেমন, এটি একটি পরিষেবার এন্ডপয়েন্টের সাথে যুক্ত ডিরেক্টরি এন্ট্রি খোঁজা, সেখানে পাওয়া এক বা একাধিক হোস্ট নামের উপর DNS লুকআপ করা, সংযোগ করার চেষ্টা করা, সংযোগ সুরক্ষিত করা ইত্যাদির অন্তর্নিহিত জটিলতাগুলিকে লুকিয়ে রাখে। এটি পরিষেবা ডিরেক্টরির তথ্যের ক্যাশেও পরিচালনা করতে পারে।

কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর

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 অবস্থায় থাকে, যার মানে পরিষেবা ডিরেক্টরির শেষ পয়েন্ট থেকে প্রতিক্রিয়া পাওয়া গেছে।
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
এই পদ্ধতিটি সংযুক্ত উইভ এক্সচেঞ্জ প্রসঙ্গে রিপোর্ট করা সংযোগ বন্ধ ইভেন্ট পরিচালনা করে।
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:: ওয়েভ:: প্রোফাইল:: সার্ভিস ডাইরেক্টরি:: ওয়েভ সার্ভিস ম্যানেজার:: 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 যুগ থেকে msec সংখ্যা, যখন সার্ভার সাইডে ক্যোয়ারী গৃহীত হয়েছিল।
[in] timeProcessMsec
এই ক্যোয়ারী প্রক্রিয়াকরণে ব্যয় করা মিসেক সংখ্যা।

রুট ডাইরেক্টরিঅ্যাকসেসর

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

রুট ডিরেক্টরি তথ্যের জন্য একটি অ্যাক্সেসর ফাংশন।

আপনাকে কোথাও শুরু করতে হবে এবং পরিষেবা ডিরেক্টরির সাথে আপনাকে একটি স্টাব ডিরেক্টরি দিয়ে শুরু করতে হবে যেখানে একটি সার্ভারের ঠিকানা রয়েছে যা আপনি অন্য সবকিছু পেতে আঘাত করতে পারেন। যেহেতু এই তথ্যের স্বভাব এবং উৎস ডিভাইস থেকে ডিভাইসে পরিবর্তিত হতে পারে, আমরা এখানে একটি অ্যাক্সেসর কলব্যাক প্রদান করি।

বিস্তারিত
পরামিতি
[out] aDirectory
ডিরেক্টরি তথ্য লিখতে একটি বাফার একটি পয়েন্টার.
[in] aLength
বাইটে প্রদত্ত বাফারের দৈর্ঘ্য।
রিটার্নস
সফলতার উপর WEAVE_NO_ERROR , অন্যথায় লোডিং প্রক্রিয়াটি বাতিল হয়ে যাবে৷

স্ট্যাটাস হ্যান্ডলার

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

ত্রুটি এবং অবস্থা অবস্থার জন্য একটি হ্যান্ডলার.

পরিষেবা ম্যানেজারের একজন ব্যবহারকারীকে দুটি উপায়ে একটি সংযোগ অনুরোধ কার্যকর করার চেষ্টা করার ক্ষেত্রে সমস্যা সম্পর্কে অবহিত করা যেতে পারে। এটি পরিষেবা থেকে একটি স্থিতি প্রতিবেদন পেতে পারে বা এটি একটি অভ্যন্তরীণভাবে তৈরি WEAVE_ERROR পেতে পারে৷ উভয় ক্ষেত্রেই, এই কলব্যাকের মাধ্যমে তথ্য আসে।

বিস্তারিত
পরামিতি
[in] anAppState
একটি অ্যাপ্লিকেশন অবজেক্টের একটি পয়েন্টার যা সংশ্লিষ্ট conect() কলে পাস করা হয়েছিল।
[in] anError
কানেক্ট রিকোয়েস্ট এক্সিকিউট করার চেষ্টা করার সময় একটি ওয়েভ এরর কোড ইঙ্গিত করে যে ত্রুটি ঘটেছে। এটি WEAVE_NO_ERROR হবে এমন ক্ষেত্রে যেখানে কোনো ত্রুটি দেখা দেয়নি এবং একটি স্থিতি প্রতিবেদন পাওয়া যায়।
[in] aStatusReport
দূরবর্তী ডিরেক্টরি পরিষেবা দ্বারা উত্পন্ন একটি স্থিতি প্রতিবেদনের একটি পয়েন্টার৷ এই যুক্তিটি সেই ক্ষেত্রে NULL হবে যেখানে কোনও স্ট্যাটাস রিপোর্ট ছিল না এবং আগের আর্গুমেন্টে একটি অভ্যন্তরীণ ত্রুটি পাস হয়েছে৷

পাবলিক ফাংশন

কানেক্টবেগিন কলব্যাক সেট করুন

void SetConnectBeginCallback(
  OnConnectBegin aConnectBegin
)

সংযোগ স্থাপনের অবিলম্বে কল করার জন্য একটি কলব্যাক ফাংশন সেট করুন।

বিস্তারিত
পরামিতি
[in] aConnectBegin
কলব্যাক ফাংশন একটি পয়েন্টার. NULL এর একটি মান কলব্যাক নিষ্ক্রিয় করে।

WeaveServiceManager

 WeaveServiceManager(
  void
)

এই পদ্ধতিটি WeaveServiceManager ইনস্ট্যান্স শুরু করে।

মনে রাখবেন যে init() কে অবশ্যই এই ইন্সট্যান্সটি আরম্ভ করার জন্য কল করতে হবে।

বাতিল

void cancel(
  uint64_t aServiceEp,
  void *aAppState
)

এই পদ্ধতি একটি সংযোগ অনুরোধ বাতিল.

এই পদ্ধতিটি পরিষেবার এন্ডপয়েন্ট আইডি দেওয়া একটি সংযোগ অনুরোধ বাতিল করে এবং অনুরোধের সময় শনাক্তকারী হিসাবে অ্যাপ্লিকেশন স্টেট অবজেক্ট পাস করে। যদি এটি শেষ সংযোগের অনুরোধ হয়, তাহলে এই পদ্ধতিটি যেকোনো মুলতুবি থাকা পরিষেবা ডিরেক্টরি সংযোগের অবস্থাও পরিষ্কার করে।

বিস্তারিত
পরামিতি
[in] aServiceEp
অনুরোধের পরিষেবা শেষ পয়েন্ট আইডি বাতিল করা হচ্ছে।
[in] anAppState
সংযোগ() কলে দেওয়া অ্যাপ স্টেট অবজেক্টের একটি পয়েন্টার।

সাফ ক্যাশে

void clearCache(
  void
)

এই পদ্ধতিটি ম্যানেজারের স্টেট এবং ক্যাশে সাফ করে যদি স্টেট টার্মিনাল kServiceMgrState_Resolved অবস্থায় থাকে, যার মানে পরিষেবা ডিরেক্টরির শেষ পয়েন্ট থেকে প্রতিক্রিয়া পাওয়া গেছে।

সংযোগ

WEAVE_ERROR connect(
  uint64_t aServiceEp,
  WeaveAuthMode aAuthMode,
  void *aAppState,
  StatusHandler aStatusHandler,
  WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler,
  const uint32_t aConnectTimeoutMsecs,
  const InterfaceId aConnectIntf
)

এই পদ্ধতিটি একটি Weave পরিষেবার সাথে সংযোগের অনুরোধ করে।

এটি শীর্ষ-স্তরের সংযোগ কল। এটি মূলত একটি পরিষেবার এন্ডপয়েন্ট এবং একটি প্রমাণীকরণ মোড দেওয়া উইভ পরিষেবাতে একটি নিরাপদ সংযোগ তৈরি করে বা চেষ্টা করে মারা যায়।

এই পদ্ধতিটি শুধুমাত্র init()- এ সফল কলের পরেই কল করা যেতে পারে, এবং একটি সংযোগের অনুরোধ cancel() দ্বারা সম্ভাব্যভাবে বাতিল করা যেতে পারে।

স্থানীয় ক্যাশে ডিফল্ট প্রভিশন করা ডেটা বা ডিরেক্টরি পরিষেবাতে ট্রিপ থেকে ডেটা দিয়ে পূর্ণ হওয়ার আগে এই পদ্ধতিটি কল করা যেতে পারে। ক্যাশে বিষয়বস্তু নির্ধারণ করার আগে পরিষেবা ম্যানেজার অনুরোধটি সারিবদ্ধ করবেন।

বিস্তারিত
পরামিতি
[in] aServiceEp
সার্ভিস এন্ডপয়েন্ট আইডেন্টিফায়ার, যেমন ServiceDirectory.h এ সংজ্ঞায়িত করা হয়েছে, আগ্রহের পরিষেবার জন্য।
[in] aAuthMode
আগ্রহের পরিষেবার সাথে সংযোগ করার সময় ব্যবহার করার জন্য প্রমাণীকরণ মোড।
[in] aAppState
একটি অ্যাপ্লিকেশান স্টেট অবজেক্টের একটি পয়েন্টার, একটি আর্গুমেন্ট হিসাবে কলব্যাকে পাস করা হয়েছে৷
[in] aStatusHandler
সংযোগ সম্পূর্ণ হওয়ার আগে ঘটে যাওয়া ত্রুটির ক্ষেত্রে আহ্বান করার জন্য একটি কলব্যাক।
[in] aConnectionCompleteHandler
যে ক্ষেত্রে অনুরোধ করা সংযোগ সম্পূর্ণ হয়েছে সেই ক্ষেত্রে আহ্বান করার জন্য একটি কলব্যাক৷ নোট করুন যে সংযোগটি একটি ওয়েভ ত্রুটি কোডের সাথে ব্যর্থ হতে পারে৷
[in] aConnectTimeoutMsecs
ঐচ্ছিক TCP সংযোগের সময়সীমা মিলিসেকেন্ডে।
[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 টাইপের একটি ফাংশন পয়েন্টার, যেটিকে একটি পরিষেবা ডিরেক্টরির প্রাপ্তির সময় বলা হয় যা অ্যাপ্লিকেশনগুলিকে প্রতিক্রিয়াতে দেওয়া সময় ক্ষেত্রগুলি ব্যবহার করে ওয়েভ পরিষেবার সাথে সিঙ্ক্রোনাইজ করতে দেয়৷ পরিষেবা পরিচালক সময় তথ্য সহ একটি প্রতিক্রিয়া পাওয়ার পরে এই কলব্যাক করা হবে৷ কলব্যাক করার আগে ক্যাশে ইতিমধ্যেই সফলভাবে পূরণ করা উচিত।
[in] aConnectBegin
OnConnectBegin টাইপের একটি ফাংশন পয়েন্টার, যা সংযোগ স্থাপনের অবিলম্বে বলা হয় এবং অ্যাপ্লিকেশনগুলিকে #WeaveConnection::Connect()-এ পাস করা আর্গুমেন্টগুলি পর্যবেক্ষণ করতে এবং ঐচ্ছিকভাবে পরিবর্তন করতে দেয়। NULL এর একটি মান (ডিফল্ট) কলব্যাক নিষ্ক্রিয় করে।
রিটার্নস
WEAVE_ERROR_INVALID_ARGUMENT যদি একটি ফাংশন আর্গুমেন্ট অবৈধ হয়; অন্যথায়, WEAVE_NO_ERROR

সন্ধান

WEAVE_ERROR lookup(
  uint64_t aServiceEp,
  HostPortList *outHostPortList
)

এই পদ্ধতিটি একটি পরিষেবার শেষ পয়েন্টের জন্য ডিরেক্টরি তথ্য সন্ধান করে।

যদি পরিষেবা ডিরেক্টরিটি সমাধান করা হয়, যেমন যদি একটি সফল সংযোগ() অপারেশন হয়ে থাকে, তাহলে এই পদ্ধতিটি সরবরাহ করা HostPortList অবজেক্টকে পূরণ করবে।

দ্রষ্টব্য: HostPortList WeaveServiceManager অবজেক্টের সাথে আবদ্ধ; পরিষেবা ডিরেক্টরি ক্যাশে সাফ না হওয়া পর্যন্ত বা অন্য পরিষেবা ডিরেক্টরি সন্ধান না হওয়া পর্যন্ত এটি বৈধ থাকে।

বিস্তারিত
পরামিতি
[in] aServiceEp
পরিষেবার শেষ বিন্দুর শনাক্তকারীকে দেখতে হবে।
[out] outHostPortList
HostPortList- এর পয়েন্টার যা ডিরেক্টরি এন্ট্রির সফল লুকআপে পপুলেট করা হবে। NULL হতে হবে না।
রিটার্ন মান
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
)

এই পদ্ধতিটি একটি পরিষেবার শেষ পয়েন্টের জন্য ডিরেক্টরি তথ্য সন্ধান করে।

যদি পরিষেবা ডিরেক্টরিটি সমাধান করা হয়, অর্থাৎ যদি একটি সফল সংযোগ() অপারেশন হয়ে থাকে, তাহলে এই পদ্ধতিটি একটি পরিষেবার এন্ডপয়েন্ট শনাক্তকারী দেওয়া একটি ডিরেক্টরি এন্ট্রি প্রদান করবে।

এই পদ্ধতিটি পরিষেবা ডিরেক্টরির অভ্যন্তরীণ বাস্তবায়নের বিশদ প্রকাশ করে, বাস্তবায়নগুলি দৃঢ়ভাবে এই পদ্ধতির বৈকল্পিক ব্যবহার করে সমর্থন করা উচিত যা HostPortList তৈরি করে।

বিস্তারিত
পরামিতি
[in] aServiceEp
পরিষেবার শেষ বিন্দুর শনাক্তকারীকে দেখতে হবে।
[out] aControlByte
ডিরেক্টরি এন্ট্রি কন্ট্রোল বাইট লিখতে স্থানের একটি পয়েন্টার।
[out] aDirectoryEntry
একটি পয়েন্টার-পয়েন্টার যা ডিরেক্টরি এন্ট্রিতে নির্দেশিত হবে।
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর; অন্যথায়, একটি সংশ্লিষ্ট ত্রুটি কোড।
WEAVE_ERROR_INVALID_SERVICE_EP
যদি প্রদত্ত পরিষেবা শেষ পয়েন্ট পাওয়া না যায়।
WEAVE_ERROR_INVALID_DIRECTORY_ENTRY_TYPE
যদি ডিরেক্টরিতে একটি অজানা ডিরেক্টরি এন্ট্রি টাইপ থাকে।

অন ​​সংযোগ বন্ধ

void onConnectionClosed(
  WEAVE_ERROR aError
)

এই পদ্ধতিটি সংযুক্ত উইভ এক্সচেঞ্জ প্রসঙ্গে রিপোর্ট করা সংযোগ বন্ধ ইভেন্ট পরিচালনা করে।

বিস্তারিত
পরামিতি
[in] aError
এই সংযোগটি বন্ধ হওয়ার কারণ নির্দেশ করে একটি ওয়েভ ত্রুটি৷

অন ​​সংযোগ সম্পূর্ণ

void onConnectionComplete(
  WEAVE_ERROR aError
)

এই পদ্ধতিটি সার্ভিস এন্ডপয়েন্ট ক্যোয়ারী লেনদেনের জন্য সংযোগ সম্পন্ন ইভেন্ট পরিচালনা করে।

সম্ভাবনার একটি দম্পতি আছে. প্রথমত, সংযোগ ব্যর্থ হতে পারে যে ক্ষেত্রে আমরা সম্পন্ন করেছি। অন্যথায়, সংযোগটি আসলে সম্পূর্ণ এবং আমরা যা করতে চাই তা হল একটি বিনিময় প্রসঙ্গ খুলুন এবং একটি ডিরেক্টরি ক্যোয়ারী পাঠান।

বিস্তারিত
পরামিতি
[in] aError
সংযোগ সেটআপের সময় কোনো ত্রুটি থাকলে একটি ওয়েভ ত্রুটি৷

প্রতিক্রিয়া প্রাপ্ত

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_Relocated সহ একটি স্ট্যাটাস রিপোর্ট প্রদান করে, তখন অ্যাপ্লিকেশনটি ক্যাশে সাফ করতে এবং সংযোগের অনুরোধগুলি বাতিল করতে unresolve() কল করতে পারে। এই পদ্ধতিটি প্রথমবার unresolve() কল করে এবং সমস্যাটি এখনও সমাধান না হলে reset() কল করে ত্রুটি পরিচালনা সহজ করে।

পদ্ধতির এই সংস্করণ - এখানে পিছনের সামঞ্জস্যের জন্য - একটি ত্রুটি নেয় এবং লগ করে তারপর কল করে relocate(void)

বিস্তারিত
পরামিতি
[in] aError
লগ করার জন্য একটি ত্রুটি।
আরও দেখুন:
স্থানান্তর (অকার্যকর)

স্থানান্তর

void relocate(
  void
)

এই পদ্ধতিটি পরিষেবা ডিরেক্টরি ক্যাশে স্থানান্তরিত করে।

যখন একটি পরিষেবার এন্ডপয়েন্ট স্ট্যাটাস কোড kStatus_Relocated সহ একটি স্ট্যাটাস রিপোর্ট প্রদান করে, তখন অ্যাপ্লিকেশনটি ক্যাশে সাফ করতে এবং সংযোগের অনুরোধগুলি বাতিল করতে unresolve() কল করতে পারে। এই পদ্ধতিটি প্রথমবার unresolve() কল করে এবং সমস্যাটি এখনও সমাধান না হলে reset() কল করে ত্রুটি পরিচালনা সহজ করে।

আরও দেখুন:
স্থানান্তর করুন(WEAVE_ERROR)

রিপ্লেসঅরঅ্যাডক্যাচেএন্ট্রি

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

ডিরেক্টরি তালিকার শুরুতে হোস্টনাম এবং পোর্ট আইডির ওভাররাইডিং ডিরেক্টরি এন্ট্রি যোগ করুন।

রিসেট

void reset(
  WEAVE_ERROR aError
)

এই পদ্ধতিটি পরিষেবা পরিচালককে তার প্রাথমিক অবস্থায় পুনরায় সেট করে।

এই পদ্ধতিটি যোগাযোগের অবস্থা, ক্যাশে অবস্থা এবং যেকোনো মুলতুবি সংযোগের অনুরোধের অবস্থা সহ সমস্ত পরিষেবা ব্যবস্থাপকের অবস্থা পুনরায় সেট করে।

পদ্ধতির এই সংস্করণ - এখানে পিছনের সামঞ্জস্যের জন্য - একটি ত্রুটি নেয় এবং লগ করে তারপর কল করে reset(void)

বিস্তারিত
পরামিতি
[in] aError
যে ত্রুটি এই অপারেশন ট্রিগার.
আরও দেখুন:
পুনরায় সেট করুন (অকার্যকর)

রিসেট

void reset(
  void
)

এই পদ্ধতিটি পরিষেবা পরিচালককে তার প্রাথমিক অবস্থায় পুনরায় সেট করে।

এই পদ্ধতিটি যোগাযোগের অবস্থা, ক্যাশে অবস্থা এবং যেকোনো মুলতুবি সংযোগের অনুরোধের অবস্থা সহ সমস্ত পরিষেবা ব্যবস্থাপক রাজ্যগুলিকে পুনরায় সেট করে।

আরও দেখুন:
পুনরায় সেট করুন(WEAVE_ERROR)

অমীমাংসিত

void unresolve(
  WEAVE_ERROR aError
)

এই পদ্ধতি পরিষেবা ডিরেক্টরি ক্যাশে অকার্যকর.

এই পদ্ধতিটি পরিষেবা ডিরেক্টরি ক্যাশে অবস্থা সেট করে যাতে পরবর্তী অনুরোধে পরিষেবা পরিচালক একটি পরিষেবা ডিরেক্টরি ক্যোয়ারী ইস্যু করবে।

পদ্ধতির এই সংস্করণ - এখানে পশ্চাদপদ সামঞ্জস্যের জন্য - একটি ত্রুটি নেয় এবং লগ করে তারপর unresolve(void) কল করে।

বিস্তারিত
পরামিতি
[in] aError
যে ত্রুটি এই অপারেশন ট্রিগার.
আরও দেখুন:
অমীমাংসিত (অকার্যকর)

অমীমাংসিত

void unresolve(
  void
)

এই পদ্ধতি পরিষেবা ডিরেক্টরি ক্যাশে অকার্যকর.

এই পদ্ধতিটি পরিষেবা ডিরেক্টরি ক্যাশে অবস্থা সেট করে যাতে পরবর্তী অনুরোধে পরিষেবা পরিচালক একটি পরিষেবা ডিরেক্টরি ক্যোয়ারী ইস্যু করবে।

আরও দেখুন:
অমীমাংসিত (WEAVE_ERROR)

~ উইভ সার্ভিস ম্যানেজার

 ~WeaveServiceManager(
  void
)

এই পদ্ধতিটি WeaveServiceManager ইনস্ট্যান্সকে ধ্বংস করে।