nl::Weave::Profiles::DataManagement_Current::Command
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
#include <src/lib/profiles/data-management/Current/Command.h>
Podsumowanie
Uwaga: te zajęcia służą do ukrywania pewnych szczegółów w zakresie obsługi poleceń. Podjęto decyzję, aby ukryć szczegóły elementu ExchangeContext i walidacji uwierzytelniania, a jednocześnie pozostawić obsługę pakietów PacketBuffer w warstwie aplikacji. Przydatność tego otoki w zakresie obsługi poleceń jest w rzeczywistości ograniczona, głównie ze względu na złożoność i elastyczność procesu weryfikacji zabezpieczeń oraz w trakcie serializacji i usuwania zserializacji danych.
Szczegóły weryfikacji polecenia są nadal do ustalenia
Aby dostosować czas ponownego przesyłania dla raportu W toku, raportu o stanie i komunikatu odpowiedzi, warstwa aplikacji musi w jakiś sposób obsługiwać obiekt ExchangeContext. Najlepszą metodą jest to, że nie trzeba tego robić, ale w warstwie aplikacji dostępne są 3 opcje:
1) Uzyskiwanie kontekstu Exchange za pomocą metody GetExchangeContext i bezpośrednia ocena/dostosowanie. 2) Wstępnie przydziel i skonfiguruj Wiązanie podczas uruchamiania, zanim otrzyma jakiekolwiek polecenie, i odpowiednio je skonfiguruj. 3) Utwórz tymczasowe Wiązanie przy użyciu funkcji BindingPool::NewResponderBindingFromExchangeContext.
Zarówno w zasadzie 2, jak i (3) warstwa aplikacji może wymuszać ustawienie zabezpieczeń/czasu za pomocą powiązania::ConfigureIstniejąceExchangeContext. Wiązanie nigdy nie jest używane do generowania nowych kontekstów wymiany dla poleceń niestandardowych, więc nie trzeba go zapisywać w tym nicku.
Bufor pakietów żądania również nie jest przechowywany w tym nicku, ponieważ nie ma wyraźnego sposobu jego wykorzystania. Jest to szczególnie istotne, jeśli warstwa aplikacji może obsłużyć to polecenie i bezpośrednio wysłać odpowiedź.
Warstwa aplikacji otrzyma bufor pakietu z tego samego wywołania zwrotnego, do którego otrzymuje ten uchwyt polecenia. W przypadku podjęcia decyzji o obsłudze tego polecenia w sposób asynchroniczny będzie musiał zapisać zarówno uchwyt polecenia, jak i bufor pakietu.
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 wymiany 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 prawidłowy czas działania. |
kCommandFlag_ExpiryTimeValid
|
Ustaw prawidłowy czas ważności. |
kCommandFlag_InitiationTimeValid
|
Ustaw prawidłową godzinę rozpoczęcia. |
kCommandFlag_IsOneWay
|
Ustaw, jeśli polecenie jest jednokierunkowe. |
kCommandFlag_MustBeVersionValid
|
Ustaw, kiedy 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 wymiany używany przez to polecenie przychodzące.
Szczegóły | |
---|---|
Zwroty |
Wskaźnik do obiektu kontekstu wymiany 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
)