nl:: बुनें:: प्रोफाइल:: समय:: सिंगलसोर्सटाइमसिंक क्लाइंट

सारांश

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

ClientState {
kClientState_Idle ,
kClientState_Sync_1 ,
kClientState_Sync_2
}
एन्यूम
इस टाइम सिंक क्लाइंट की वर्तमान स्थिति
SyncCompletionHandler )(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) टाइपडीफ
void(*
दोनों बार सिंक करने के प्रयास पूरे होने के बाद कॉलबैक।
TimeChangeNotificationHandler )(void *const aApp, ExchangeContext *aEC) टाइपडीफ
void(*
कॉलबैक यह इंगित करने के लिए कि हमें अभी-अभी समय परिवर्तन की सूचना मिली है।

संरक्षित प्रकार

@324 एन्यूम

सार्वजनिक गुण

OnTimeChangeNotificationReceived

संरक्षित गुण

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
एक तरफा उड़ान के समय को स्टोर करने के लिए उपयोग किया जाता है।
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
परिणाम दर्ज होने पर टाइमस्टैम्प को स्टोर करने के लिए उपयोग किया जाता है
mRemoteTimestamp_usec
timesync_t
रिमोट नोड के सिस्टम समय को स्टोर करने के लिए उपयोग किया जाता है, जब प्रतिक्रिया संदेश भेजा जाने वाला था
mUnadjTimestampLastSent_usec
timesync_t

सार्वजनिक समारोह

Abort (void)
void
वर्तमान समय सिंक ऑपरेशन को निरस्त करें।
GetClientState (void) const
इस क्लाइंट की वर्तमान स्थिति पुनर्प्राप्त करें।
Init (void *const aApp, WeaveExchangeManager *const aExchangeMgr)
इस क्लाइंट को इनिशियलाइज़ करें।
Sync ( Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
सिंक दिया उपयोग कर बाइंडिंग और एक कॉलबैक प्रदान की सूचक का उपयोग कर बनाता है।

संरक्षित कार्य

EnterSync2 (void)
void
FinalProcessing (void)
void
GetClientStateName (void) const
const char *
InvalidateRegisteredResult (void)
void
समय सुधार के लिए पंजीकृत जानकारी को अमान्य करें।
IsRegisteredResultValid (void)
bool
जांचें कि क्या समय सुधार के लिए पंजीकृत जानकारी मान्य है।
OnResponseTimeout (void)
void
OnSyncResponse (uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState (void)
void
RegisterSyncResultIfNewOrBetter (const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest (void)
SetClientState (const ClientState state)
void
_AbortWithCallback (const WEAVE_ERROR aErrorCode)
void

संरक्षित स्थिर कार्य

HandleResponseTimeout ( ExchangeContext *aEC)
void
HandleSyncResponse ( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification ( ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

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

क्लाइंट का राज्य

 ClientState

इस टाइम सिंक क्लाइंट की वर्तमान स्थिति

गुण
kClientState_Idle

प्रारंभ, समय परिवर्तन अधिसूचना की प्रतीक्षा कर रहा है, लेकिन कोई वास्तविक समय समन्वयन कार्रवाई नहीं हो रही है।

kClientState_Sync_1

पहली बार सिंक करने के प्रयास पर काम करना।

kClientState_Sync_2

दूसरी बार सिंक करने के प्रयास पर काम करना।

तुल्यकालनपूर्णताहैंडलर

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

दोनों बार सिंक करने के प्रयास पूरे होने के बाद कॉलबैक।

यदि aErrorCode WEAVE_NO_ERROR है, तो कम से कम एक प्रयास सफल हुआ है। अन्यथा दोनों aErrorCode में विफल नवीनतम विफलता को इंगित करता है।

विवरण
मापदंडों
[in] aApp
ऐप परत डेटा के लिए एक सूचक, Init में सेट।
[in] aErrorCode
WEAVE_NO_ERROR यदि कम से कम एक समय समन्वयन कार्रवाई सफल हुआ
[in] aCorrectedSystemTime
केवल तभी मान्य है aErrorCode है WEAVE_NO_ERROR

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

कॉलबैक यह इंगित करने के लिए कि हमें अभी-अभी एक समय परिवर्तन सूचना प्राप्त हुई है।

पर शून्य पर सेट Init । यदि सेट नहीं किया गया है, तो समय परिवर्तन अधिसूचना पर ध्यान नहीं दिया जाएगा। इस कॉलबैक में ऐप लेयर को एबॉर्ट और सिंक को कॉल करने की अनुमति है।

विवरण
मापदंडों
[in] aApp
ऐप परत डेटा के लिए एक सूचक, Init में सेट।
[in] aEC
इस आने वाले संदेश के लिए एक्सचेंज संदर्भ का उपयोग किया जाता है, जिसका उपयोग इसकी प्रामाणिकता को सत्यापित करने के लिए किया जा सकता है

संरक्षित प्रकार

@324

 @324

सार्वजनिक गुण

ऑनटाइम चेंज नोटिफिकेशन प्राप्त हुआ

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

संरक्षित गुण

एमएपी

void * mApp

एम बाइंडिंग

Binding * mBinding

एम क्लाइंटस्टेट

ClientState mClientState

एमएक्सचेंजकॉन्टेक्स्ट

ExchangeContext * mExchangeContext

एमएक्सचेंजएमजीआर

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

एक तरफा उड़ान के समय को स्टोर करने के लिए इस्तेमाल किया

एमआईएसइनकॉलबैक

bool mIsInCallback

मोनसिंकपूर्ण

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

परिणाम दर्ज होने पर टाइमस्टैम्प को स्टोर करने के लिए उपयोग किया जाता है

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

रिमोट नोड के सिस्टम समय को स्टोर करने के लिए उपयोग किया जाता है, जब प्रतिक्रिया संदेश भेजा जाने वाला था

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

सार्वजनिक समारोह

बीच में बंद करें

void Abort(
  void
)

वर्तमान समय सिंक ऑपरेशन को निरस्त करें।

रिलीज बाइंडिंग । सक्रिय विनिमय निरस्त करें। निष्क्रिय अवस्था में वापस जाएँ।

गेटक्लाइंटस्टेट

ClientState GetClientState(
  void
) const 

इस क्लाइंट की वर्तमान स्थिति पुनर्प्राप्त करें।

विवरण
रिटर्न
वर्तमान स्थिति

में इस

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

इस क्लाइंट को इनिशियलाइज़ करें।

अन्य कार्यों का उपयोग करने से पहले कॉल किया जाना चाहिए। जीरो/न्यूल सभी आंतरिक डेटा को इनिशियलाइज़ करता है और टाइम चेंज नोटिफिकेशन के साथ रजिस्टर करता है।

विवरण
मापदंडों
[in] aApp
उच्च परत डेटा के लिए एक सूचक, उच्च परत पर कॉलबैक में उपयोग किया जाता है।
[in] aExchangeMgr
एक्सचेंज मैनेजर के लिए एक पॉइंटर, जिसका इस्तेमाल टाइम चेंज नोटिफिकेशन मैसेज हैंडलर के लिए पंजीकरण में किया जाएगा
रिटर्न
WEAVE_NO_ERROR सफलता पर

सिंक

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

सिंक दिया उपयोग कर बाइंडिंग और एक कॉलबैक प्रदान की सूचक का उपयोग कर बनाता है।

यदि कोई समय सिंक ऑपरेशन चल रहा है, तो कॉलबैक किए बिना इसे पूरी तरह से निरस्त कर दिया जाएगा। कॉलबैक OnSyncCompleted में उपलब्ध नहीं है, लेकिन OnTimeChangeNotificationReceived में अनुमत है। त्रुटि होने पर, इस फ़ंक्शन से लौटने से पहले Abort को परोक्ष रूप से बुलाया जाएगा।

विवरण
मापदंडों
[in] aBinding
बंधन समय सर्वर से संपर्क करने में इस्तेमाल किया जाएगा
[in] OnSyncCompleted
समय सिंक संचालन पूरा होने के बाद उपयोग किए जाने वाले कॉलबैक फ़ंक्शन
रिटर्न
WEAVE_NO_ERROR सफलता पर

संरक्षित कार्य

EnterSync2

void EnterSync2(
  void
)

अंतिम प्रसंस्करण

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

अमान्य पंजीकृत परिणाम

void InvalidateRegisteredResult(
  void
)

समय सुधार के लिए पंजीकृत जानकारी को अमान्य करें।

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

जांचें कि क्या समय सुधार के लिए पंजीकृत जानकारी मान्य है।

ऑन रिस्पांसटाइमआउट

void OnResponseTimeout(
  void
)

ऑनसिंक रिस्पांस

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

आगे बढ़ेंअगले राज्य

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

सेट क्लाइंटस्टेट

void SetClientState(
  const ClientState state
)

_एबॉर्ट विथ कॉलबैक

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

संरक्षित स्थिर कार्य

हैंडल रिस्पांस टाइमआउट

void HandleResponseTimeout(
  ExchangeContext *aEC
)

हैंडलसिंक रिस्पांस

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

हैंडलटाइम चेंज नोटिफिकेशन

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)