TSDuck v3.41-4217
MPEG Transport Stream Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages Concepts
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:141
Factory class for TLV messages.
Definition tstlvMessageFactory.h:66
Serialization of TLV messages.
Definition tstlvSerializer.h:27

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:27
uint8_t VERSION
Type for TLV protocol version (8 bits).
Definition tstlv.h:32

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

Parameters
classnameName of the enclosing class.
tagMessage tag.