nl:: Weave:: Profiller: DataManagement_Current:: Abonelikİstemcisi
Özet
Herkese açık türler |
|
---|---|
@130
|
enum |
EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
Türvoid(*
Abonelik etkinliklerini uygulamaya geçirmek için geri arama. |
EventID{
|
enum |
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
|
Türvoid(*
Bir sonraki yeniden aboneden ö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_INDEX değerine kadar bir fibonacci dizisinden sonra, sürekli olarak artan bir aralıkta milisaniyelik rastgele bir zaman aralığı seçer.
|
Herkese açık işlevler |
|
---|---|
AbortSubscription(void)
|
void
Aboneliği iptal edin.
|
ClearUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
|
|
DisableResubscribe(void)
|
void
Yeniden abone olma mekanizmasını devre dışı bırakın.
|
DiscardUpdates()
|
void
Abonelik İstemcisi'ne güncellenmeyi bekleyen TraitPath grubunu boşaltmasını ve devam eden güncelleme isteğini (varsa) iptal etmesini söyler.
|
EnableResubscribe(ResubscribePolicyCallback aCallback)
|
void
Otomatik yeniden aboneleri etkinleştir.
|
EndSubscription(void)
|
Aboneliği sona erdirin.
|
FlushUpdate()
|
Uygulamanın tüm TraitUpdatableDataSinks öğelerini yoksaymayı tamamladığına dair 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
Abonelik İstemcisi'ni bir başlatıcı olarak (karşı abone yerine) yapılandırın ve değilse aboneliği yükseltin.
|
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ı etkinleştirin.
|
SetLivenessTimeoutMsec(uint32_t val)
|
void
|
SetUpdated(TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
|
|
SuspendUpdateRetries()
|
void
Abonelik İstemcisi'ne güncelleme isteklerini yeniden denemesini bildirir.
|
UnlockUpdateMutex(void)
|
void
|
Struct |
|
---|---|
nl:: |
|
nl:: |
Birlikler |
|
---|---|
nl:: |
|
nl:: |
Herkese açık türler
@130
@130
Etkinlik Geri Çağırması
void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
Abonelik etkinliklerini uygulamaya geçirmek için geri arama.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
Etkinlik Kimliği
EventID
Özellikler | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kEvent_OnEventStreamReceived
|
subscriptionEngine, NotificationRequest mesajında bir etkinlik akışı saydığında oluşturulur. Uygulama şu anda EndAbonelik(), Abortsubscription() veya Free() çağrısı yapabilir. |
||||||||||||
kEvent_OnExchangeStart
|
Bağlama hazırlandıktan ve ExchangeContext kurulduktan sonra, tüm iletiler gönderilmeden önce oluşturulur. Bu, bir uygulamanın ExchangeContext ayarlarını düzenlemesi için son şanstır. |
||||||||||||
kEvent_OnNoMorePendingUpdates
|
Güncelleme grubundaki tüm yolların eş tarafından işlendiğini ve başka yolun güncellenmesine gerek olmadığını belirten bir etkinlik. |
||||||||||||
kEvent_OnNotificationProcessed
|
Abonelik Motoru bir NotificationRequest mesajının işlenmesini tamamladığında oluşturulur. Uygulama şu anda EndAbonelik(), Abortsubscription() veya Free() çağrısı yapabilir. |
||||||||||||
kEvent_OnNotificationRequest
|
Bildirim İsteği alındıktan sonra oluşturulur. Uygulama şu anda EndAbonelik(), Abortsubscription() veya Free() çağrısı 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. İstemci, abonelik etkinliğiyle ilgili bir bildirim aldığında oluşturulur. Bu süreç, başarılı abonelik kurulumunu, Bildirim İsteği'nin kabul edilmesini veya Abone Onay mesajına yanıt olarak bir durum raporunun alınmasını içerir. |
||||||||||||
kEvent_OnSubscriptionEstablished
|
Aboneliğin başarıyla kurulmasıyla oluşturulur. Uygulama şu anda EndAbonelik(), Abortsubscription() veya Free() çağrısı yapabilir. |
||||||||||||
kEvent_OnSubscriptionTerminated
|
Bu aboneliğin sonunu işaretler. nl::Weave::Profiles::DataManagement_Current::subscriptionClient::EventCallback parametresine gönderilen parametreler, yeniden abone olma girişiminin otomatik olarak gerçekleşip gerçekleşmeyeceğini belirtir. Etkinlik işleyici çağrısı sırasında istemcinin durumu Uygulama bu durumda Abortsubscription() veya Free() işlevini çağırabilir. Gönderilen parametreler arasında aboneliğin sona erme nedenini de belirten bir hata kodu yer alır. Bu abonelik çeşitli nedenlerden dolayı feshedilmiş olabilir (WRM ACK eksik, ExchangeContext ayırma hatası, yanıt zaman aşımı...) İ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üncellenmesinin başarılı olup olmadığını gösterir. |
Abone Ol Politikası Geri Çağırma
void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)
Bir sonraki yeniden aboneden önce beklenecek zaman aralığını getirmek için geri çağırma.
Kullanıcılar yeniden abone olmayı bırakmaya karar verirse bu işlevde uygulamaların iptal edilmesine/ücretsiz olmasına izin verilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık statik işlevler
VarsayılanEtkinlikHandler
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_INDEX değerine kadar bir fibonacci dizisinden sonra, sürekli olarak artan bir aralıkta milisaniyelik rastgele bir zaman aralığı seçer.
WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX sürümünden sonra rastgele hale getirilmiş bekleme süresinin ortalaması yaklaşık bir saat olur. Yeniden deneme sayısı 0'a sıfırlandığında, dizi baştan başlar.
Herkese açık işlevler
İptal Et
void AbortSubscription( void )
Aboneliği iptal edin.
Müşteri aboneliğini iptal edin.
Abonelikle ilişkili tüm trafiği hemen kabul etmeyi bırakın ve temeldeki tüm iletişim kaynaklarını bırakın. subscriptionClient nesnesi geçerli kalır ve tekrar kullanılabilir.
Abonelik yayıncısını bilgilendirmeden ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği göndermeden aboneliğin istemci sonunu sonlandırır. Karşılıklı abonelik varsa karşı abonelik de sonlandırılır.
Abortsubscription() çağrısı yapıldığında SubscriptionClient
nesnesi Terminated
durumuna girer. Fesih işlemi tamamlandığında nesne Initialized
durumuna girer. Her iki geçiş, Abortsubscription() çağrısında eşzamanlı olarak gerçekleştirilir.
AbortAbonelik() döndürüldükten sonra SubscriptionClient
nesnesi, başka bir abonelik başlatmak için kullanılabilir ya da Free() yöntemi çağrılarak boşa çıkarılabilir.
Güncellenmiş Güncelleme
WEAVE_ERROR ClearUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle )
Yeniden Abone Olmayı Devre Dışı Bırak
void DisableResubscribe( void )
Yeniden abone olma mekanizmasını devre dışı bırakın.
Bu işlem, yeniden abonelik beklemedeyse iptal edilir.
Güncellemeleri Sil
void DiscardUpdates()
Abonelik İstemcisi'ne güncellenmeyi bekleyen TraitPath grubunu boşaltmasını ve devam eden güncelleme isteğini (varsa) iptal etmesini söyler.
Bu yöntem herhangi bir geri çağırmadan çağrılabilir.
Yeniden Abone Ol özelliğini etkinleştir
void EnableResubscribe( ResubscribePolicyCallback aCallback )
Otomatik yeniden aboneleri etkinleştir.
Başarısız olan yeniden deneme süresini belirtmek için geri arama ekleyin.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Son Abonelik
WEAVE_ERROR EndSubscription( void )
Aboneliği sona erdirin.
İstemci aboneliğini ayrıntılı bir şekilde sonlandırın.
WDM_ENABLE_SUBSCRIPTION_COMPLETE derleme süresi seçeneği etkinleştirildiğinde eşe bir İptalİsteği göndererek aboneliği zarif bir şekilde sonlandırın. Abonelikle ilişkili kaynaklar, eşin yanıtında veya zaman aşımında serbest kalır. Bu seçenek devre dışı bırakıldığında çağrı, AbortAbonelik() işlevine eşdeğer olur.
Aboneliğin istemci sonunu zarif bir şekilde sonlandırır. Abonelik iptali desteği etkinleştirilirse abonelik yayıncısına bir TicketCancelRequest mesajı gönderilir ve sistem, aboneliği sonlandırmadan önce bir yanıt bekler. Aksi takdirde, abonelik AbortAbonelik() benzeri bir şekilde hemen sonlandırılır. Karşılıklı abonelik varsa karşı abonelik de sonlandırılır.
Abonelik İptali İsteği'ne yanıt beklenirken SubscriptionClient
, Canceling
durumuna girer.
Fesih işlemi başladıktan sonra SubscriptionClient
nesnesi Terminated
durumuna girer ve uygulamanın etkinlik işleyicisine bir OnSubscriptionTerminated
etkinliği gönderilir. Destek desteği etkinleştirilmezse etkinlik işleyicinin EndAbonelik() çağrısında eşzamanlı olarak çağrılabileceğini unutmayın.
Uygulamanın etkinlik 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öntemi çağrılabilir.
FlushGüncelleme
WEAVE_ERROR FlushUpdate()
Uygulamanın tüm TraitUpdatableDataSinks öğelerini yoksaymayı tamamladığına dair sinyaller.
Daha önceki bir güncelleme alışverişi devam etmiyorsa müşteri, güncellenmiş olarak işaretlenen tüm verileri alıp tek bir güncelleme isteğinde yanıt verene gönderir. Bu yöntem herhangi bir ileti dizisinden çağrılabilir.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İadeler |
Başarılı olması durumunda WEAVE_NO_ERROR; başarısız olması durumunda diğer WEAVE_ERROR kodları.
|
FlushGüncelleme
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 AbonelikClient nesnesinin referansını iptal eder. Doğru kullanım altında, nesnenin nesne havuzuna döndürülmesini sağlaması gerekir
SubscriptionClient
nesnesini serbest bırakır. Abonelik devam ediyorsa veya devam ediyorsa abonelik Abortsubscription() çağrısına benzer şekilde hemen sonlandırılır. Devam eden güncelleme istekleri de benzer şekilde iptal edilir.
Uygulama, bir SubscriptionClient
nesnesinin kullanım ömrü boyunca Free() çağrısını tam olarak yapmaktan sorumludur. Free() adı çağrıldıktan sonra nesneye başka bir referans verilmemelidir.
GetLinking
Binding * GetBinding( void ) const
GetLivenessTimeoutMsec
uint32_t GetLivenessTimeoutMsec( void ) const
GetPeerNodeId
uint64_t GetPeerNodeId( void ) const
Abonelik Abonelik Kimliği
WEAVE_ERROR GetSubscriptionId( uint64_t *const apSubscriptionId )
Etkinlik Belirtin
void IndicateActivity( void )
Karşı Abonelik Başlat
void InitiateCounterSubscription( const uint32_t aLivenessTimeoutSec )
Abonelik Başlat
void InitiateSubscription( void )
Abonelik İstemcisi'ni bir başlatıcı olarak (karşı abone yerine) yapılandırın ve değilse aboneliği yükseltin.
İptal Ediyor
bool IsCanceling() const
Belirlenmiş
bool IsEstablished()
Yeni Bir Başlangıç
bool IsEstablishedIdle()
IsFree
bool IsFree()
Devam Ediyor veya Kabul Edildi
bool IsInProgressOrEstablished()
IsInResubscribeHoldoff
bool IsInResubscribeHoldoff()
Yeniden Deneme Etkin
bool IsRetryEnabled()
Sonlandırıldı
bool IsTerminated()
Güncellenmiş Güncelleme veya Devam Ediyor
bool IsUpdatePendingOrInProgress()
LockUpdateMutex
void LockUpdateMutex( void )
OnCatalogChanged
void OnCatalogChanged()
Bu yöntem, TraitDataSink kataloğu değiştirildiğinde çağrılmalıdır.
Yeniden Abone Ol
void ResetResubscribe( void )
Yeniden abone olma mekanizmasını etkinleştirin.
Bu işlem, hemen yeniden deneme başlatır
SetLivenessTimeoutMsn
void SetLivenessTimeoutMsec( uint32_t val )
Güncellendi
WEAVE_ERROR SetUpdated( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional )
Askıya Alma Güncellemeleri
void SuspendUpdateRetries()
Abonelik İstemcisi'ne güncelleme isteklerini yeniden denemesini bildirir.
Uygulamaya, tüm meta verileri silmeden güncellemeleri belirli bir süre askıya alma izni verir. FlushUpdate çağrıldığında güncellemeler ve yeniden denemeler devam ettirilir. Güncelleme devam ederken güncellemeleri askıya almak için çağrıldığında, güncelleme iptal edilmez, ancak başarısız olursa, FlushUpdate tekrar çağrılana kadar yeniden denenmez.
UpdateUpdateMutex
void UnlockUpdateMutex( void )