CIRCT 20.0.0git
|
Parent class of all APIs modeled as 'services'. More...
#include <Services.h>
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 |
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.
using esi::services::Service::Type = const std::type_info & |
Definition at line 48 of file Services.h.
|
inline |
Definition at line 49 of file Services.h.
|
virtualdefault |
|
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().
|
inline |
Definition at line 72 of file Services.h.
References conn.
|
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.
|
pure virtual |
|
protected |
Definition at line 75 of file Services.h.
Referenced by getChildService(), getConnection(), esi::services::CustomService::getPort(), esi::services::FuncService::getPort(), and esi::services::CallService::getPort().