20 #ifndef ESI_BACKENDS_COSIM_H
21 #define ESI_BACKENDS_COSIM_H
42 static std::unique_ptr<AcceleratorConnection>
56 virtual std::map<std::string, ChannelPort &>
76 std::set<std::unique_ptr<ChannelPort>>
channels;
78 std::map<AppIDPath, std::map<std::string, std::string>>
AcceleratorConnection::ServiceTable ServiceTable
Abstract class representing a connection to an accelerator.
services::Service Service
Bundles represent a collection of channels.
AcceleratorConnections, Accelerators, and Manifests must all share a context.
Connect to an ESI simulation.
std::map< AppIDPath, std::map< std::string, std::string > > clientChannelAssignments
void setManifestMethod(ManifestMethod method)
static std::unique_ptr< AcceleratorConnection > connect(Context &, std::string connectionString)
Parse the connection std::string and instantiate the accelerator.
virtual Service * createService(Service::Type service, AppIDPath path, std::string implName, const ServiceImplDetails &details, const HWClientDetails &clients) override
Called by getServiceImpl exclusively.
ManifestMethod manifestMethod
CosimAccelerator(Context &, std::string hostname, uint16_t port)
Construct and connect to a cosim server.
std::set< std::unique_ptr< ChannelPort > > channels
virtual std::map< std::string, ChannelPort & > requestChannelsFor(AppIDPath, const BundleType *, const ServiceTable &) override
Request the host side channel ports for a particular instance (identified by the AppID path).
StubContainer * rpcClient
const std::type_info & Type
std::map< std::string, std::any > ServiceImplDetails
std::vector< HWClientDetail > HWClientDetails
Hack around C++ not having a way to forward declare a nested class.