CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Member Functions | List of all members
esi::SegmentedMessageData Class Referenceabstract

Abstract multi-segment message. More...

#include <Common.h>

Inheritance diagram for esi::SegmentedMessageData:
Inheritance graph
[legend]

Public Member Functions

virtual ~SegmentedMessageData ()=default
 
virtual size_t numSegments () const =0
 Number of segments in the message.
 
virtual Segment segment (size_t idx) const =0
 Get a segment by index.
 
size_t totalSize () const
 Total size across all segments.
 
bool empty () const
 True if totalSize() == 0.
 
MessageData toMessageData () const
 Flatten all segments into a standard MessageData.
 

Detailed Description

Abstract multi-segment message.

Generated types subclass this to expose header + list segments without flattening into a contiguous buffer.

This class does NOT replace MessageData. It lives alongside it.

Subclasses MUST own all data that their segments point to. The write API takes ownership (unique_ptr<SegmentedMessageData>) and a backend may hold the message across async boundaries / partial writes.

Definition at line 190 of file Common.h.

Constructor & Destructor Documentation

◆ ~SegmentedMessageData()

virtual esi::SegmentedMessageData::~SegmentedMessageData ( )
virtualdefault

Member Function Documentation

◆ empty()

bool SegmentedMessageData::empty ( ) const

True if totalSize() == 0.

Definition at line 58 of file Common.cpp.

References totalSize().

◆ numSegments()

virtual size_t esi::SegmentedMessageData::numSegments ( ) const
pure virtual

◆ segment()

virtual Segment esi::SegmentedMessageData::segment ( size_t  idx) const
pure virtual

◆ toMessageData()

MessageData SegmentedMessageData::toMessageData ( ) const

Flatten all segments into a standard MessageData.

Definition at line 60 of file Common.cpp.

References esi::Segment::data, numSegments(), segment(), esi::Segment::size, and totalSize().

◆ totalSize()

size_t SegmentedMessageData::totalSize ( ) const

Total size across all segments.

Definition at line 51 of file Common.cpp.

References numSegments(), segment(), and esi::Segment::size.

Referenced by empty(), and toMessageData().


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