nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
Özet
Not: Bu sınıf, komut göndermeyle ilgili protokol ayrıntılarını birleştirerek uygulamaların işleyişini basitleştirir. Uygulama, komut yükünün yanı sıra komut başlığının içeriğini ve komutun davranışını değiştiren isteğe bağlı bir dizi bağımsız değişken içeren bir PacketBuffer sunar. Temel olarak güvenlik doğrulaması ve veri serileştirme/serileştirmeden kaldırma işlemlerinin karmaşıklığı/esnekliği nedeniyle, komut işleme için bu sarmalayıcının kullanımı gerçekten sınırlıdır.
Komut doğrulamanın ayrıntıları henüz belli değil
Bu sınıf, uygulamaların, ilişkili bir TraitDataSink içindeki verilerin komutun yan etkileri (komut yanıtında sağlanan sürüme göre) yakalayıp yakalamadığını tahmin etmesine de yardımcı olur. Uygulama, söz konusu nesnenin depolanmasını yönetmekten sorumludur.
Örgü Bağlama
Bu sınıfın bir nesnesi, Komut göndermek için varsayılan Binding olarak kullanılacak Örgü Binding ile başlatılabilir. Kullanıcı ayrıca her SendCommand() çağrısı için bir Binding sağlayabilir. Bu, varsayılan Binding'i geçersiz kılar. Varsayılan bir Binding sağlamanız gerekmez ancak CommandSender öğesine sağlanan tüm bağlamaların önceden başlatılmış olması gerekir.
EventCallback
Komutun gönderilmesinden sonra gerçekleşen etkinliklerle ilgili güncelleme almak istiyorsa kullanıcı bu türde bir işlev tanımlamalıdır (aşağıdaki "API Etkinlikleri" bölümüne bakın). Kullanıcı, komut gönderildikten sonra ne olduğunu umursamıyorsa bu NULL olabilir.
API Etkinlikleri
Command gönderildikten sonra, aşağıdaki etkinlikler gerçekleşebilir:
CommunicationError
Command oluşturulurken veya gönderilirken ya da yanıt beklenirken bir hata oluştu. Yanıt beklerken oluşabilecek hatalara örnek olarak önemli hatalar veya bağlantının beklenmedik şekilde kapatılması verilebilir. Hata nedeni, EventCallback işleyicisinin InEventParam bağımsız değişkeninde yer alacak.
InProgressReceived
Alıcı "devam ediyor" durumu gönderebilir Command öğesinin alındığını ancak henüz tamamlanmadığını belirten bir uyarı mesajı görünür. İşlem tamamlandığında alıcı, bir Yanıt veya Durum Raporu gönderir. "Devam ediyor" durumu gönderiliyor mesaj gerekli değildir.
StatusReportReceived
Durum Raporu'nun alınması, Command komutu işlenirken hata olduğu anlamına gelir. StatusRapor'a InEventParam üzerinden erişilebilir.
ResponseReceived
Yanıt almanız, Command alıcısının Command işlemini başarıyla işlediği anlamına gelir. Yanıt yük içerebilir veya içermeyebilir. Uygulama, paket arabelleğini tutmak istiyorsa ref sayısını artırmak için ExchangeContext::AddRef() yöntemini çağırabilir.
Herkese açık türler |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
EventType
|
enum |
Herkese açık özellikler |
|
---|---|
mAppState = NULL
|
void *
|
mSyncronizedTraitState = NULL
|
Herkese açık statik işlevler |
|
---|---|
DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
Herkese açık işlevler |
|
---|---|
Close(bool aAbortNow)
|
void
|
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
|
|
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
|
void
|
Yapılar |
|
---|---|
nl:: |
Özel komutun alıcısı tarafından gönderene döndürülen veriler. |
nl:: |
EventCallback işlevinden bir CommandSender nesnesine döndürülen veriler. |
nl:: |
SendCommand() işlevine geçirilecek bağımsız değişkenleri içerir. |
nl:: |
Herkese açık türler
EventCallback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
EventType
EventType
Herkese açık özellikler
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
Herkese açık statik işlevler
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
Herkese açık işlevler
Kapat
void Close( bool aAbortNow )
Init
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )