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ı kapsamaktadır ve uygulamalarla ilgili mekanizmaları basitleştirir. Uygulama, komut yükünü içeren bir PacketBuffer ve komutun davranışının yanı sıra komut başlığının içeriğini değiştiren isteğe bağlı bir dizi bağımsız değişken sağlar. Bu sarmalayıcının komut işlemeye yönelik kullanımı aslında sınırlıdır. Bunun başlıca nedeni de güvenlik doğrulaması ve veri serileştirme/serileştirme işlemindeki karmaşıklık/esnekliktir.
Komut doğrulama ayrıntıları henüz belli değil
Bu sınıf, uygulamaların, ilişkili bir TraitDataSink içindeki verilerin komutun yan etkilerini yakalayıp yakalamadığını (komut yanıtında sağlanan sürüme göre) tahmin etmesine de yardımcı olur. Uygulama, söz konusu nesnenin depolanmasını yönetmekten sorumludur.
Örgü Cilt
Bu sınıfın bir nesnesi, Komut göndermek için kullanılacak varsayılan Binding görevi görecek olan Weave Binding ile başlatılabilir. Kullanıcı ayrıca her SendCommand() çağrısına bir Binding (Binding) de sağlayabilir. Bu, varsayılan Binding değerini geçersiz kılar. Varsayılan bir Binding sağlamak gerekli değildir ancak CommandSender'e sağlanan tüm bağlamalar önceden başlatılmış olmalıdır.
EventCallback
Komutun gönderilmesinden sonra gerçekleşen etkinlikler hakkında güncelleme almak isteyen kullanıcının bu tür bir işlev tanımlaması gerekir (aşağıdaki "API Etkinlikleri" bölümüne bakın). Kullanıcı, komut gönderildikten sonra ne olduğunu umursamıyorsa bu NULL değeri olabilir.
API Etkinlikleri
Bir Command gönderildikten sonra aşağıdaki etkinlikler gerçekleşebilir:
CommunicationError
Komut oluşturulurken veya gönderilirken ya da yanıt beklenirken hata oluştu. Yanıt beklenirken oluşabilecek hatalara örnek olarak önemli hatalar veya bağlantının beklenmedik şekilde kapatılması verilebilir. Hata nedeni, EventCallback işleyicinin InEventParam bağımsız değişkeninde yer alır.
InProgressReceived
Alıcı, Komutun alındığını ancak henüz tamamlanmadığını belirten bir "devam ediyor" mesajı gönderebilir. İşlem tamamlandığında, alıcı bir Yanıt veya Durum Raporu gönderir. "Devam ediyor" mesajı gönderilmesi gerekmez.
StatusReportReceived
StatusReport'un alınması, Command komutu işlenirken bir hata olduğu anlamına gelir. StatusReport'a InEventParam üzerinden erişilebilir.
ResponseReceived
Yanıt alınması, Command alıcısının Command işlemini başarıyla işlediği anlamına gelir. Yanıt bir yük içerebilir veya içermeyebilir. Uygulama, paket arabelleğini tutmak isterse referans sayısını artırmak için ExchangeContext::AddRef() işlevini ç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
|
Kamu işlevleri |
|
---|---|
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:: |
Veriler, bir EventCallback işlevinden bir CommandSender nesnesine geri döndürüldü. |
nl:: |
SendCommand() içine iletilecek 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 )
Kamu işlevleri
Kapat
void Close( bool aAbortNow )
Başlat
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 )