TSDuck v3.40-3963
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
tstlvMessage.h File Reference

Abstract base class for TLV messages. More...

Classes

class  ts::tlv::Message
 Abstract base class for TLV messages. More...
 

Namespaces

namespace  ts
 TSDuck namespace, containing all TSDuck classes and functions.
 
namespace  ts::tlv
 Namespace for TLV protocols (Tag / Length / Value)
 

Macros

#define TS_UNVERSIONED_TLV_MESSAGE(classname)
 A macro to add in the declaration of a ts::tlv::Message subclass without version.
 
#define TS_VERSIONED_TLV_MESSAGE(classname, tag)
 A macro to add in the declaration of a ts::tlv::Message subclass with version.
 

Typedefs

using ts::tlv::MessagePtr = std::shared_ptr< Message >
 Shared pointer for TLV messages.
 

Detailed Description

Abstract base class for TLV messages.

Macro Definition Documentation

◆ TS_UNVERSIONED_TLV_MESSAGE

#define TS_UNVERSIONED_TLV_MESSAGE (   classname)
Value:
public: \
\
classname(); \
\ \
classname(const ts::tlv::MessageFactory& fact); \
/* Implementation of Message. */ \
virtual ts::UString dump(size_t indent = 0) const override; \
protected: \
/* Implementation of Message. */ \
virtual void serializeParameters(ts::tlv::Serializer&) const override
An implementation of UTF-16 strings.
Definition tsUString.h:137
Factory class for TLV messages.
Definition tstlvMessageFactory.h:67
Serialization of TLV messages.
Definition tstlvSerializer.h:28

A macro to add in the declaration of a ts::tlv::Message subclass without version.

Parameters
classnameName of the enclosing class.

◆ TS_VERSIONED_TLV_MESSAGE

#define TS_VERSIONED_TLV_MESSAGE (   classname,
  tag 
)
Value:
private: \
classname() = delete; \
public: \
\ \
classname(ts::tlv::VERSION version) : \
superclass(version, tag) {} \
\ \
classname(const ts::tlv::Protocol& proto) : \
classname(proto.version()) {} \
\ \
classname(const ts::tlv::MessageFactory& fact); \
/* Implementation of Message. */ \
virtual ts::UString dump(size_t indent = 0) const override; \
protected: \
/* Implementation of Message. */ \
virtual void serializeParameters(ts::tlv::Serializer&) const override
The class ts::tlv::Protocol defines the syntax of a TLV protocol.
Definition tstlvProtocol.h:28
uint8_t VERSION
Type for TLV protocol version (8 bits).
Definition tstlv.h:29

A macro to add in the declaration of a ts::tlv::Message subclass with version.

Parameters
classnameName of the enclosing class.
tagMessage tag.