CIRCT 20.0.0git
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | 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]
Collaboration diagram for esi::services::Service:
Collaboration graph
[legend]

Public Types

using Type = const std::type_info &
 

Public Member Functions

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

Protected Attributes

AcceleratorConnectionconn
 

Detailed Description

Parent class of all APIs modeled as 'services'.

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

Definition at line 46 of file Services.h.

Member Typedef Documentation

◆ Type

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

Definition at line 48 of file Services.h.

Constructor & Destructor Documentation

◆ Service()

esi::services::Service::Service ( AcceleratorConnection conn)
inline

Definition at line 49 of file Services.h.

◆ ~Service()

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

Member Function Documentation

◆ getChildService()

Service * Service::getChildService ( 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 28 of file Services.cpp.

References conn, and esi::AcceleratorConnection::getService().

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

◆ getConnection()

AcceleratorConnection & esi::services::Service::getConnection ( ) const
inline

Definition at line 72 of file Services.h.

References conn.

◆ getPort()

virtual BundlePort * esi::services::Service::getPort ( AppIDPath  id,
const BundleType type 
) 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::CustomService, esi::services::MMIO, esi::services::FuncService, and esi::services::CallService.

Definition at line 68 of file Services.h.

◆ getServiceSymbol()

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

Member Data Documentation

◆ conn

AcceleratorConnection& esi::services::Service::conn
protected

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