class Command

Defined at line 77 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Profiles/data-management/Current/Command.h

The utility of this wrapper around command handling is indeed limited, mainly due to the complexity/flexibility involved

in security validation and data serialization/de-serialization.

The details for command validation is still TBD

To adjust the retransmission timing for the In-Progress, Status Report, and also Response message,

the application layer would have to somehow deal with the ExchangeContext object. The best practise

is still TBD, but the application layer has these three choices:

1) Acquire the Exchange Context through #GetExchangeContext and directly evaluate/adjust it.

2) Pre-allocate and configure a Binding during boot up, before any command arrives, and configure it properly

3) Create a temporary Binding using this function BindingPool::NewResponderBindingFromExchangeContext

In both (2) and (3), the application layer can enforce security/timing setting through

Binding::ConfigureExistingExchangeContext. The Binding is never used to generate new exchange contexts for custom commands, so

it doesn't have to be stored within this handle.

The request packet buffer is also not stored within this handle, for there is no obvious use of it. This is especially

true if the application layer can handle this command and send out response directly.

Application layer would receive the packet buffer from the same callback it receives this command handle. If it decides to

handle this command in an async manner, it would have to store both the command handle and the packet buffer.

Public Members

uint64_t commandType
uint64_t mustBeVersion
int64_t initiationTimeMicroSecond
int64_t actionTimeMicroSecond
int64_t expiryTimeMicroSecond

Public Methods

nl::Weave::ExchangeContext * GetExchangeContext ()

Retrieve the exchange context object used by this incoming command

Returns

A pointer to the exchange context object used by this incoming command

Defined at line 110 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Profiles/data-management/Current/Command.h

bool IsMustBeVersionValid ()
bool IsInitiationTimeValid ()
bool IsActionTimeValid ()
bool IsExpiryTimeValid ()
bool IsOneWay ()
WEAVE_ERROR ValidateAuthenticator (nl::Weave::System::PacketBuffer * aRequestBuffer)
WEAVE_ERROR SendInProgress ()
WEAVE_ERROR SendResponse (uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer * apPayload)
WEAVE_ERROR SendError (uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
void Close ()

Enumerations

enum CommandFlags
Name Value
kCommandFlag_MustBeVersionValid 0x0001
kCommandFlag_InitiationTimeValid 0x0002
kCommandFlag_ActionTimeValid 0x0004
kCommandFlag_ExpiryTimeValid 0x0008
kCommandFlag_IsOneWay 0x0010

The Command flag bits.

Defined at line 84 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Profiles/data-management/Current/Command.h

Friends

class SubscriptionEngine