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ür
void(*
Abonelik etkinliklerini uygulamaya geçirmek için geri arama.
EventID{
  kEvent_OnSubscriptionTerminated = 1,
  kEvent_OnExchangeStart = 2,
  kEvent_OnSubscribeRequestPrepareNeeded = 3,
  kEvent_OnSubscriptionEstablished = 4,
  kEvent_OnNotificationRequest = 5,
  kEvent_OnNotificationProcessed = 6,
  kEvent_OnEventStreamReceived = 7,
  kEvent_OnSubscriptionActivity = 8,
  kEvent_OnUpdateComplete = 9,
  kEvent_OnNoMorePendingUpdates = 10
}
enum
ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) Tür
void(*
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
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::Weave::Profiles::DataManagement_Current::SubscriptionsClient::LastObserveEvent
nl::Weave::Profiles::DataManagement_Current::AbonelikClient::ResubscribeParam

Birlikler

nl::Weave::Profiles::DataManagement_Current::AbonelikClient::InEventParam
nl::Weave::Profiles::DataManagement_Current::AbonelikClient::OutEventParam

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
[in] aAppState
Abonelik İstemcisi başlatılırken uygulama durumu işaretçisi ayarlanır.
[in] aEvent
Hangi etkinliğin gerçekleştiğini belirtir
[in] aInParam
Etkinlikle ilgili ek ayrıntılar içeren yapılandırma
[out] aOutParam
Başvuruyla iletilen bilgiler

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. mEC geçerlidir ve zaman aşımı ayarları için ayarlanabilir. Uygulama, istemcideki diğer alanlara dokunmamalı ve ExchangeContext'ü kapatmamalıdı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 Terminated olacaktır. Yeniden deneme yapılmayacaksa etkinlik işleyici geri döndüğünde istemcinin durumu Initialized olarak değiştirilir. Aksi takdirde durum, ResubscribeHoldoff tarihinde sona erer ve askıya alma süresinin ardından aboneliğin yeniden kurulması için bir girişimde bulunulur.

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ı:

Hata kodu Anlamı
WEAVE_ERROR_INVALID_MESSAGE_TYPE Tanınmayan bir mesaj alındı.
WEAVE_ERROR_TIMEOUT Onay alınmaz veya yayın kontrolü başarısız olur.
WEAVE_ERROR_INCORRECT_STATE İletiler beklenmedik bir durumda alınır.
WEAVE_ERROR_STATUS_REPORT_RECEIVED Bir durum raporu alınır.
WEAVE_ERROR_INVALID_XXXXX Abonelik isteği alanları geçersiz.

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
[in] aAppState
Abonelik İstemcisi başlatılırken uygulama durumu işaretçisi ayarlanır.
[in] aInParam
Yeniden denemeyle ilgili ek ayrıntılar içeren yapılandırma
[out] aOutIntervalMsec
Sonraki yeniden denemeden önce beklenecek süre (milisaniye cinsinden)

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
[in] aCallback
Bir hatadan sonra yeniden denemeden önce beklenecek süreyi ayarlamak için isteğe bağlı geri arama. NULL ise varsayılan politika kullanılır.

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
[in] aForce
Doğru değerine ayarlanırsa, ileri bir yeniden deneme planlanmış olsa bile güncellemenin hemen gönderilmesine neden olur. Bu parametre, varsayılan olarak yanlış kabul edilir.
İ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
)