CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | List of all members
esi::ChannelPort::TranslationInfo Struct Reference

Instructions for translating windowed types. More...

#include <Ports.h>

Collaboration diagram for esi::ChannelPort::TranslationInfo:
Collaboration graph
[legend]

Classes

struct  CopyOp
 A copy operation for translating between frame data and the translation. More...
 
struct  FrameInfo
 Information about each frame in the windowed type. More...
 
struct  ListFieldInfo
 Information about a list field within a frame (for parallel encoding). More...
 

Public Member Functions

 TranslationInfo (const WindowType *windowType)
 
void precomputeFrameInfo ()
 Precompute and optimize the copy operations for translating frames.
 
void requireTranslationSupported () const
 Throw if this window cannot be translated by the runtime translator (e.g.
 

Public Attributes

const WindowTypewindowType
 The window type being translated.
 
std::vector< FrameInfoframes
 Precomputed information about each frame.
 
size_t intoTypeBytes = 0
 Size of the 'into' type in bytes (for fixed-size types).
 
size_t frameBytes = 0
 Number of bytes per wire frame (from the lowered type's bit width).
 
bool hasListField = false
 True if the window contains a list field (variable-size message).
 

Detailed Description

Instructions for translating windowed types.

Precomputes and optimizes a list of copy operations.

Definition at line 233 of file Ports.h.

Constructor & Destructor Documentation

◆ TranslationInfo()

esi::ChannelPort::TranslationInfo::TranslationInfo ( const WindowType windowType)
inline

Definition at line 234 of file Ports.h.

Member Function Documentation

◆ precomputeFrameInfo()

void ChannelPort::TranslationInfo::precomputeFrameInfo ( )

◆ requireTranslationSupported()

void ChannelPort::TranslationInfo::requireTranslationSupported ( ) const

Throw if this window cannot be translated by the runtime translator (e.g.

uses serial/bulk list encoding which is not yet supported).

Definition at line 245 of file Ports.cpp.

References esi::WindowType::getFrames(), esi::WindowType::getName(), and windowType.

Member Data Documentation

◆ frameBytes

size_t esi::ChannelPort::TranslationInfo::frameBytes = 0

Number of bytes per wire frame (from the lowered type's bit width).

Definition at line 292 of file Ports.h.

◆ frames

std::vector<FrameInfo> esi::ChannelPort::TranslationInfo::frames

Precomputed information about each frame.

Definition at line 287 of file Ports.h.

◆ hasListField

bool esi::ChannelPort::TranslationInfo::hasListField = false

True if the window contains a list field (variable-size message).

Definition at line 294 of file Ports.h.

◆ intoTypeBytes

size_t esi::ChannelPort::TranslationInfo::intoTypeBytes = 0

Size of the 'into' type in bytes (for fixed-size types).

For types with lists, this is the size of the fixed header portion.

Definition at line 290 of file Ports.h.

◆ windowType

const WindowType* esi::ChannelPort::TranslationInfo::windowType

The window type being translated.

Definition at line 244 of file Ports.h.

Referenced by requireTranslationSupported().


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