CIRCT  20.0.0git
Public Types | Public Member Functions | List of all members
esi::services::Service Class Referenceabstract

Parent class of all APIs modeled as 'services'. More...

#include <Services.h>

Inheritance diagram for esi::services::Service:
Inheritance graph
[legend]

Public Types

using Type = const std::type_info &
 

Public Member Functions

virtual ~Service ()=default
 
virtual std::string getServiceSymbol () const =0
 
virtual ServicegetChildService (AcceleratorConnection *conn, Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={})
 Create a "child" service of this service. More...
 
virtual ServicePortgetPort (AppIDPath id, const BundleType *type, const std::map< std::string, ChannelPort & > &, AcceleratorConnection &) const
 Get specialized port for this service to attach to the given appid path. More...
 

Detailed Description

Parent class of all APIs modeled as 'services'.

May or may not map to a hardware side 'service'.

Definition at line 45 of file Services.h.

Member Typedef Documentation

◆ Type

using esi::services::Service::Type = const std::type_info &

Definition at line 47 of file Services.h.

Constructor & Destructor Documentation

◆ ~Service()

virtual esi::services::Service::~Service ( )
virtualdefault

Member Function Documentation

◆ getChildService()

Service * Service::getChildService ( AcceleratorConnection conn,
Service::Type  service,
AppIDPath  id = {},
std::string  implName = {},
ServiceImplDetails  details = {},
HWClientDetails  clients = {} 
)
virtual

Create a "child" service of this service.

Does not have to be the same service type, but typically is. Used when a service already exists in the active services table, but a new one wants to replace it. Useful for cases where the child service needs to use the parent service. Defaults to calling the getService method on AcceleratorConnection to get the global service, implying that the child service does not need to use the service it is replacing.

Reimplemented in esi::services::MMIO.

Definition at line 27 of file Services.cpp.

References esi::AcceleratorConnection::getService().

Referenced by esi::services::MMIO::getChildService().

◆ getPort()

virtual ServicePort* esi::services::Service::getPort ( AppIDPath  id,
const BundleType type,
const std::map< std::string, ChannelPort & > &  ,
AcceleratorConnection  
) const
inlinevirtual

Get specialized port for this service to attach to the given appid path.

Null returns mean nothing to attach.

Reimplemented in esi::services::CallService, esi::services::FuncService, and esi::services::MMIO.

Definition at line 67 of file Services.h.

◆ getServiceSymbol()

virtual std::string esi::services::Service::getServiceSymbol ( ) const
pure virtual

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