CIRCT 22.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
esi::services::FuncService::Function Class Reference

A function call which gets attached to a service port. More...

#include <Services.h>

Inheritance diagram for esi::services::FuncService::Function:
Inheritance graph
[legend]
Collaboration diagram for esi::services::FuncService::Function:
Collaboration graph
[legend]

Public Member Functions

void connect ()
 
std::future< MessageDatacall (const MessageData &arg)
 
const esi::TypegetArgType () const
 
const esi::TypegetResultType () const
 
virtual std::optional< std::string > toString () const override
 
- Public Member Functions inherited from esi::services::ServicePort
virtual ~ServicePort ()=default
 
 BundlePort (AppID id, const BundleType *type, PortMap channels)
 Construct a port.
 
- Public Member Functions inherited from esi::BundlePort
 BundlePort (AppID id, const BundleType *type, PortMap channels)
 Construct a port.
 
virtual ~BundlePort ()=default
 
AppID getID () const
 Get the ID of the port.
 
WriteChannelPortgetRawWrite (const std::string &name) const
 Get access to the raw byte streams of a channel.
 
ReadChannelPortgetRawRead (const std::string &name) const
 
const PortMapgetChannels () const
 
template<typename T >
T * getAs () const
 Cast this Bundle port to a subclass which is actually useful.
 
bool poll ()
 Calls poll on all channels in the bundle and returns true if any of them returned true.
 

Static Public Member Functions

static Functionget (AppID id, BundleType *type, WriteChannelPort &arg, ReadChannelPort &result)
 
- Static Public Member Functions inherited from esi::BundlePort
static bool isWrite (BundleType::Direction bundleDir)
 Compute the direction of a channel given the bundle direction and the bundle port's direction.
 

Private Attributes

std::mutex callMutex
 
WriteChannelPortarg
 
ReadChannelPortresult
 
bool connected = false
 

Friends

class FuncService
 

Additional Inherited Members

- Protected Attributes inherited from esi::BundlePort
AppID id
 
const BundleTypetype
 
PortMap channels
 

Detailed Description

A function call which gets attached to a service port.

Definition at line 263 of file Services.h.

Member Function Documentation

◆ call()

std::future< MessageData > FuncService::Function::call ( const MessageData arg)

Definition at line 218 of file Services.cpp.

Referenced by esiaccel.types.FunctionPort::__call__().

◆ connect()

void FuncService::Function::connect ( )

Definition at line 205 of file Services.cpp.

Referenced by PYBIND11_MODULE().

◆ get()

FuncService::Function * FuncService::Function::get ( AppID  id,
BundleType type,
WriteChannelPort arg,
ReadChannelPort result 
)
static

Definition at line 197 of file Services.cpp.

References arg, result, and esi::BundlePort::type.

◆ getArgType()

const esi::Type * esi::services::FuncService::Function::getArgType ( ) const
inline

Definition at line 274 of file Services.h.

References esi::BundleType::findChannel(), and esi::BundlePort::type.

Referenced by toString().

◆ getResultType()

const esi::Type * esi::services::FuncService::Function::getResultType ( ) const
inline

Definition at line 279 of file Services.h.

References esi::BundleType::findChannel(), and esi::BundlePort::type.

Referenced by toString().

◆ toString()

virtual std::optional< std::string > esi::services::FuncService::Function::toString ( ) const
inlineoverridevirtual

Reimplemented from esi::services::ServicePort.

Definition at line 285 of file Services.h.

References getArgType(), esi::Type::getID(), and getResultType().

Friends And Related Symbol Documentation

◆ FuncService

friend class FuncService
friend

Definition at line 264 of file Services.h.

Member Data Documentation

◆ arg

WriteChannelPort* esi::services::FuncService::Function::arg
private

Definition at line 293 of file Services.h.

Referenced by get().

◆ callMutex

std::mutex esi::services::FuncService::Function::callMutex
private

Definition at line 292 of file Services.h.

◆ connected

bool esi::services::FuncService::Function::connected = false
private

◆ result

ReadChannelPort* esi::services::FuncService::Function::result
private

Definition at line 294 of file Services.h.

Referenced by get().


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