nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
Podsumowanie
Uwaga: te zajęcia zostały zaprojektowane w celu ukrycia określonego szczegółu obsługi poleceń. Podjęto decyzję o ukryciu szczegółów obiektu ExchangeContext i weryfikacji mechanizmu uwierzytelniającego, a obsługę buforów pakietów pozostawiono w warstwie aplikacji. Przydatność tego opakowania w przypadku obsługi poleceń jest rzeczywiście ograniczona, głównie ze względu na złożoność/elastyczność związane z weryfikacją zabezpieczeń oraz serializacją/deserializacją danych.
Szczegóły weryfikacji polecenia są nadal do ustalenia
Aby dostosować czas ponownego przesyłania komunikatów w toku, raportu o stanie i odpowiedzi, warstwa aplikacji musi obsługiwać obiekt ExchangeContext. Sprawdzoną metodą jest wciąż do ustalenia, ale w warstwie aplikacji dostępne są te 3 opcje:
1) Uzyskaj kontekst Exchange za pomocą narzędzia GetExchangeContext i bezpośrednio oceń go lub dostosuj. 2) Wstępnie przydziel i skonfiguruj Binding podczas uruchamiania, zanim pojawi się polecenie, i skonfiguruj je prawidłowo. 3) Utwórz tymczasowe Wiązanie za pomocą tej funkcji BindingPool::NewAnswererBindingFromExchangeContext
W obu przypadkach (2) i (3) warstwa aplikacji może egzekwować ustawienie zabezpieczeń/czasu za pomocą wartości Binding::ConfigurePendingExchangeContext. Element Wiązanie nigdy nie jest używany do generowania nowych kontekstów wymiany dla poleceń niestandardowych, więc nie trzeba go przechowywać w tym nicku.
Bufor pakietów żądania nie jest też przechowywany w ramach tego uchwytu, ponieważ nie jest on jednoznacznie używany. Jest to możliwe zwłaszcza wtedy, gdy warstwa aplikacji może obsłużyć to polecenie i bezpośrednio wysłać odpowiedź.
Warstwa aplikacji otrzyma bufor pakietów z tego samego wywołania zwrotnego, na które otrzyma ten uchwyt polecenia. Jeśli zdecyduje się obsługiwać to polecenie w sposób asynchroniczny, będzie musiał zapisać zarówno uchwyt polecenia, jak i bufor pakietów.
Typy publiczne |
|
---|---|
CommandFlags{
|
enum | typ wyliczeniowy Bity flagi Command. |
CommandFlags
|
typedef Bity flagi Command. |
Atrybuty publiczne |
|
---|---|
actionTimeMicroSecond
|
int64_t
|
commandType
|
uint64_t
|
expiryTimeMicroSecond
|
int64_t
|
initiationTimeMicroSecond
|
int64_t
|
mustBeVersion
|
uint64_t
|
Funkcje publiczne |
|
---|---|
Close(void)
|
void
|
GetExchangeContext(void) const
|
Pobierz obiekt kontekstu Exchange używany przez to polecenie przychodzące.
|
IsActionTimeValid(void) const
|
bool
|
IsExpiryTimeValid(void) const
|
bool
|
IsInitiationTimeValid(void) const
|
bool
|
IsMustBeVersionValid(void) const
|
bool
|
IsOneWay(void) const
|
bool
|
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
|
|
SendInProgress(void)
|
|
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
|
|
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)
|
Typy publiczne
CommandFlags
CommandFlags
Bity flagi Command.
Właściwości | |
---|---|
kCommandFlag_ActionTimeValid
|
Ustaw, kiedy czas działania jest prawidłowy. |
kCommandFlag_ExpiryTimeValid
|
Ustaw, kiedy jest poprawna data ważności. |
kCommandFlag_InitiationTimeValid
|
Ustaw, gdy czas inicjowania jest prawidłowy. |
kCommandFlag_IsOneWay
|
Ustaw, gdy polecenie jest jednokierunkowe. |
kCommandFlag_MustBeVersionValid
|
Ustaw, gdy pole wersji jest prawidłowe. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Bity flagi Command.
Atrybuty publiczne
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
expiryTimeMicroSecond
int64_t expiryTimeMicroSecond
initiationTimeMicroSecond
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
Funkcje publiczne
Zamknij
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
Pobierz obiekt kontekstu Exchange używany przez to polecenie przychodzące.
Szczegóły | |
---|---|
Zwroty |
Wskaźnik do obiektu kontekstu giełdy używanego przez to polecenie przychodzące
|
IsActionTimeValid
bool IsActionTimeValid( void ) const
IsExpiryTimeValid
bool IsExpiryTimeValid( void ) const
IsInitiationTimeValid
bool IsInitiationTimeValid( void ) const
IsMustBeVersionValid
bool IsMustBeVersionValid( void ) const
IsOneWay
bool IsOneWay( void ) const
SendError
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
SendInProgress
WEAVE_ERROR SendInProgress( void )
SendResponse
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
ValidateAuthenticator
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )