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