nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

खास जानकारी

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

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

सुरक्षित किए गए टाइप

@324 enum

सार्वजनिक विशेषताएं

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)
दिए गए Binding का इस्तेमाल करके सिंक करें और दिए गए पॉइंटर का इस्तेमाल करके कॉलबैक करें.

सुरक्षित फ़ंक्शन

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

 ClientState

इस टाइम सिंक क्लाइंट की मौजूदा स्थिति

प्रॉपर्टी
kClientState_Idle

शुरू किया गया, समय बदलने की सूचना का इंतज़ार किया जा रहा है, लेकिन समय के हिसाब से सिंक करने की कोई कार्रवाई नहीं हो रही है.

kClientState_Sync_1

पहली बार सिंक करने की कोशिश की जा रही है.

kClientState_Sync_2

सिंक करने की दूसरी बार कोशिश की जा रही है.

SyncCompletionHandler

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
इनकमिंग मैसेज के लिए इस्तेमाल किया गया Exchange कॉन्टेक्स्ट. इसका इस्तेमाल मैसेज की प्रामाणिकता की पुष्टि करने के लिए किया जा सकता है

सुरक्षित किए गए टाइप

@324

 @324

सार्वजनिक विशेषताएं

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

सुरक्षित किए गए एट्रिब्यूट

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

का इस्तेमाल एकतरफ़ा फ़्लाइट के समय को स्टोर करने के लिए किया जाता है.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

नतीजा रजिस्टर होने के दौरान, टाइमस्टैंप को सेव करने के लिए इसका इस्तेमाल किया जाता है

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

इसका इस्तेमाल, रिमोट नोड के सिस्टम का समय तब स्टोर करने के लिए किया जाता है, जब रिस्पॉन्स मैसेज भेजा जाने वाला था

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

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

रद्द करें

void Abort(
  void
)

वर्तमान समय समन्वयन कार्रवाई रद्द करें.

बाइंडिंग छोड़ें. ऐक्टिव एक्सचेंज की सुविधा को रद्द करें. उसे फिर से इस्तेमाल में नहीं होने पर चालू करें.

GetClientState

ClientState GetClientState(
  void
) const 

इस क्लाइंट की वर्तमान स्थिति फिर से पाएं.

विवरण
लौटाए जाने वाले प्रॉडक्ट
मौजूदा स्थिति

इनिट

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

इस क्लाइंट को शुरू करें.

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

विवरण
पैरामीटर
[in] aApp
ऊपरी लेयर डेटा का पॉइंटर, जिसका इस्तेमाल कॉलबैक में ज़्यादा लेयर के लिए किया जाता है.
[in] aExchangeMgr
Exchange Manager के लिए पॉइंटर, जिसका इस्तेमाल समय में बदलाव की सूचना वाले मैसेज हैंडलर के लिए रजिस्टर करने में किया जाएगा
लौटाए जाने वाले प्रॉडक्ट
सफलता पर WEAVE_NO_ERROR

सिंक करें

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

दिए गए Binding का इस्तेमाल करके सिंक करें और दिए गए पॉइंटर का इस्तेमाल करके कॉलबैक करें.

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

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

सुरक्षित फ़ंक्शन

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

समय में सुधार करने के लिए रजिस्टर की गई जानकारी अमान्य करें.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

देखें कि समय में सुधार करने के लिए, रजिस्टर की गई जानकारी मान्य है या नहीं.

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

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

ProceedToNextState

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
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

सुरक्षित किए गए स्टैटिक फ़ंक्शन

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

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

HandleTimeChangeNotification

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