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.
 
virtual 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.

MessageData is the canonical flat, one-segment implementation of this interface. Other subclasses represent naturally segmented layouts.

Subclasses MUST own all data that their segments point to. Read and write APIs can hold the message across async boundaries / retries.

Definition at line 133 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
virtual

Flatten all segments into a standard MessageData.

Reimplemented in esi::MessageData.

Definition at line 60 of file Common.cpp.

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

Referenced by esi::detail::getMessageDataRef().

◆ 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: