CIRCT 22.0.0git
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
esi::services::TelemetryService Class Reference

Service for retrieving telemetry data from the accelerator. More...

#include <Services.h>

Inheritance diagram for esi::services::TelemetryService:
Inheritance graph
[legend]
Collaboration diagram for esi::services::TelemetryService:
Collaboration graph
[legend]

Classes

class  Metric
 A telemetry port which gets attached to a service port. More...
 

Public Member Functions

 TelemetryService (AppIDPath id, AcceleratorConnection &, ServiceImplDetails details, HWClientDetails clients)
 
virtual std::string getServiceSymbol () const override
 
virtual BundlePortgetPort (AppIDPath id, const BundleType *type) const override
 Get specialized port for this service to attach to the given appid path.
 
virtual ServicegetChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={}) override
 Create a "child" service of this service.
 
MMIO::MMIORegiongetMMIORegion () const
 
std::map< AppIDPath, Metric * > getTelemetryPorts ()
 
void getTelemetryPorts (std::map< AppIDPath, Metric * > &ports)
 
- Public Member Functions inherited from esi::services::Service
 Service (AcceleratorConnection &conn)
 
virtual ~Service ()=default
 
AcceleratorConnectiongetConnection () const
 

Static Public Attributes

static constexpr std::string_view StdName = "esi.service.std.telemetry"
 

Private Attributes

AppIDPath id
 
MMIO::MMIORegionmmio
 
std::map< AppIDPath, uint64_t > portAddressAssignments
 
std::map< AppIDPath, Metric * > telemetryPorts
 
std::list< TelemetryService * > children
 

Additional Inherited Members

- Public Types inherited from esi::services::Service
using Type = const std::type_info &
 
- Protected Attributes inherited from esi::services::Service
AcceleratorConnectionconn
 

Detailed Description

Service for retrieving telemetry data from the accelerator.

Definition at line 369 of file Services.h.

Constructor & Destructor Documentation

◆ TelemetryService()

TelemetryService::TelemetryService ( AppIDPath  id,
AcceleratorConnection conn,
ServiceImplDetails  details,
HWClientDetails  clients 
)

Member Function Documentation

◆ getChildService()

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

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 from esi::services::Service.

Definition at line 361 of file Services.cpp.

References children, and esi::services::Service::conn.

◆ getMMIORegion()

MMIO::MMIORegion * TelemetryService::getMMIORegion ( ) const

◆ getPort()

BundlePort * TelemetryService::getPort ( AppIDPath  id,
const BundleType type 
) const
overridevirtual

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

Null returns mean nothing to attach.

Reimplemented from esi::services::Service.

Definition at line 350 of file Services.cpp.

References portAddressAssignments, and telemetryPorts.

◆ getServiceSymbol()

std::string TelemetryService::getServiceSymbol ( ) const
overridevirtual

Implements esi::services::Service.

Definition at line 327 of file Services.cpp.

References StdName.

◆ getTelemetryPorts() [1/2]

std::map< AppIDPath, Metric * > esi::services::TelemetryService::getTelemetryPorts ( )
inline

Definition at line 410 of file Services.h.

References getTelemetryPorts().

Referenced by getTelemetryPorts(), and printTelemetry().

◆ getTelemetryPorts() [2/2]

void TelemetryService::getTelemetryPorts ( std::map< AppIDPath, Metric * > &  ports)

Definition at line 399 of file Services.cpp.

References children, and telemetryPorts.

Member Data Documentation

◆ children

std::list<TelemetryService *> esi::services::TelemetryService::children
private

Definition at line 422 of file Services.h.

Referenced by getChildService(), and getTelemetryPorts().

◆ id

AppIDPath esi::services::TelemetryService::id
private

Definition at line 418 of file Services.h.

Referenced by getMMIORegion().

◆ mmio

MMIO::MMIORegion* esi::services::TelemetryService::mmio
mutableprivate

◆ portAddressAssignments

std::map<AppIDPath, uint64_t> esi::services::TelemetryService::portAddressAssignments
private

Definition at line 420 of file Services.h.

Referenced by getPort(), and TelemetryService().

◆ StdName

constexpr std::string_view esi::services::TelemetryService::StdName = "esi.service.std.telemetry"
staticconstexpr

◆ telemetryPorts

std::map<AppIDPath, Metric *> esi::services::TelemetryService::telemetryPorts
mutableprivate

Definition at line 421 of file Services.h.

Referenced by getPort(), and getTelemetryPorts().


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