CIRCT 24.0.0git
Loading...
Searching...
No Matches
esi::services::Service Class Referenceabstract

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

#include <Services.h>

Inheritance diagram for esi::services::Service:
Collaboration diagram for esi::services::Service:

Public Types

using Type = const std::type_info &

Public Member Functions

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

Protected Attributes

AcceleratorConnection & conn

Detailed Description

Parent class of all APIs modeled as 'services'.

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

Definition at line 59 of file Services.h.

Member Typedef Documentation

◆ Type

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

Definition at line 61 of file Services.h.

Constructor & Destructor Documentation

◆ Service()

◆ ~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, and esi::services::TelemetryService.

Definition at line 28 of file Services.cpp.

References conn, and Service().

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

◆ getConnection()

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

Definition at line 85 of file Services.h.

References conn.

Referenced by esi::services::MMIOSysInfo::MMIOSysInfo().

◆ 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::CallService, esi::services::ChannelService, esi::services::CustomService, esi::services::FuncService, esi::services::MMIO, and esi::services::TelemetryService.

Definition at line 81 of file Services.h.

◆ getServiceSymbol()

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

Member Data Documentation

◆ conn


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