Bug: 35269103 Test: Removing unnecessary code. Existing tests pass. Change-Id: I1ba8572a8b3fabbf707e77b366717c9ba3069ace
59 lines
1.1 KiB
C++
59 lines
1.1 KiB
C++
// Copyright 2016 Google Inc. All Rights Reserved.
|
|
|
|
#ifndef WVCDM_METRICS_METRICS_FRONT_END_H_
|
|
#define WVCDM_METRICS_METRICS_FRONT_END_H_
|
|
|
|
#include <map>
|
|
|
|
#include "report.h"
|
|
#include "timer_metric.h" /* needed for the macro */
|
|
|
|
namespace wvcdm {
|
|
namespace metrics {
|
|
|
|
class MetricsFrontEnd {
|
|
|
|
public:
|
|
|
|
MetricsFrontEnd(Report* root);
|
|
|
|
MetricNotification* CreateSubscriber();
|
|
|
|
static MetricsFrontEnd& Instance();
|
|
static void OverrideInstance(MetricsFrontEnd* instance);
|
|
|
|
private:
|
|
|
|
static MetricsFrontEnd* instance_;
|
|
|
|
Report* root_;
|
|
|
|
/* Disallow copy and assign. */
|
|
MetricsFrontEnd(const MetricsFrontEnd&);
|
|
void operator=(const MetricsFrontEnd&);
|
|
};
|
|
|
|
} // namespace metrics
|
|
} // namespace wvcdm
|
|
|
|
#define MFE wvcdm::metrics::MetricsFrontEnd::Instance()
|
|
|
|
#define NO_TIME 0
|
|
|
|
#define M_RECORD(GROUP, METRIC, TIME, ...) \
|
|
if ( GROUP ) { \
|
|
( GROUP ) -> METRIC . Record( TIME, ##__VA_ARGS__ ); \
|
|
}
|
|
|
|
#define M_TIME(CALL, GROUP, METRIC, ...) \
|
|
if ( GROUP ) { \
|
|
wvcdm::metrics::TimerMetric timer; \
|
|
timer.Start(); \
|
|
CALL; \
|
|
( GROUP ) -> METRIC . Record(timer.AsUs(), ##__VA_ARGS__ ); \
|
|
} else { \
|
|
CALL; \
|
|
}
|
|
|
|
#endif
|