|
CIRCT 24.0.0git
|
Service for retrieving telemetry data from the accelerator. More...
#include <Services.h>


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 |
Service for retrieving telemetry data from the accelerator.
Definition at line 485 of file Services.h.
| TelemetryService::TelemetryService | ( | AppIDPath | id, |
| AcceleratorConnection & | conn, | ||
| ServiceImplDetails | details, | ||
| HWClientDetails | clients ) |
Definition at line 391 of file Services.cpp.
References esi::services::Service::conn, id, mmio, portAddressAssignments, esi::services::Service::Service(), esi::AppIDPath::toStr(), and esi::Constant::value.
Referenced by esi::services::ServiceRegistry::createService(), getChildService(), and getTelemetryPorts().
|
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().
| MMIO::MMIORegion * TelemetryService::getMMIORegion | ( | ) | const |
Definition at line 434 of file Services.cpp.
References esi::services::Service::conn, id, mmio, and esi::AppIDPath::toStr().
|
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.
|
overridevirtual |
Definition at line 527 of file Services.h.
References getTelemetryPorts().
Referenced by getTelemetryPorts(), and printTelemetry().
Definition at line 502 of file Services.cpp.
References children, telemetryPorts, and TelemetryService().
|
private |
Definition at line 539 of file Services.h.
Referenced by getChildService(), and getTelemetryPorts().
|
private |
Definition at line 535 of file Services.h.
Referenced by esiaccel.types.ESIType::__eq__(), getMMIORegion(), and TelemetryService().
|
mutableprivate |
Definition at line 536 of file Services.h.
Referenced by getMMIORegion(), and TelemetryService().
|
private |
Definition at line 537 of file Services.h.
Referenced by getPort(), and TelemetryService().
|
staticconstexpr |
Definition at line 487 of file Services.h.
Referenced by getServiceSymbol(), and esi::services::ServiceRegistry::lookupServiceType().
Definition at line 538 of file Services.h.
Referenced by getPort(), and getTelemetryPorts().