CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
TypedPorts.h File Reference
#include "esi/Ports.h"
#include "esi/Services.h"
#include "esi/Types.h"
#include <cstdint>
#include <cstring>
#include <functional>
#include <future>
#include <stdexcept>
#include <string>
#include <string_view>
#include <type_traits>
#include <typeinfo>
Include dependency graph for TypedPorts.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  esi::AcceleratorMismatchError
 
struct  esi::WireInfo
 Compute the wire byte count for a port type. More...
 
struct  esi::has_esi_id< T, typename >
 
struct  esi::has_esi_id< T, std::void_t< decltype(T::_ESI_ID)> >
 
class  esi::TypedWritePort< T, CheckValue >
 
class  esi::TypedWritePort< void >
 Specialization for void — write takes no data argument. More...
 
class  esi::TypedReadPort< T >
 
class  esi::TypedReadPort< void >
 Specialization for void — read discards data and returns nothing. More...
 
class  esi::TypedFunction< ArgT, ResultT >
 
class  esi::TypedFunction< void, ResultT >
 Partial specialization: void argument, typed result. More...
 
class  esi::TypedFunction< ArgT, void >
 Partial specialization: typed argument, void result. More...
 
class  esi::TypedFunction< void, void >
 Full specialization: void argument, void result. More...
 
class  esi::TypedCallback< ArgT, ResultT >
 
class  esi::TypedCallback< void, ResultT >
 Partial specialization: void argument, typed result. More...
 
class  esi::TypedCallback< ArgT, void >
 Partial specialization: typed argument, void result. More...
 
class  esi::TypedCallback< void, void >
 Full specialization: void argument, void result. More...
 

Namespaces

namespace  esi
 

Functions

const Typeesi::unwrapTypeAlias (const Type *t)
 Unwrap TypeAliasType (possibly recursively) to get the underlying type.
 
WireInfo esi::getWireInfo (const Type *portType)
 
template<typename T >
MessageData esi::toMessageData (const T &data, WireInfo wi)
 Pack a C++ integral value into a MessageData with the given wire byte count.
 
template<typename T >
esi::fromMessageData (const MessageData &msg, WireInfo wi)
 Unpack a MessageData into a C++ integral value with the given wire info.
 
template<typename T >
void esi::verifyTypeCompatibility (const Type *portType)
 

Variables

template<typename T >
constexpr bool esi::has_esi_id_v = has_esi_id<T>::value