nl:: বুনা:: প্রোফাইল:: সময়:: TimeSyncNode
সারাংশ
উত্তরাধিকার
থেকে উত্তরাধিকারসূত্রে পাওয়া যায়: nl::Weave::Profiles::Time::_TimeSyncNodeBaseকনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
TimeSyncNode (void) |
mBootTimeForNextAutoDiscovery_usec | timesync_t |
mIsAutoSyncEnabled | bool স্বয়ংক্রিয় সিঙ্ক বৈশিষ্ট্যের জন্য ব্যবহৃত রাজ্যগুলি। |
mIsUrgentDiscoveryPending | bool |
mNominalDiscoveryPeriod_msec | int32_t |
mShortestDiscoveryPeriod_msec | int32_t |
mSyncPeriod_msec | int32_t |
mActiveContact | Contact * যোগাযোগ প্রসঙ্গ |
mExchangeContext | |
mUnadjTimestampLastSent_usec | timesync_t |
EnterState_Discover (void) | void এই স্টেট ট্রানজিশন ফাংশনগুলি অভ্যন্তরীণ এবং ত্রুটি কোড ফেরত দিতে পারে না কারণ পূর্ববর্তী রাজ্যে সেগুলি পরিচালনা করার কোন উপায় নেই। |
EnterState_ServiceSync_1 (void) | void |
EnterState_ServiceSync_2 (void) | void |
EnterState_Sync_1 (void) | void |
EnterState_Sync_2 (void) | void |
পাবলিক প্রকার | |
---|---|
ClientState | enum এই টাইম সিঙ্ক ক্লায়েন্টের বর্তমান অবস্থা |
CommState | enum একটি নির্দিষ্ট পরিচিতির সাথে যোগাযোগের অবস্থা। |
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) | typedefvoid(* আমরা প্রতিক্রিয়া থেকে সময় সংশোধন গণনা করার ঠিক আগে কলব্যাক ঘটে। |
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) | typedefbool(* কলব্যাক ইঙ্গিত করতে যে আমরা এইমাত্র একটি সময় সিঙ্ক অনুরোধ পেয়েছি। |
ResponseStatus | enum একটি নির্দিষ্ট পরিচিতির সঞ্চিত প্রতিক্রিয়ার স্থিতি। |
ServerState { | enum এই টাইম সিঙ্ক সার্ভারের বর্তমান অবস্থা |
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) | typedefvoid(* স্বয়ংক্রিয় সিঙ্ক সহ যখন সিঙ্ক ব্যর্থ বলে বিবেচিত হয় তখন কলব্যাক ঘটে৷ |
SyncSucceededHandler )(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) | typedefbool(* স্বয়ংক্রিয় সিঙ্ক সহ, কিন্তু ফলাফল প্রয়োগের আগে সিঙ্ক সফল বলে বিবেচিত হওয়ার পরে কলব্যাক ঘটে। |
TimeChangeNotificationHandler )(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) | typedefvoid(* কলব্যাক ইঙ্গিত করতে যে আমরা এইমাত্র একটি সময় পরিবর্তনের বিজ্ঞপ্তি পেয়েছি। |
পাবলিক বৈশিষ্ট্য | |
---|---|
FilterTimeCorrectionContributor | |
OnSyncFailed | |
OnSyncRequestReceived | যদি সেট না করা হয়, ডিফল্ট বাস্তবায়ন সর্বদা সত্য ফেরত দেয় |
OnSyncSucceeded | যদি সেট না করা হয়, ডিফল্ট আচরণ খুব ছোট সার্ভার সংশোধন ব্যতীত সমস্ত ফলাফল গ্রহণ করছে |
OnTimeChangeNotificationReceived | |
mEncryptionType | uint8_t স্থানীয় যোগাযোগের জন্য এনক্রিপশন পদ্ধতি |
mKeyId | uint16_t স্থানীয় যোগাযোগের জন্য ব্যবহৃত কী আইডি |
সুরক্ষিত বৈশিষ্ট্য | |
---|---|
mApp | void * উচ্চ স্তর ডেটা পয়েন্টার |
mClientState | |
mConnectionToService | পরিষেবার সাথে কথা বলার জন্য ব্যবহৃত টিসিপি সংযোগ। |
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS] | যোগাযোগ তথ্য আবিষ্কার জুড়ে শেখা. |
mIsAlwaysFresh | bool |
mIsInCallback | bool সত্য যদি আমরা উচ্চ স্তরে কলব্যাকের মধ্যে থাকি |
mLastLikelihoodSent | int8_t |
mNumContributorInLastLocalSync | uint8_t |
mRole | TimeSyncRole এই নোডের প্রকৃত ভূমিকা। |
mServerState | |
mServiceContact | |
mTimestampLastCorrectionFromServerOrNtp_usec | timesync_t মনে রাখবেন এটি বুট টাইম হতে হবে কারণ আমাদের ঘুমের সময়ের জন্য ক্ষতিপূরণ প্রয়োজন |
mTimestampLastLocalSync_usec | timesync_t মনে রাখবেন এটি বুট টাইম হতে হবে কারণ আমাদের ঘুমের সময়ের জন্য ক্ষতিপূরণ প্রয়োজন |
পাবলিক ফাংশন | |
---|---|
Abort (void) | ইঞ্জিনটিকে নিষ্ক্রিয় অবস্থায় ফিরে যেতে বাধ্য করুন, এটি যা করছে তা বাতিল করে। |
DisableAutoSync (void) | void স্বয়ংক্রিয় সিঙ্ক নিষ্ক্রিয় করুন। |
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec) | স্বয়ংক্রিয় সিঙ্ক সক্ষম করুন। |
GetCapacityOfContactList (void) const | int এই ইঞ্জিনটি সঞ্চয় করার জন্য কনফিগার করা হয়েছে সর্বাধিক সংখ্যক পরিচিতির জন্য সাধারণ গেটার |
GetClientState (void) const | ক্লায়েন্ট রাষ্ট্রের জন্য সহজ গেটার |
GetNextLikelihood (void) const | int8_t স্থায়ী জন্য সম্ভাবনা নিষ্কাশন. |
GetServerState (void) const | সার্ভারের অবস্থার জন্য সাধারণ গেটার |
InitClient (void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood) | এই ক্লায়েন্ট আরম্ভ করুন. |
InitCoordinator ( nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec) | এই সমন্বয়কারী শুরু করুন। |
InitServer (void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh) | টাইম সিঙ্ক সার্ভারের উদ্দেশ্য হলে অবজেক্ট নির্মাণের পর প্রথম ফাংশন হিসেবে সার্ভারের ভূমিকাকে ইনিশিয়ালাইজ করতে হবে। |
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const | void মাল্টিকাস্ট সময় পরিবর্তন বিজ্ঞপ্তি থেকে উচ্চ স্তর দ্বারা বলা হয়. |
RegisterCorrectionFromServerOrNtp (void) | void উচ্চতর স্তর দ্বারা বলা হয়েছে যে আমরা সবেমাত্র যে কোনও সার্ভারের সাথে বা NTP-এর মতো কিছু নির্ভরযোগ্য উপায়ের মাধ্যমে এক রাউন্ড সময়ের সিঙ্ক শেষ করেছি। |
RegisterLocalSyncOperation (const uint8_t aNumContributor) | void উচ্চতর স্তর দ্বারা বলা হয়েছে যে আমরা এইমাত্র অন্যান্য স্থানীয় সমন্বয়কারীর সাথে এক রাউন্ড সময়ের সিঙ্ক শেষ করেছি। |
Shutdown (void) | পরিষেবাটি বন্ধ করুন, এটি যে ভূমিকা পালন করছে তা কোন ব্যাপার না। |
Sync (const bool aForceDiscoverAgain) | বিদ্যমান পরিচিতি ব্যবহার করে সিঙ্ক করুন। |
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[]) | পরিচিতিগুলির প্রদত্ত তালিকা ব্যবহার করে সিঙ্ক করুন। |
SyncWithService ( WeaveConnection *const aConnection) | প্রদত্ত TCP সংযোগ এবং সংশ্লিষ্ট এনক্রিপশন এবং কী আইডি ব্যবহার করে সিঙ্ক করুন। |
সুরক্ষিত ফাংশন | |
---|---|
AbortOnError (const WEAVE_ERROR aCode) | void যদি aCode WEAVE_NO_ERROR না হয় তাহলে অভ্যন্তরীণ ত্যাগ করুন |
AutoSyncNow (void) | void একটি স্বয়ংক্রিয় সিঙ্ক সেশন শুরু করতে অভ্যন্তরীণ ফাংশন |
CallbackForSyncCompletion (const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec) | অ্যাপ্লিকেশন স্তরে কলব্যাক প্ররোচিত করুন। |
ClearState (void) | void |
DestroyCommContext (void) | bool ওয়েভ এক্সচেঞ্জ কনটেক্সট বন্ধ করুন |
EndLocalSyncAndTryCalculateTimeFix (void) | void |
EndServiceSyncAndTryCalculateTimeFix (void) | void |
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification) | Contact * যোগাযোগের তথ্য সংরক্ষণ করতে একটি স্লট ফেরত দিন |
GetClientStateName (void) const | const char *const |
GetNextIdleContact (void) | Contact * কথা বলার জন্য পরবর্তী বৈধ এবং নিষ্ক্রিয় পরিচিতি পান |
GetNumNotYetCompletedContacts (void) | int16_t বৈধ পরিচিতিগুলির সংখ্যা পান, কিন্তু আমরা এখনও তাদের সাথে কথা বলিনি৷ |
GetNumReliableResponses (void) | int16_t এ পর্যন্ত সংগৃহীত 'নির্ভরযোগ্য' প্রতিক্রিয়ার সংখ্যা পান। |
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr) | |
InvalidateAllContacts (void) | void সমস্ত স্থানীয় পরিচিতি বাতিল করুন |
InvalidateServiceContact (void) | void পরিষেবার সাথে যোগাযোগ বাতিল করুন |
RegisterCommError ( Contact *const aContact) | void একটি নির্দিষ্ট পরিচিতিতে যোগাযোগের ত্রুটি নিবন্ধন করুন, এবং প্রয়োজনে স্বয়ংক্রিয় আবিষ্কারের সময়কাল সংক্ষিপ্ত করুন একটি যোগাযোগ শূন্য হতে পারে নির্দেশ করতে যে আমাদের সাথে কথা বলার কেউ নেই, এবং তাই কেবল স্বয়ংক্রিয় আবিষ্কারের সময়কাল ছোট করুন |
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact) | একটি পরিচিতিতে ইউনিকাস্ট সিঙ্ক অনুরোধ পাঠান। |
SetAllCompletedContactsToIdle (void) | int16_t সমস্ত সম্পূর্ণ পরিচিতি নিষ্ক্রিয় অবস্থায় পুনরায় সেট করুন, কিন্তু প্রতিক্রিয়া স্পর্শ করবেন না। |
SetAllValidContactsToIdleAndInvalidateResponse (void) | int16_t সমস্ত বৈধ স্থানীয় পরিচিতি নিষ্ক্রিয় অবস্থায় সেট করুন এবং প্রতিক্রিয়া সাফ করুন। |
SetClientState (const ClientState state) | void |
SetupUnicastCommContext ( Contact *const aContact) | ইউনিকাস্ট যোগাযোগের জন্য নতুন ওয়েভ এক্সচেঞ্জ তৈরি করুন |
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr) | void একটি নোডের যোগাযোগের তথ্য সঞ্চয় করুন যিনি আমাদের একটি সময় পরিবর্তনের বিজ্ঞপ্তি পাঠিয়েছেন |
UpdateMulticastSyncResponse (const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse) | void একটি মাল্টিকাস্ট অনুরোধ থেকে ফিরে আসা একটি প্রতিক্রিয়া প্রক্রিয়া |
UpdateUnicastSyncResponse (const TimeSyncResponse & aResponse) | void একটি ইউনিকাস্ট অনুরোধ থেকে ফিরে আসা একটি প্রতিক্রিয়া প্রক্রিয়া করুন |
_InitClient (const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood) | ক্লায়েন্ট ভূমিকার জন্য আরম্ভ করুন। |
_InitServer (const bool aIsAlwaysFresh) | সার্ভার ভূমিকার জন্য আরম্ভ করুন। |
_ShutdownClient (void) | কলব্যাক এ উপলব্ধ ক্লায়েন্ট বন্ধ করুন। |
_ShutdownCoordinator (void) | কলব্যাকে উপলভ্য সমন্বয়কারী বন্ধ করুন। |
_ShutdownServer (void) | কলব্যাকগুলিতে উপলব্ধ সার্ভার বন্ধ করুন। |
সুরক্ষিত স্ট্যাটিক ফাংশন | |
---|---|
HandleAutoDiscoveryTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleAutoSyncTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleMulticastResponseTimeout ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void |
HandleMulticastSyncResponse ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleSyncRequest ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void একটি সময় সিঙ্ক অনুরোধ আসে যখন Weave Exchange থেকে কলব্যাক |
HandleTimeChangeNotification ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleUnicastResponseTimeout ( ExchangeContext *const ec) | void |
HandleUnicastSyncResponse ( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | void |
HandleUnreliableAfterBootTimer ( System::Layer *aSystemLayer, void *aAppState, System::Error aError) | void ওয়েভ টাইমার থেকে কলব্যাক যখন আমরা বুট বাধার পরে অবিশ্বাস্য পাস করি |
IsOperationalState ( ClientState aState) | bool প্রদত্ত রাষ্ট্র কার্যকর কিনা তা নির্ধারণ করুন। |
_OnSyncSucceeded (void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) | bool |
mBootTimeForNextAutoDiscovery_usec
timesync_t mBootTimeForNextAutoDiscovery_usec
mIsAutoSyncEnabled
bool mIsAutoSyncEnabled
স্বয়ংক্রিয় সিঙ্ক বৈশিষ্ট্যের জন্য ব্যবহৃত রাজ্যগুলি।
mIsUrgentDiscoveryPending
bool mIsUrgentDiscoveryPending
mNominalDiscoveryPeriod_msec
int32_t mNominalDiscoveryPeriod_msec
mShortestDiscoveryPeriod_msec
int32_t mShortestDiscoveryPeriod_msec
mSyncPeriod_msec
int32_t mSyncPeriod_msec
mExchangeContext
ExchangeContext * mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t mUnadjTimestampLastSent_usec
EnterState_Discover
void EnterState_Discover( void )
এই স্টেট ট্রানজিশন ফাংশনগুলি অভ্যন্তরীণ এবং ত্রুটি কোড ফেরত দিতে পারে না কারণ পূর্ববর্তী রাজ্যে সেগুলি পরিচালনা করার কোন উপায় নেই।
কোনো ব্যর্থতার পরিণতি হবে শেষ পর্যন্ত অন্য একটি রাষ্ট্রীয় রূপান্তর (সময় শেষ হতে পারে) এমনকি যদি টাইমার ব্যর্থ হয়, আমরা কৌশলের বাইরে এবং কিছু ভুল অবস্থায় ঝুলতে পারি
EnterState_ServiceSync_1
void EnterState_ServiceSync_1( void )
EnterState_ServiceSync_2
void EnterState_ServiceSync_2( void )
EnterState_Sync_1
void EnterState_Sync_1( void )
EnterState_Sync_2
void EnterState_Sync_2( void )
পাবলিক প্রকার
ক্লায়েন্টস্টেট
ClientState
এই টাইম সিঙ্ক ক্লায়েন্টের বর্তমান অবস্থা
কমস্টেট
CommState
একটি নির্দিষ্ট পরিচিতির সাথে যোগাযোগের অবস্থা।
এটি জনসাধারণের মধ্যে কারণ যোগাযোগ সর্বজনীন
অবদানকারী ফিল্টার
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
আমরা প্রতিক্রিয়া থেকে সময় সংশোধন গণনা করার ঠিক আগে কলব্যাক ঘটে।
অ্যাপ্লিকেশন স্তর aContact[i].mResponseStatus কে kResponseStatus_Invalid-এ ওভাররাইট করতে পারে যাতে প্রতিক্রিয়াটি গণনাতে উপেক্ষা করা হয়
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
কলব্যাক ইঙ্গিত করতে যে আমরা এইমাত্র একটি সময় সিঙ্ক অনুরোধ পেয়েছি।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্নস | মিথ্যা এবং ইঞ্জিন এই অনুরোধ উপেক্ষা করবে |
প্রতিক্রিয়া স্থিতি
ResponseStatus
একটি নির্দিষ্ট পরিচিতির সঞ্চিত প্রতিক্রিয়ার স্থিতি।
এটি জনসাধারণের মধ্যে কারণ যোগাযোগ সর্বজনীন
সার্ভারস্টেট
ServerState
এই টাইম সিঙ্ক সার্ভারের বর্তমান অবস্থা
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
স্বয়ংক্রিয় সিঙ্ক সহ যখন সিঙ্ক ব্যর্থ বলে বিবেচিত হয় তখন কলব্যাক ঘটে৷
মনে রাখবেন যে সিঙ্ক করা বন্ধ করার জন্য Abort বলা হলে কলব্যাক ঘটবে না
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
স্বয়ংক্রিয় সিঙ্ক সহ, কিন্তু ফলাফল প্রয়োগের আগে সিঙ্ক সফল বলে বিবেচিত হওয়ার পরে কলব্যাক ঘটে।
মনে রাখবেন সফলতার মানে এই নয় যে আমাদের প্রযোজ্য ফলাফল আছে। কোনো প্রতিক্রিয়া না পাওয়া গেলে, aNumContributor 0-তে সেট করা হবে। অ্যাপ্লিকেশন স্তর aContact[i].mResponseStatus কে kResponseStatus_Invalid-এ ওভাররাইট করতে পারে যাতে গণনাতে প্রতিক্রিয়া উপেক্ষা করা হবে
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||
রিটার্নস | true যদি এই অফসেট সিস্টেমের সময় সামঞ্জস্য করতে ব্যবহার করা হয়। aNumContributor 0 হলে, রিটার্ন মান উপেক্ষা করা হবে। |
টাইম চেঞ্জ নোটিফিকেশন হ্যান্ডলার
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
কলব্যাক ইঙ্গিত করতে যে আমরা এইমাত্র একটি সময় পরিবর্তনের বিজ্ঞপ্তি পেয়েছি।
যদি স্বয়ংক্রিয় সিঙ্ক মোড সক্ষম করা থাকে, এই কলব্যাকের পরে স্বয়ংক্রিয়ভাবে একটি সময় সিঙ্ক নির্ধারিত হবে৷ অন্যথায় অ্যাপ্লিকেশান লেয়ারটি সরাসরি সিঙ্ক অপারেশন শুরু করতে ফাংশনগুলির সিঙ্ক পরিবারকে কল করতে বেছে নিতে পারে যা সাধারণ অনুপলব্ধ-ইন-কল-ব্যাক নিয়ম দ্বারা সীমাবদ্ধ নয়। যাইহোক, এটা অবশ্যই লক্ষ করা উচিত যে এই বিশেষ কলব্যাকটি এখনও উইভ এক্সচেঞ্জ লেয়ারের কলব্যাক স্ট্যাকের উপরে রয়েছে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
পাবলিক বৈশিষ্ট্য
FilterTime CorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnSyncRequestReceived
OnSyncRequestReceivedHandler OnSyncRequestReceived
যদি সেট না করা হয়, ডিফল্ট বাস্তবায়ন সর্বদা সত্য ফেরত দেয়
OnSyncSucceeded
SyncSucceededHandler OnSyncSucceeded
যদি সেট না করা হয়, ডিফল্ট আচরণ খুব ছোট সার্ভার সংশোধন ব্যতীত সমস্ত ফলাফল গ্রহণ করছে
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
স্থানীয় যোগাযোগের জন্য এনক্রিপশন পদ্ধতি
mKeyId
uint16_t mKeyId
স্থানীয় যোগাযোগের জন্য ব্যবহৃত কী আইডি
সুরক্ষিত বৈশিষ্ট্য
mApp
void * mApp
উচ্চ স্তর ডেটা পয়েন্টার
mClientState
ClientState mClientState
mConnectionToService
WeaveConnection * mConnectionToService
পরিষেবার সাথে কথা বলার জন্য ব্যবহৃত টিসিপি সংযোগ।
mContacts
Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
যোগাযোগ তথ্য আবিষ্কার জুড়ে শেখা.
আমি সবসময় তাজা
bool mIsAlwaysFresh
mIsInCallback
bool mIsInCallback
সত্য যদি আমরা উচ্চ স্তরে কলব্যাকের মধ্যে থাকি
mLastLikelihoodSent
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
mRole
TimeSyncRole mRole
এই নোডের প্রকৃত ভূমিকা।
mServerState
ServerState mServerState
mService যোগাযোগ
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
মনে রাখবেন এটি বুট টাইম হতে হবে কারণ আমাদের ঘুমের সময়ের জন্য ক্ষতিপূরণ প্রয়োজন
mTimestampLastLocalSync_usec
timesync_t mTimestampLastLocalSync_usec
মনে রাখবেন এটি বুট টাইম হতে হবে কারণ আমাদের ঘুমের সময়ের জন্য ক্ষতিপূরণ প্রয়োজন
পাবলিক ফাংশন
গর্ভপাত
WEAVE_ERROR Abort( void )
ইঞ্জিনটিকে নিষ্ক্রিয় অবস্থায় ফিরে যেতে বাধ্য করুন, এটি যা করছে তা বাতিল করে।
নোট করুন কোন সিঙ্ক সাফল্য বা ব্যর্থতা বলা হবে. সব ওয়েভ এক্সচেঞ্জ বন্ধ হয়ে যাবে। TCP সংযোগগুলিকে আর স্পর্শ করা হবে না। আমরা ইতিমধ্যে নিষ্ক্রিয় অবস্থায় থাকলে কোন অপারেশন নেই। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
অটো সিঙ্ক অক্ষম করুন
void DisableAutoSync( void )
স্বয়ংক্রিয় সিঙ্ক নিষ্ক্রিয় করুন।
শুধুমাত্র নিষ্ক্রিয় অবস্থায় উপলব্ধ। কলব্যাকে উপলব্ধ নয়।
অটো সিঙ্ক সক্ষম করুন
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
স্বয়ংক্রিয় সিঙ্ক সক্ষম করুন।
শুধুমাত্র নিষ্ক্রিয় অবস্থায় উপলব্ধ। আবিষ্কার অবিলম্বে ঘটে। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
এই ইঞ্জিনটি সঞ্চয় করার জন্য কনফিগার করা হয়েছে সর্বাধিক সংখ্যক পরিচিতির জন্য সাধারণ গেটার
নেক্সটলাইকলিহুড পান
int8_t GetNextLikelihood( void ) const
স্থায়ী জন্য সম্ভাবনা নিষ্কাশন.
OnSyncSucceeded এবং OnSyncFailed-এর কলব্যাকের মধ্যে, সিঙ্ক অপারেশন সম্পূর্ণ হওয়ার পরেই ফলাফলটি বৈধ হবে। অন্যথায় এটি ক্ষণস্থায়ী এবং পরবর্তীটি ব্যবহার করার পরিবর্তে বর্তমান সম্ভাবনা হতে পারে।
বিস্তারিত | |
---|---|
রিটার্নস | পরবর্তী অনুরোধে ব্যবহার করার প্রতিক্রিয়ার সম্ভাবনা |
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
এই ক্লায়েন্ট আরম্ভ করুন.
কলব্যাকে উপলব্ধ নয়
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
InitCoordinator
WEAVE_ERROR InitCoordinator( nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
এই সমন্বয়কারী শুরু করুন।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
ইনিটসার্ভার
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
টাইম সিঙ্ক সার্ভারের উদ্দেশ্য হলে অবজেক্ট নির্মাণের পর প্রথম ফাংশন হিসেবে সার্ভারের ভূমিকাকে ইনিশিয়ালাইজ করতে হবে।
কলব্যাকে উপলব্ধ নয়
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
মাল্টিকাস্টটাইম চেঞ্জ নোটিফিকেশন
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
মাল্টিকাস্ট সময় পরিবর্তন বিজ্ঞপ্তি থেকে উচ্চ স্তর দ্বারা বলা হয়.
কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
Register CorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
উচ্চতর স্তর দ্বারা বলা হয়েছে যে আমরা সবেমাত্র যে কোনও সার্ভারের সাথে বা NTP-এর মতো কিছু নির্ভরযোগ্য উপায়ের মাধ্যমে এক রাউন্ড সময়ের সিঙ্ক শেষ করেছি।
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
উচ্চতর স্তর দ্বারা বলা হয়েছে যে আমরা এইমাত্র অন্যান্য স্থানীয় সমন্বয়কারীর সাথে এক রাউন্ড সময়ের সিঙ্ক শেষ করেছি।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
শাটডাউন
WEAVE_ERROR Shutdown( void )
পরিষেবাটি বন্ধ করুন, এটি যে ভূমিকা পালন করছে তা কোন ব্যাপার না।
যেকোনো init ফাংশনে আরেকটি কল করার আগে বরাদ্দকৃত সম্পদ সঠিকভাবে পুনরুদ্ধার করার জন্য এই ফাংশনটি কল করা আবশ্যক। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
সিঙ্ক
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
বিদ্যমান পরিচিতি ব্যবহার করে সিঙ্ক করুন।
কোনো বৈধ পরিচিতি উপলব্ধ না থাকলে সিঙ্ক অপারেশন ব্যর্থ হতে পারে। অবিলম্বে আবিষ্কার করতে বাধ্য করতে aForceDiscoverAgain সত্যে সেট করুন। শুধুমাত্র নিষ্ক্রিয় অবস্থায় উপলব্ধ। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
পরিচিতিগুলির প্রদত্ত তালিকা ব্যবহার করে সিঙ্ক করুন।
বিদ্যমান যোগাযোগ তালিকা ফ্লাশ করা হবে। শুধুমাত্র নিষ্ক্রিয় অবস্থায় উপলব্ধ। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
প্রদত্ত TCP সংযোগ এবং সংশ্লিষ্ট এনক্রিপশন এবং কী আইডি ব্যবহার করে সিঙ্ক করুন।
সিঙ্ক শেষ হওয়ার পরে কলারকে অবশ্যই TCP সংযোগের মালিকানা নিতে হবে। টিসিপি সংযোগের জন্য কোনো কলব্যাক ওভাররাইট করা হবে না, কারণ একটি নতুন ওয়েভ এক্সচেঞ্জ তৈরি করা হবে এবং সেই প্রসঙ্গটির উপরে কলব্যাকগুলি শুধুমাত্র নিষ্ক্রিয় অবস্থায় উপলব্ধ। কলব্যাকে উপলব্ধ নয়।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
TimeSyncNode
TimeSyncNode( void )
সুরক্ষিত ফাংশন
AbortOnError
void AbortOnError( const WEAVE_ERROR aCode )
যদি aCode WEAVE_NO_ERROR না হয় তাহলে অভ্যন্তরীণ ত্যাগ করুন
AutoSyncNow
void AutoSyncNow( void )
একটি স্বয়ংক্রিয় সিঙ্ক সেশন শুরু করতে অভ্যন্তরীণ ফাংশন
CallbackForSyncCompletion
WEAVE_ERROR CallbackForSyncCompletion( const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec )
অ্যাপ্লিকেশন স্তরে কলব্যাক প্ররোচিত করুন।
ত্রুটি কলব্যাক প্ররোচিত করতে মিথ্যা থেকে aIsSuccessful সেট করুন
ক্লিয়ারস্টেট
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
প্রতিস্থাপনযোগ্য যোগাযোগ খুঁজুন
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
যোগাযোগের তথ্য সংরক্ষণ করতে একটি স্লট ফেরত দিন
GetClientStateName
const char *const GetClientStateName( void ) const
GetNextIdleContact
Contact * GetNextIdleContact( void )
কথা বলার জন্য পরবর্তী বৈধ এবং নিষ্ক্রিয় পরিচিতি পান
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
বৈধ পরিচিতিগুলির সংখ্যা পান, কিন্তু আমরা এখনও তাদের সাথে কথা বলিনি৷
GetNumReliable Responses
int16_t GetNumReliableResponses( void )
এ পর্যন্ত সংগৃহীত 'নির্ভরযোগ্য' প্রতিক্রিয়ার সংখ্যা পান।
আমরা পর্যাপ্ত সংখ্যক প্রতিক্রিয়া সংগ্রহ করেছি কিনা তা নির্ধারণ করতে ডাকা হয়েছে
InitState
WEAVE_ERROR InitState( const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr )
সকল পরিচিতি অবৈধ করুন
void InvalidateAllContacts( void )
সমস্ত স্থানীয় পরিচিতি বাতিল করুন
InvalidateServiceContact
void InvalidateServiceContact( void )
পরিষেবার সাথে যোগাযোগ বাতিল করুন
RegisterCommError
void RegisterCommError( Contact *const aContact )
একটি নির্দিষ্ট পরিচিতিতে যোগাযোগের ত্রুটি নিবন্ধন করুন, এবং প্রয়োজনে স্বয়ংক্রিয় আবিষ্কারের সময়কাল সংক্ষিপ্ত করুন একটি যোগাযোগ শূন্য হতে পারে নির্দেশ করতে যে আমাদের সাথে কথা বলার কেউ নেই, এবং তাই কেবল স্বয়ংক্রিয় আবিষ্কারের সময়কাল ছোট করুন
SyncRequest পাঠান
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
একটি পরিচিতিতে ইউনিকাস্ট সিঙ্ক অনুরোধ পাঠান।
বার্তা পাঠানো হয়েছে কিনা তা নির্দেশ করার জন্য *rIsMessageSent সেট করা হবে। যোগাযোগের ত্রুটি যেমন ঠিকানা পৌঁছানো যায় না ফেরত দেওয়া হয় না, তাই কলার রিটার্ন কোড এবং *rIsMessageSent উভয়ই পরীক্ষা করবে।
সেটAllCompletedContactsToIdle
int16_t SetAllCompletedContactsToIdle( void )
সমস্ত সম্পূর্ণ পরিচিতি নিষ্ক্রিয় অবস্থায় পুনরায় সেট করুন, কিন্তু প্রতিক্রিয়া স্পর্শ করবেন না।
এটিকে বলা হয় একই নোডে যোগাযোগের দুই রাউন্ডের মধ্যে
SetAllValidContactsToIdleAndInvalidateResponse
int16_t SetAllValidContactsToIdleAndInvalidateResponse( void )
সমস্ত বৈধ স্থানীয় পরিচিতি নিষ্ক্রিয় অবস্থায় সেট করুন এবং প্রতিক্রিয়া সাফ করুন।
আমরা একে একে তাদের সাথে যোগাযোগ শুরু করার আগে এটি বলা হয়
সেটক্লায়েন্টস্টেট
void SetClientState( const ClientState state )
ইউনিকাস্টকম কনটেক্সট সেটআপ করুন
WEAVE_ERROR SetupUnicastCommContext( Contact *const aContact )
ইউনিকাস্ট যোগাযোগের জন্য নতুন ওয়েভ এক্সচেঞ্জ তৈরি করুন
দোকান বিজ্ঞপ্তি যোগাযোগ
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
একটি নোডের যোগাযোগের তথ্য সঞ্চয় করুন যিনি আমাদের একটি সময় পরিবর্তনের বিজ্ঞপ্তি পাঠিয়েছেন
মাল্টিকাস্ট সিঙ্ক রেসপন্স আপডেট করুন
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
একটি মাল্টিকাস্ট অনুরোধ থেকে ফিরে আসা একটি প্রতিক্রিয়া প্রক্রিয়া
UpdateUnicastSyncResponse
void UpdateUnicastSyncResponse( const TimeSyncResponse & aResponse )
একটি ইউনিকাস্ট অনুরোধ থেকে ফিরে আসা একটি প্রতিক্রিয়া প্রক্রিয়া করুন
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
ক্লায়েন্ট ভূমিকার জন্য আরম্ভ করুন।
পাবলিক ফাংশনগুলির Init পরিবারের অভ্যন্তরীণভাবে ব্যবহার করার উদ্দেশ্যে। ফিরে আসার আগে অবশ্যই mClientState সেট করতে হবে। কলব্যাকে উপলব্ধ নয়
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
সার্ভার ভূমিকার জন্য আরম্ভ করুন।
পাবলিক ফাংশনগুলির Init পরিবারের অভ্যন্তরীণভাবে ব্যবহার করার উদ্দেশ্যে। ফিরে আসার আগে অবশ্যই mClientState সেট করতে হবে। কলব্যাকে উপলব্ধ নয়
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
_শাটডাউন ক্লায়েন্ট
WEAVE_ERROR _ShutdownClient( void )
কলব্যাক এ উপলব্ধ ক্লায়েন্ট বন্ধ করুন।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
_শাটডাউন কোঅর্ডিনেটর
WEAVE_ERROR _ShutdownCoordinator( void )
কলব্যাকে উপলভ্য সমন্বয়কারী বন্ধ করুন।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
_শাটডাউন সার্ভার
WEAVE_ERROR _ShutdownServer( void )
কলব্যাকগুলিতে উপলব্ধ সার্ভার বন্ধ করুন।
বিস্তারিত | |
---|---|
রিটার্নস | সাফল্যে WEAVE_NO_ERROR |
সুরক্ষিত স্ট্যাটিক ফাংশন
হ্যান্ডেল অটো ডিসকভারি টাইমআউট
void HandleAutoDiscoveryTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
হ্যান্ডেল অটো সিঙ্কটাইমআউট
void HandleAutoSyncTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
হ্যান্ডেল মাল্টিকাস্ট রেসপন্স টাইমআউট
void HandleMulticastResponseTimeout( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
মাল্টিকাস্ট সিঙ্ক রেসপন্স হ্যান্ডল করুন
void HandleMulticastSyncResponse( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
হ্যান্ডেল সিঙ্ক রিকোয়েস্ট
void HandleSyncRequest( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
একটি সময় সিঙ্ক অনুরোধ আসে যখন Weave Exchange থেকে কলব্যাক
HandleTimeChangeNotification
void HandleTimeChangeNotification( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
হ্যান্ডল ইউনিকাস্ট রেসপন্স টাইমআউট
void HandleUnicastResponseTimeout( ExchangeContext *const ec )
হ্যান্ডল ইউনিকাস্ট সিঙ্ক রেসপন্স
void HandleUnicastSyncResponse( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
অনির্ভরযোগ্য আফটারবুটটাইমার পরিচালনা করুন
void HandleUnreliableAfterBootTimer( System::Layer *aSystemLayer, void *aAppState, System::Error aError )
ওয়েভ টাইমার থেকে কলব্যাক যখন আমরা বুট বাধার পরে অবিশ্বাস্য পাস করি
আইএসঅপারেশনাল স্টেট
bool IsOperationalState( ClientState aState )
প্রদত্ত রাষ্ট্র কার্যকর কিনা তা নির্ধারণ করুন।
ক্লায়েন্টস্টেট অপারেশনাল অবস্থাকে বোঝায় কিনা তা নির্ধারণ করার সুবিধার পদ্ধতি, অর্থাৎ ক্লায়েন্ট আরম্ভ সম্পন্ন করেছে এবং বন্ধ করার প্রক্রিয়ায় নেই।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | সূচনা শেষ হওয়ার পরে এবং শাটডাউন শুরু হওয়ার আগে যদি রাজ্যটি পড়ে তবে সত্য, অন্যথায় মিথ্যা। |
_OnSyncSucceeded
bool _OnSyncSucceeded( void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor )