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 aktarmak için geri arama. |
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ı, sürekli artan bir aralıkta milisaniyelik çözünürlüklü rastgele bir zaman dilimi seçer. Bu zaman dilimi, WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX. adıma kadar bir fibonacci sırasını takip eder.
|
Herkese açık işlevler |
|
---|---|
AbortSubscription(void)
|
void
Aboneliği iptal et.
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
Yeniden abone olma mekanizmasını devre dışı bırakın.
|
DiscardUpdates()
|
void
SubscriptionClient öğesine güncellenmeyi bekleyen TraitPath'ler grubunu boşaltmasını ve devam eden güncelleme isteğini (varsa) iptal etmesini söyler.
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
Otomatik yeniden abone olma özelliğini etkinleştir.
|
EndSubscription(void)
|
Aboneliği sonlandırın.
|
FlushUpdate()
|
Uygulamanın tüm TraitUpdatableDataSinks dönüşümlerini tamamladığını gösteren sinyaller.
|
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 öğesini bir başlatıcı olarak yapılandırın (karşı abone değil) ve değilse aboneliği başlatı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ı başlatın.
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
SubscriptionClient, güncelleme isteklerini yeniden denemeyi durdurmasını bildirir.
|
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 aktarmak için geri arama.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
EventID
EventID
Özellikler | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
SubscriptionEngine, NotificationRequest mesajında bir etkinlik akışı saydığında oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free()'yi çağırabilir. |
||||||||||||
kEvent_OnExchangeStart
|
Bağlama hazırlandıktan ve ExchangeContext ayarlandıktan sonra, herhangi bir ileti gönderilmeden önce oluşturulur. Bu, bir uygulamanın ExchangeContext ayarlarını düzenlemesi için son şanstır. |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
Güncelleme kümesindeki tüm yolların eş tarafından işlendiğini ve başka yolların güncellenmesine gerek olmadığını belirten bir etkinlik. |
||||||||||||
kEvent_OnNotificationProcessed
|
SubscriptionEngine, bir NotificationRequest mesajı işlemeyi bitirdiğinde oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free()'yi çağırabilir. |
||||||||||||
kEvent_OnNotificationRequest
|
Bildirim İsteği alındığında oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free()'yi çağırabilir. |
||||||||||||
kEvent_OnSubscribeRequestPrepareNeeded
|
Motor, Abone Olma İsteği'ni 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 bu kod oluşturulur. Buna abonelik kurulumunun başarılı olması, Bildirim İsteği'nin alınması veya SubscriptionConfirm iletisine yanıt olarak bir durum raporunun alınması dahildir. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
Aboneliğin başarıyla kurulmasının ardından oluşturulur. Uygulama bu noktada EndSubscription(), AbortSubscription() veya Free()'yi çağırabilir. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
Bu aboneliğin sonunu işaretler. nl::Weave::Profiles::DataManagement_Current::SubscriptionClient::EventCallback'e gönderilen parametreler otomatik olarak yeniden abone olma girişiminde bulunulup bulunulmayacağını gösterir. Etkinlik işleyici çağrısı sırasında istemcinin durumu Uygulama bu durumda AbortSubscription() veya Free()'yi çağırabilir. Gönderilen parametrelerde, aboneliğin sona erdirme nedenini belirten bir hata kodu da yer alır. Abonelik çeşitli nedenlerden dolayı (WRM ACK'nın eksik olması, ExchangeContext ayırma hatası, yanıt zaman aşımı vb.) sonlandırılmış olabilir İstemci tarafından oluşturulan bazı olası hata kodları:
|
||||||||||||
kEvent_OnUpdateComplete
|
Güncellemenin tamamlandığını belirten bir etkinlik. Etkinlik parametreleri, belirli bir özellik yolunun güncellemesinin 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.
Uygulamaların yeniden abone olmaktan vazgeçmeye karar vermiş olması durumunda bu işlevde uygulamayı iptal etmesine/iptal etmesine izin verilir.
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ı, sürekli artan bir aralıkta milisaniyelik çözünürlüklü rastgele bir zaman dilimi seçer ve WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX, en fazla bir fibonacci dizisini takip eder.
WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX sonrasında yapılan rastgele bekleme süresinin ortalaması yaklaşık bir saat olur. Yeniden deneme sayısı 0'a sıfırlandığında adım sırası en baştan başlar.
Herkese açık işlevler
AbortSubscription
void AbortSubscription( void )
Aboneliği iptal et.
İstemci aboneliğini iptal etme
Abonelikle ilişkili tüm trafiği kabul etmeyi derhal durdurun ve temel alınan tüm iletişim kaynaklarını serbest bırakın. SubscriptionClient nesnesinin kendisi geçerli kalır ve tekrar kullanılabilir.
Abonelik yayıncısını bilgilendirmeden ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği iletmeden aboneliğin istemci sonunu sonlandırır. Karşılıklı abonelik varsa karşı abonelik de sonlandırılır.
AbortSubscription() çağrıldıktan sonra, SubscriptionClient
nesnesi Terminated
durumuna girer. Sonlandırma işlemi tamamlandığında nesne Initialized
durumuna girer. Her iki geçiş de AbortSubscription() çağrısında eşzamanlı olarak gerçekleşir.
AbortSubscription() geri döndükten sonra, SubscriptionClient
nesnesi başka bir abonelik başlatmak için kullanılabilir veya Free() yöntemi çağrılarak 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.
Beklemede olan bir yeniden abone olma işlemi varsa bu işlem iptal edilir.
DiscardUpdates
void DiscardUpdates()
SubscriptionClient öğesine güncellenmeyi bekleyen TraitPath'ler grubunu boşaltmasını ve devam eden güncelleme isteğini (varsa) iptal etmesini söyler.
Bu yöntem herhangi bir geri çağırma kullanılarak çağrılabilir.
EnableResubscribe
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Otomatik yeniden abone olma özelliğini etkinleştir.
Hata durumunda bir sonraki yeniden deneme zamanını belirtmek için geri çağırma ekleyin.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
EndSubscription
WEAVE_ERROR EndSubscription( void )
Aboneliği sonlandırın.
İstemci aboneliğini sorunsuz bir şekilde sonlandırın.
WDM_ENABLE_SUBSCRIPTION_CANCEL derleme zamanı seçeneği etkinleştirildiğinde, eşe İptal İsteği göndererek aboneliği sorunsuz bir ş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() işlevine eşdeğer olur.
Aboneliğin istemci sonunu düzgün bir şekilde fesheder. Abonelik iptali desteği etkinleştirilirse aboneliğin yayıncısına bir SubscriptionCancelRequest mesajı gönderilir ve sistem, aboneliği sonlandırmadan önce yanıt bekler; Aksi takdirde abonelik, AbortSubscription() yöntemine benzer bir şekilde hemen sonlandırılır. Karşılıklı abonelik varsa karşı abonelik de sonlandırılır.
Abonelik İptal İsteği için yanıt beklerken SubscriptionClient
, Canceling
durumuna girer.
Sonlandırma işlemi başladıktan sonra, SubscriptionClient
nesnesi Terminated
durumuna girer ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği teslim edilir. İptal desteği etkinleştirilmemişse etkinlik işleyicinin, EndSubscription() çağrısında eşzamanlı olarak çağrılabileceğini unutmayın.
Uygulamanın etkinlik işleyicisi geri döndüğünde, SubscriptionClient
nesnesi Initialized
durumuna girer. Bu noktada SubscriptionClient
nesnesi, başka bir abonelik başlatmak için kullanılabilir veya Free() yöntemi çağrılarak serbest bırakılabilir.
FlushUpdate
WEAVE_ERROR FlushUpdate()
Uygulamanın tüm TraitUpdatableDataSinks dönüşümlerini tamamladığını gösteren sinyaller.
Önceki bir güncelleme değişimi devam etmiyorsa 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ı olursa WEAVE_NO_ERROR; diğer WEAVE_ERROR kodlarını kullanın.
|
FlushUpdate
WEAVE_ERROR FlushUpdate( bool aForce )
Ücretsiz
void Free( void )
Bu SubscriptionClient nesnesini serbest bırakın.
Bir SubscriptionClient
nesnesini yer açın.
Gerekirse AbortSubscription() çağrısını yapar ve bu SubscriptionClient nesnesindeki refcount'u serbest bırakır. Doğru kullanım altında bu, nesnenin nesne havuzuna döndürülmesini sağlamalıdır
SubscriptionClient
nesnesini serbest bırakır. Bir abonelik etkinse veya devam ediyorsa abonelik, AbortSubscription() çağrısına benzer şekilde hemen sonlandırılır. Devam eden güncelleme istekleri varsa bunlar da benzer şekilde iptal edilir.
Uygulama, bir SubscriptionClient
nesnesinin ömrü boyunca Free()'yi 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 öğesini bir başlatıcı olarak yapılandırın (karşı abone değil) ve değilse aboneliği başlatı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ı başlatın.
Bu işlem anında yeniden deneme başlatır
SetLivenessTimeoutMsec
void SetLivenessTimeoutMsec( uint32_t val )
SetUpdated
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
SuspendUpdateRetries
void SuspendUpdateRetries()
SubscriptionClient, güncelleme isteklerini yeniden denemeyi durdurmasını bildirir.
Uygulamaya, tüm meta verileri silmeden güncellemeleri bir süreliğine askıya alma izni verir. FlushUpdate çağrıldığında güncellemeler ve yeniden denemeler devam ettirilir. Bir güncelleme yayındayken güncellemelerin askıya alınması için çağrıldığında, güncelleme iptal edilmez ancak başarısız olursa FlushUpdate tekrar çağrılana kadar yeniden denenmez.
UnlockUpdateMutex
void UnlockUpdateMutex( void )