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) 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

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

EventCallback işlevinden bir CommandSender nesnesine döndürülen veriler.

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

SendCommand() işlevine geçirilecek 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
)

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)