CIRCT 21.0.0git
|
Implement the magic cosim channel communication. More...
Public Member Functions | |
CosimEngine (CosimAccelerator &conn, AppIDPath idPath, const ServiceImplDetails &details, const HWClientDetails &clients) | |
std::unique_ptr< ChannelPort > | createPort (AppIDPath idPath, const std::string &channelName, BundleType::Direction dir, const Type *type) override |
Each engine needs to know how to create a ports. | |
![]() | |
Engine (AcceleratorConnection &conn) | |
virtual | ~Engine ()=default |
virtual void | connect () |
Start the engine, if applicable. | |
virtual void | disconnect () |
Stop the engine, if applicable. | |
virtual ChannelPort & | requestPort (AppIDPath idPath, const std::string &channelName, BundleType::Direction dir, const Type *type) |
Get a port for a channel, from the cache if it exists or create it. | |
Private Attributes | |
CosimAccelerator & | conn |
std::map< AppIDPath, std::map< std::string, std::string > > | clientChannelAssignments |
Additional Inherited Members | |
![]() | |
bool | connected |
AcceleratorConnection & | conn |
|
inline |
Definition at line 610 of file Cosim.cpp.
References clientChannelAssignments.
|
overridevirtual |
Each engine needs to know how to create a ports.
This method is called if a port doesn't exist in the engine cache.
Implements esi::Engine.
Definition at line 642 of file Cosim.cpp.
References clientChannelAssignments, conn, esi::backends::cosim::CosimAccelerator::StubContainer::getChannelDesc(), esi::BundlePort::isWrite(), esi::backends::cosim::CosimAccelerator::rpcClient, esi::backends::cosim::CosimAccelerator::StubContainer::stub, and esi::AppIDPath::toStr().
|
private |
Definition at line 637 of file Cosim.cpp.
Referenced by CosimEngine(), and createPort().
|
private |
Definition at line 635 of file Cosim.cpp.
Referenced by createPort().