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

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

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

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

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

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

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

जानकारी
पैरामीटर
[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
)