![]() |
TSDuck v3.44-4659
MPEG Transport Stream Toolkit
|
BIOP Message (polymorphic base). More...
#include <tsDSMCCBIOPMessage.h>


Public Member Functions | |
| BIOPMessage ()=default | |
| Default constructor. | |
| virtual | ~BIOPMessage ()=default |
| Virtual destructor. | |
| virtual const std::vector< BIOPBinding > * | bindingList () const |
| Bindings carried by this message, if any. | |
| virtual bool | fromXML (DuckContext &duck, const xml::Element *element) |
| This method decodes an XML BIOPMessage. | |
| std::string | kindTag () const |
| Get the object kind as a trimmed string (without the trailing null, if any). | |
| virtual void | toXML (DuckContext &duck, xml::Element *parent) const |
| This method converts a BIOPMessage to XML. | |
Static Public Member Functions | |
| static std::unique_ptr< BIOPMessage > | FromXML (DuckContext &duck, const xml::Element *element) |
| Parse a BIOP message from an XML element. | |
| static std::unique_ptr< BIOPMessage > | Parse (PSIBuffer &buf) |
| Parse one BIOP message from a buffer. | |
Public Attributes | |
| BIOPMessageHeader | header {} |
| BIOP message header. | |
| ByteBlock | object_info {} |
| Object info bytes (kind-specific; opaque at this level). | |
| ByteBlock | object_key {} |
| Object key bytes. | |
| ByteBlock | object_kind {} |
| Object kind bytes on the wire (e.g. 'f','i','l',0). Use kindTag() for the trimmed tag. | |
| std::vector< BIOPServiceContext > | service_contexts {} |
| Service context list. | |
Protected Member Functions | |
| virtual bool | deserializeBody (PSIBuffer &buf)=0 |
| Deserialize the subclass-specific message body. | |
| virtual bool | fromXMLBody (DuckContext &duck, const xml::Element *msg_element)=0 |
| Deserialize the subclass-specific body from XML. | |
| virtual void | toXMLBody (DuckContext &duck, xml::Element *msg_element) const =0 |
| Serialize the subclass-specific body to XML. | |
Static Protected Member Functions | |
| static std::unique_ptr< BIOPMessage > | CreateForKind (const std::string &tag) |
| Construct a concrete BIOPMessage subclass for a given object_kind tag. | |
BIOP Message (polymorphic base).
Parses the 8-byte BIOP header plus the common fields shared by all in-carousel BIOP messages (message_size, objectKey, objectKind, objectInfo, serviceContextList, messageBody_length). The body is deserialized by concrete subclasses.
| std::string ts::BIOPMessage::kindTag | ( | ) | const |
Get the object kind as a trimmed string (without the trailing null, if any).
|
inlinevirtual |
Bindings carried by this message, if any.
Reimplemented in ts::BIOPBindingListMessage.
|
static |
Parse one BIOP message from a buffer.
Dispatches to the concrete subclass based on object_kind.
| [in,out] | buf | Deserialization buffer. |
|
virtual |
This method converts a BIOPMessage to XML.
| [in,out] | duck | TSDuck execution context. |
| [in,out] | parent | The parent node for the XML element. |
|
virtual |
This method decodes an XML BIOPMessage.
| [in,out] | duck | TSDuck execution context. |
| [in] | element | The XML element containing the message. |
|
static |
Parse a BIOP message from an XML element.
Dispatches to the concrete subclass based on the object_kind attribute.
| [in,out] | duck | TSDuck execution context. |
| [in] | element | The XML element to parse. |
|
staticprotected |
Construct a concrete BIOPMessage subclass for a given object_kind tag.
| [in] | tag | Trimmed object_kind string (e.g. "fil", "dir", "srg"). |
|
protectedpure virtual |
Deserialize the subclass-specific message body.
| [in,out] | buf | Deserialization buffer. Exactly the body bytes are available. |
Implemented in ts::BIOPFileMessage, and ts::BIOPBindingListMessage.
|
protectedpure virtual |
Serialize the subclass-specific body to XML.
| [in,out] | duck | TSDuck execution context. |
| [in,out] | msg_element | The <BIOP_message> XML element to append body children to. |
Implemented in ts::BIOPFileMessage, and ts::BIOPBindingListMessage.
|
protectedpure virtual |
Deserialize the subclass-specific body from XML.
| [in,out] | duck | TSDuck execution context. |
| [in] | msg_element | The <BIOP_message> XML element containing the body. |
Implemented in ts::BIOPFileMessage, and ts::BIOPBindingListMessage.