CIRCT 24.0.0git
Loading...
Searching...
No Matches
esi::services::TelemetryService Class Reference

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

#include <Services.h>

Inheritance diagram for esi::services::TelemetryService:
Collaboration diagram for esi::services::TelemetryService:

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 BundlePort * getPort (AppIDPath id, const BundleType *type) const override
 Get specialized port for this service to attach to the given appid path.
virtual Service * getChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={}) override
 Create a "child" service of this service.
MMIO::MMIORegion * getMMIORegion () 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
AcceleratorConnection & getConnection () const

Static Public Attributes

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

Private Attributes

AppIDPath id
MMIO::MMIORegion * mmio
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
AcceleratorConnection & conn

Detailed Description

Service for retrieving telemetry data from the accelerator.

Definition at line 485 of file Services.h.

Constructor & Destructor Documentation

◆ TelemetryService()

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 464 of file Services.cpp.

References children, esi::services::Service::conn, esi::services::Service::Service(), and TelemetryService().

◆ getMMIORegion()

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

Definition at line 434 of file Services.cpp.

References esi::services::Service::conn, id, mmio, and esi::AppIDPath::toStr().

◆ 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 453 of file Services.cpp.

References portAddressAssignments, and telemetryPorts.

◆ getServiceSymbol()

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

Implements esi::services::Service.

Definition at line 430 of file Services.cpp.

References StdName.

◆ getTelemetryPorts() [1/2]

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

Definition at line 527 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 502 of file Services.cpp.

References children, telemetryPorts, and TelemetryService().

Member Data Documentation

◆ children

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

Definition at line 539 of file Services.h.

Referenced by getChildService(), and getTelemetryPorts().

◆ id

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

Definition at line 535 of file Services.h.

Referenced by esiaccel.types.ESIType::__eq__(), getMMIORegion(), and TelemetryService().

◆ mmio

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

Definition at line 536 of file Services.h.

Referenced by getMMIORegion(), and TelemetryService().

◆ portAddressAssignments

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

Definition at line 537 of file Services.h.

Referenced by getPort(), and TelemetryService().

◆ StdName

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 538 of file Services.h.

Referenced by getPort(), and getTelemetryPorts().


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