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) typedef
void(*
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::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

Özel komutun alıcısı tarafından gönderene döndürülen veriler.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

Veriler, bir EventCallback işlevinden bir CommandSender nesnesine geri döndürüldü.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

SendCommand() içine iletilecek bağımsız değişkenleri içerir.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)