The class ts::tlv::Protocol defines the syntax of a TLV protocol.
More...
#include <tstlvProtocol.h>
|
|
| Protocol ()=default |
| | Constructor for a protocol without version number.
|
| |
| | Protocol (VERSION v) |
| | Constructor for a protocol with version number.
|
| |
|
virtual | ~Protocol () |
| | Virtual destructor.
|
| |
| void | add (TAG cmd_tag) |
| | This method declares a command tag in the protocol.
|
| |
| void | add (TAG cmd_tag, TAG param_tag, const Protocol *compound, size_t min_count, size_t max_count) |
| | This method declares a command tag in the protocol and one of its parameters.
|
| |
| void | add (TAG cmd_tag, TAG param_tag, size_t min_size, size_t max_size, size_t min_count, size_t max_count) |
| | This method declares a command tag in the protocol and one of its parameters.
|
| |
| virtual void | buildErrorResponse (const MessageFactory &mf, MessagePtr &msg) const =0 |
| | Error response creation.
|
| |
| virtual void | factory (const MessageFactory &mf, MessagePtr &msg) const =0 |
| | Generic factory method.
|
| |
| bool | hasVersion () const |
| | Check if the protocol has a protocol version number.
|
| |
| size_t | headerSize () const |
| | Get the size in bytes of the header in binary messages.
|
| |
| size_t | lengthOffset () const |
| | Get the offset in bytes of the "length" field in binary messages.
|
| |
| virtual UString | name () const =0 |
| | Get the protocol name (for information only).
|
| |
| void | setVersion (VERSION v) |
| | Change the protocol version number.
|
| |
| size_t | tagOffset () const |
| | Get the offset in bytes of the "tag" field in binary messages.
|
| |
| VERSION | version () const |
| | Get the protocol version number.
|
| |
The class ts::tlv::Protocol defines the syntax of a TLV protocol.
Used by ts::tlv::MessageFactory to validate a message.
◆ Protocol()
| ts::tlv::Protocol::Protocol |
( |
VERSION |
v | ) |
|
Constructor for a protocol with version number.
The message format is version + compound TLV.
- Parameters
-
| [in] | v | Expected protocol version. |
◆ hasVersion()
| bool ts::tlv::Protocol::hasVersion |
( |
| ) |
const |
|
inline |
Check if the protocol has a protocol version number.
- Returns
- True if the message has a protocol version number.
◆ version()
| VERSION ts::tlv::Protocol::version |
( |
| ) |
const |
|
inline |
Get the protocol version number.
- Returns
- The protocol version number.
◆ setVersion()
| void ts::tlv::Protocol::setVersion |
( |
VERSION |
v | ) |
|
|
inline |
Change the protocol version number.
- Parameters
-
| [in] | v | The new protocol version number. |
◆ tagOffset()
| size_t ts::tlv::Protocol::tagOffset |
( |
| ) |
const |
|
inline |
Get the offset in bytes of the "tag" field in binary messages.
- Returns
- The offset in bytes of the "tag" field in binary messages.
◆ lengthOffset()
| size_t ts::tlv::Protocol::lengthOffset |
( |
| ) |
const |
|
inline |
Get the offset in bytes of the "length" field in binary messages.
- Returns
- The offset in bytes of the "length" field in binary messages.
◆ headerSize()
| size_t ts::tlv::Protocol::headerSize |
( |
| ) |
const |
|
inline |
Get the size in bytes of the header in binary messages.
- Returns
- The size in bytes of the header in binary messages.
◆ add() [1/3]
| void ts::tlv::Protocol::add |
( |
TAG |
cmd_tag | ) |
|
|
inline |
This method declares a command tag in the protocol.
Required only for commands without parameters.
- Parameters
-
◆ add() [2/3]
| void ts::tlv::Protocol::add |
( |
TAG |
cmd_tag, |
|
|
TAG |
param_tag, |
|
|
size_t |
min_size, |
|
|
size_t |
max_size, |
|
|
size_t |
min_count, |
|
|
size_t |
max_count |
|
) |
| |
This method declares a command tag in the protocol and one of its parameters.
Must be invoked for each parameter of each command.
- Parameters
-
| [in] | cmd_tag | Message tag. |
| [in] | param_tag | Parameter tag. |
| [in] | min_size | Minimum allowed size for the parameter value. |
| [in] | max_size | Maximum allowed size for the parameter value. |
| [in] | min_count | Minimum number of occurrences of this parameter in the command. |
| [in] | max_count | Maximum number of occurrences of this parameter in the command. |
◆ add() [3/3]
| void ts::tlv::Protocol::add |
( |
TAG |
cmd_tag, |
|
|
TAG |
param_tag, |
|
|
const Protocol * |
compound, |
|
|
size_t |
min_count, |
|
|
size_t |
max_count |
|
) |
| |
This method declares a command tag in the protocol and one of its parameters.
Same as add() but with a parameter which is a compound TLV structure.
- Parameters
-
| [in] | cmd_tag | Message tag. |
| [in] | param_tag | Parameter tag. |
| [in] | compound | Protocol describing the compound TLV structure. |
| [in] | min_count | Minimum number of occurrences of this parameter in the command. |
| [in] | max_count | Maximum number of occurrences of this parameter in the command. |
◆ factory()
Generic factory method.
This pure virtual method must be implemented by subclasses. This method is invoked by the MessageFactory after analysis of the command and parameters. All actual parameters have been checked for consistency with the protocol.
- Parameters
-
| [in] | mf | The message factory which analyzed the binary message. |
| [out] | msg | Safe pointer to the new message. |
Implemented in ts::duck::Protocol, ts::ecmgscs::Protocol, and ts::emmgmux::Protocol.
◆ buildErrorResponse()
Error response creation.
This method creates an error response from the result of the analysis of a faulty incoming message.
- Parameters
-
| [in] | mf | The message factory which analyzed the binary message. |
| [out] | msg | Safe pointer to the new error message. |
Implemented in ts::duck::Protocol, ts::ecmgscs::Protocol, and ts::emmgmux::Protocol.
◆ name()
| virtual UString ts::tlv::Protocol::name |
( |
| ) |
const |
|
pure virtual |
The documentation for this class was generated from the following file: