TSDuck Version 3.32-2769 (TSDuck - The MPEG Transport Stream Toolkit)
ts::duck::Protocol Class Reference

Generic description of the TSDuck internal messaging protocol. More...

Inheritance diagram for ts::duck::Protocol:
Collaboration diagram for ts::duck::Protocol:

Public Member Functions

void add (TAG cmd_tag)
 This method declares a command tag in the protocol. More...
 
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. More...
 
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. More...
 
virtual void buildErrorResponse (const tlv::MessageFactory &, tlv::MessagePtr &) const override
 Error response creation. More...
 
virtual void factory (const tlv::MessageFactory &, tlv::MessagePtr &) const override
 Generic factory method. More...
 
bool hasVersion () const
 Check if the protocol has a protocol version number. More...
 
virtual UString name () const override
 Get the protocol name (for information only). More...
 
void setVersion (VERSION v)
 Change the protocol version number. More...
 
VERSION version () const
 Get the protocol version number. More...
 

Static Public Member Functions

static ProtocolInstance ()
 Get the instance of the singleton of this class. More...
 

Detailed Description

Generic description of the TSDuck internal messaging protocol.

Member Function Documentation

◆ Instance()

static Protocol* ts::duck::Protocol::Instance ( )
static

Get the instance of the singleton of this class.

Returns
The instance of the singleton of this class.

◆ factory()

virtual void ts::duck::Protocol::factory ( const tlv::MessageFactory mf,
tlv::MessagePtr msg 
) const
overridevirtual

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]mfThe message factory which analyzed the binary message.
[out]msgSafe pointer to the new message.

Implements ts::tlv::Protocol.

◆ buildErrorResponse()

virtual void ts::duck::Protocol::buildErrorResponse ( const tlv::MessageFactory mf,
tlv::MessagePtr msg 
) const
overridevirtual

Error response creation.

This method creates an error response from the result of the analysis of a faulty incoming message.

Parameters
[in]mfThe message factory which analyzed the binary message.
[out]msgSafe pointer to the new error message.

Implements ts::tlv::Protocol.

◆ name()

virtual UString ts::duck::Protocol::name ( ) const
overridevirtual

Get the protocol name (for information only).

Returns
The protocol name.

Implements ts::tlv::Protocol.

◆ hasVersion()

bool ts::tlv::Protocol::hasVersion ( ) const
inlineinherited

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
inlineinherited

Get the protocol version number.

Returns
The protocol version number.

◆ setVersion()

void ts::tlv::Protocol::setVersion ( VERSION  v)
inlineinherited

Change the protocol version number.

Parameters
[in]vThe new protocol version number.

◆ add() [1/3]

void ts::tlv::Protocol::add ( TAG  cmd_tag)
inlineinherited

This method declares a command tag in the protocol.

Required only for commands without parameters.

Parameters
[in]cmd_tagMessage tag.

◆ 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 
)
inherited

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_tagMessage tag.
[in]param_tagParameter tag.
[in]min_sizeMinimum allowed size for the parameter value.
[in]max_sizeMaximum allowed size for the parameter value.
[in]min_countMinimum number of occurences of this parameter in the command.
[in]max_countMaximum number of occurences 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 
)
inherited

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_tagMessage tag.
[in]param_tagParameter tag.
[in]compoundProtocol describing the compound TLV structure.
[in]min_countMinimum number of occurences of this parameter in the command.
[in]max_countMaximum number of occurences of this parameter in the command.

The documentation for this class was generated from the following file: