nl:: Weave:: Profiles:: DataManagement_Current:: SubscriptionClient
Özet
Herkese açık türler |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
typedefvoid(*
Abonelik etkinliklerini uygulamaya geçirmek için geri çağırma. |
EventID{
|
enum |
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
|
typedefvoid(*
Bir sonraki yeniden abone olma işleminden önce beklenecek zaman aralığını getirmek için geri çağırma. |
Herkese açık statik işlevler |
|
---|---|
DefaultEventHandler(EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
DefaultResubscribePolicyCallback(void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec)
|
void
Varsayılan politika uygulaması, WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEXe kadar bir fibonacci dizisinden sonra, sürekli artan bir zaman aralığı yerine milisaniyelik çözünürlüğe sahip rastgele bir zaman dilimi seçer.
|
Kamu işlevleri |
|
---|---|
AbortSubscription(void)
|
void
Aboneliği iptal etme.
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
Yeniden abone olma mekanizmasını devre dışı bırakın.
|
DiscardUpdates()
|
void
SubscriptionClient hizmetine, güncellenmeyi bekleyen TraitPath grubunu boşaltmasını ve varsa devam eden güncelleme isteğini iptal etmesini bildirir.
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
Otomatik yeniden abone olma özelliğini etkinleştirin.
|
EndSubscription(void)
|
Aboneliği sonlandırın.
|
FlushUpdate()
|
Uygulamanın tüm TraitUpdatableDataSink'leri değiştirmeyi tamamladığını gösterir.
|
FlushUpdate(bool aForce)
|
|
Free(void)
|
void
Bu SubscriptionClient nesnesini serbest bırakın.
|
GetBinding(void) const
|
Binding *
|
GetLivenessTimeoutMsec(void) const
|
uint32_t
|
GetPeerNodeId(void) const
|
uint64_t
|
GetSubscriptionId(uint64_t *const apSubscriptionId)
|
|
IndicateActivity(void)
|
void
|
InitiateCounterSubscription(const uint32_t aLivenessTimeoutSec)
|
void
|
InitiateSubscription(void)
|
void
SubscriptionClient değerini başlatıcı olarak yapılandırın (karşı abonenin aksine) ve değilse aboneliği öne çıkarın.
|
IsCanceling() const
|
bool
|
IsEstablished()
|
bool
|
IsEstablishedIdle()
|
bool
|
IsFree()
|
bool
|
IsInProgressOrEstablished()
|
bool
|
IsInResubscribeHoldoff()
|
bool
|
IsRetryEnabled()
|
bool
|
IsTerminated()
|
bool
|
IsUpdatePendingOrInProgress()
|
bool
|
LockUpdateMutex(void)
|
void
|
OnCatalogChanged()
|
void
Bu yöntem, TraitDataSink kataloğu değiştirildiğinde çağrılmalıdır.
|
ResetResubscribe(void)
|
void
Yeniden abone olma mekanizmasını devre dışı bırakın.
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
SubscriptionClient hizmetine, güncelleme isteklerini yeniden deneme işlemini durdurmasını söyler.
|
UnlockUpdateMutex(void)
|
void
|
Yapılar |
|
---|---|
nl:: |
|
nl:: |
Birlikler |
|
---|---|
nl:: |
|
nl:: |
Herkese açık türler
@130
@130
EventCallback
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
Abonelik etkinliklerini uygulamaya geçirmek için geri çağırma.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
EventID
EventID
Özellikler | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
SubscriptionEngine, NotificationRequest mesajı içinde bir etkinlik akışı saydığında oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free() çağrısını yapabilir. |
||||||||||||
kEvent_OnExchangeStart
|
Bağlama hazırlandıktan ve ExchangeContext ayarlandıktan sonra, ancak herhangi bir ileti gönderilmeden önce oluşturulur. Bu, bir uygulamanın ExchangeContext ayarlarını düzenlemek için son şanstır. |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
Güncelleme kümesindeki tüm yolların eş tarafından işlendiğini ve daha fazla yolun güncellenmesine gerek olmadığını belirten bir etkinlik. |
||||||||||||
kEvent_OnNotificationProcessed
|
SubscriptionEngine bir NotificationRequest mesajını işlemeyi bitirdiğinde oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free() çağrısını yapabilir. |
||||||||||||
kEvent_OnNotificationRequest
|
Bir NotificationRequest'in alımında oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free() çağrısını yapabilir. |
||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded
|
Motor, Abone İsteği göndermeye hazır olduğunda gönderilir. Uygulamanın abone olmak istediği yolları doldurması beklenir. |
||||||||||||
kEvent_OnSubscriptionActivity
|
Abonelik etkinliğini gösteren bir etkinlik. Müşteri, abonelik etkinliğiyle ilgili bir bildirim aldığında oluşturulur; bu bildirime abonelik işleminin başarılı şekilde kurulması, NotificationRequest'in alınması veya Abone Onayı mesajına yanıt olarak bir durum raporu alınması dahildir. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
Aboneliğin başarılı bir şekilde oluşturulmasından sonra oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free() çağrısını yapabilir. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
Bu aboneliğin sonunu belirtir. nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback öğesine gönderilen parametreler, otomatik olarak yeniden abone olmayı deneyip denemeyeceğinizi belirtir. Etkinlik işleyici çağrısı sırasında istemcinin durumu Uygulama, bu durumda AbortSubscription() veya Free() çağrısı yapabilir. Gönderilen parametrelerde, aboneliğin sonlandırılma nedenini belirten bir hata kodu da bulunur. Abonelik çeşitli nedenlerle feshedilmiş olabilir (WRM ACK eksik, ExchangeContext ayırma hatası, yanıt zaman aşımı,...) İstemci tarafından oluşturulmuş bazı olası hata kodları:
|
||||||||||||
kEvent_OnUpdateComplete
|
Güncellemenin tamamlandığını belirten bir etkinlik. Etkinlik parametreleri, belirli bir özellik yolunun güncellenmesinin başarılı veya başarısız olduğunu belirtir. |
ResubscribePolicyCallback
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
Bir sonraki yeniden abone olma işleminden önce beklenecek zaman aralığını getirmek için geri çağırma.
Yeniden abone olmaktan vazgeçen uygulamalar bu işlevde işlemi iptal edebilir veya iptal edebilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık statik işlevler
DefaultEventHandler
void DefaultEventHandler( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
DefaultResubscribePolicyCallback
void DefaultResubscribePolicyCallback( void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec )
Varsayılan politika uygulaması, WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEXe kadar bir fibonacci dizisinden sonra, sürekli artan bir zaman aralığı yerine milisaniyelik çözünürlüğe sahip rastgele bir zaman dilimi seçer.
WDM_RESUBSCRIPTION_MAX_FIBONACCI_STEP_INDEX geçtikten sonra rastgele bekleme süresinin ortalaması yaklaşık bir saat olacak. Yeniden deneme sayısı 0'a sıfırlandığında dizi baştan başlar.
Kamu işlevleri
AbortSubscription
void AbortSubscription( void )
Aboneliği iptal etme.
Bir müşteri aboneliğini iptal edebilir.
Abonelikle ilişkili tüm trafiği kabul etmeyi hemen durdurun ve temeldeki tüm iletişim kaynaklarını kullanıma sunun. SubscriptionClient nesnesinin kendisi geçerli olmaya devam eder ve tekrar kullanılabilir.
Abonelik yayıncısına bildirimde bulunmadan ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği yayınlamadan, aboneliğin istemci sonunu sonlandırır. Karşılıklı abonelik varsa sayaç aboneliği de sonlandırılır.
AbortSubscription() çağrıldıktan sonra SubscriptionClient
nesnesi Terminated
durumuna girer. Fesih işlemi tamamlandığında nesne Initialized
durumuna girer. Her iki geçiş de AbortSubscription() çağrısı içinde eşzamanlı olarak gerçekleşir.
AbortSubscription() döndürüldükten sonra SubscriptionClient
nesnesi başka bir abonelik başlatmak için kullanılabilir veya Free() yönteminin çağırılmasıyla serbest bırakılabilir.
ClearUpdated
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
DisableResubscribe
void DisableResubscribe( void )
Yeniden abone olma mekanizmasını devre dışı bırakın.
Bekleyen bir yeniden abone olma durumu varsa işlem iptal edilir.
DiscardUpdates
void DiscardUpdates()
SubscriptionClient hizmetine, güncellenmeyi bekleyen TraitPath grubunu boşaltmasını ve varsa devam eden güncelleme isteğini iptal etmesini bildirir.
Bu yöntem, herhangi bir geri çağırma işlevinden çağrılabilir.
EnableResubscribe
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Otomatik yeniden abone olma özelliğini etkinleştirin.
Hata olması durumunda bir sonraki yeniden deneme zamanını belirtmek için bir geri arama ekleyin.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
EndSubscription
WEAVE_ERROR EndSubscription( void )
Aboneliği sonlandırın.
Müşteri aboneliğini güzel bir şekilde sonlandırın.
WDM_ENABLE_SUBSCRIPTION_CANCEL derleme zamanı seçeneği etkinleştirildiğinde, eşe bir İptal İsteği göndererek aboneliği sorunsuz şekilde sonlandırın. Abonelikle ilişkili kaynaklar, eşten yanıt alındığında veya zaman aşımına uğradığında serbest bırakılır. Seçenek devre dışı bırakıldığında çağrı, AbortSubscription() ile eşdeğer olur.
Aboneliğin istemci sonunu düzgün bir şekilde fesheder. Abonelik iptali desteği etkinleştirilirse abonelik yayıncısına bir Abone İptal İsteği gönderilir ve sistem, aboneliği sonlandırmadan önce bir yanıt bekler. Aksi takdirde, abonelik AbortSubscription() işlevine benzer şekilde hemen sonlandırılır. Karşılıklı abonelik varsa sayaç aboneliği de sonlandırılır.
Abonelik İptal İsteği için yanıt beklerken SubscriptionClient
, Canceling
durumuna girer.
Fesih işlemi başladığında, SubscriptionClient
nesnesi Terminated
durumuna girer ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği gönderilir. İptal desteği etkinleştirilmemişse etkinlik işleyicinin EndSubscription() çağrısı içinde eşzamanlı olarak çağrılabileceğini unutmayın.
Uygulamanın olay işleyicisi döndürüldükten sonra SubscriptionClient
nesnesi, Initialized
durumuna girer. Bu noktada SubscriptionClient
nesnesi başka bir abonelik başlatmak için kullanılabilir veya Free() yönteminin çağırılmasıyla serbest bırakılabilir.
FlushUpdate
WEAVE_ERROR FlushUpdate()
Uygulamanın tüm TraitUpdatableDataSink'leri değiştirmeyi tamamladığını gösterir.
Önceki bir güncelleme değişimi devam etmediği sürece, istemci güncellenmiş olarak işaretlenen tüm verileri alır ve tek bir güncelleme isteğinde yanıt verene gönderir. Bu yöntem herhangi bir iş parçacığından çağrılabilir.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İadeler |
Başarılı olunması halinde WEAVE_NO_ERROR; hata durumunda diğer WEAVE_ERROR kodları.
|
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
Ücretsiz
void Free( void )
Bu SubscriptionClient nesnesini serbest bırakın.
Bir SubscriptionClient
nesnesini serbest bırakın.
Gerekirse AbortSubscription() çağrısı yapar ve bu SubscriptionClient nesnesindeki referansı serbest bırakır. Doğru kullanım kapsamında bu, nesnenin nesne havuzuna döndürülebilmesini sağlamalıdır.
SubscriptionClient
nesnesini serbest bırakır. Bir abonelik etkin durumdaysa veya devam ediyorsa abonelik, AbortSubscription() çağrısına benzer şekilde hemen sonlandırılır. Devam eden bir güncelleme isteği varsa da benzer şekilde iptal edilir.
Uygulama, bir SubscriptionClient
nesnesinin kullanım süresi boyunca Free() işlevini tam olarak bir kez çağırmaktan sorumludur. Free() çağrıldıktan sonra, nesneye başka referans yapılmamalıdır.
GetBinding
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
GetSubscriptionId
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
IndicateActivity
void IndicateActivity( void )
InitiateCounterSubscription
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
InitiateSubscription
void InitiateSubscription( void )
SubscriptionClient değerini başlatıcı olarak yapılandırın (karşı abonenin aksine) ve değilse aboneliği öne çıkarın.
IsCanceling
bool IsCanceling() const
IsEstablished
bool IsEstablished()
IsEstablishedIdle
bool IsEstablishedIdle()
IsFree
bool IsFree()
IsInProgressOrEstablished
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
IsRetryEnabled
bool IsRetryEnabled()
IsTerminated
bool IsTerminated()
IsUpdatePendingOrInProgress
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
Bu yöntem, TraitDataSink kataloğu değiştirildiğinde çağrılmalıdır.
ResetResubscribe
void ResetResubscribe( void )
Yeniden abone olma mekanizmasını devre dışı bırakın.
Bu işlem hemen bir yeniden deneme işlemi başlatır
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
SetUpdated
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
SubscriptionClient hizmetine, güncelleme isteklerini yeniden deneme işlemini durdurmasını söyler.
Uygulamanın tüm meta verileri silmeden bir süreliğine güncellemeleri askıya almasına izin verir. FlushUpdate çağrıldığında güncellemeler ve yeniden denemeler devam ettirilir. Devam eden bir güncelleme varken güncellemeleri askıya almak amacıyla çağrıldığında, güncelleme iptal edilmez ancak başarısız olursa FlushUpdate yeniden çağrılana kadar yeniden denenmez.
UnlockUpdateMutex
void UnlockUpdateMutex( void )