Class MetricsExtractor

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

Class Documentation

class MetricsExtractor : public gpa::playback::CallableReceiver, public gpa::runtime::EventPublisher::Subscriber, public gpa::playback::CallableCallbacks

Public Functions

MetricsExtractor()
~MetricsExtractor()
virtual void PostSetupRange(CallableCache *range) override
virtual void PreExecuteRange(CallableCache *range) override
virtual void PreExecuteCall(Callable *callable, uint64_t callIndex) override
virtual void PostExecuteCall(Callable *callable, uint64_t callIndex) override
virtual void BeforePostExecuteRange(QueuesRequiringGpuSynchronization &queuesToSynchronize) override
virtual void PostExecuteRange(CallableCache *range) override
virtual void OnEvent(char const *topic, runtime::EventData const &event) override

When an event/message is available on a topic for which this subscriber has registered, it will be delivered via this method.

Note

If the data in the event/message needs to be used beyond the scope of this method, the implementation should copy the relevant contents of the event/message and not attempt to cache the event object itself, as there is no guarantee that the event object will be available beyond this method's return.

Parameters
  • topic -- Name of the topic ("channel") on which the event was published.

  • event -- The event data. The implementation should use the EventData::ID() method to determine the actual event/message type, and cast accordingly.

bool SetRangeAndApiForCollection(CallableCache *range, uint32_t graphicsApi)
void SetRequest(data_collection::MetricsRequest const *request)
void SetQueryReportOfInterestEvaluationCallback(metrics::QueryReportOfInterestEvaluationCallback *pCallback = nullptr, void *userData = nullptr)
data_collection::MetricsQueryResult GetResult()
data_collection::MetricsRequests GetRequestsForMetrics(metrics::IMetric const **metrics, uint64_t nMetrics, data_collection::CollectionRange const *collectionRanges, uint64_t nRanges, bool freqOverrideEnabled = false, float freqOverrideVal = 1.0f) const
data_collection::MetricsRequests GetRequestsForMetrics(metrics::MetricId const *metricIDs, uint64_t nMetricIDs, data_collection::CollectionRange const *collectionRanges, uint64_t nRanges, bool freqOverrideEnabled = false, float freqOverrideVal = 1.0f) const
metrics::IMetricsSource *GetMetricsSource()
metrics::IMetricsSourceComposite *GetMetricsSourceComposite()