]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/jaeger-client-cpp/src/jaegertracing/metrics/StatsFactoryImpl.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / jaegertracing / jaeger-client-cpp / src / jaegertracing / metrics / StatsFactoryImpl.h
diff --git a/ceph/src/jaegertracing/jaeger-client-cpp/src/jaegertracing/metrics/StatsFactoryImpl.h b/ceph/src/jaegertracing/jaeger-client-cpp/src/jaegertracing/metrics/StatsFactoryImpl.h
new file mode 100644 (file)
index 0000000..28e090e
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2017 Uber Technologies, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef JAEGERTRACING_METRICS_STATSFACTORYIMPL_H
+#define JAEGERTRACING_METRICS_STATSFACTORYIMPL_H
+
+#include <memory>
+#include <string>
+#include <unordered_map>
+
+#include "jaegertracing/metrics/StatsFactory.h"
+#include "jaegertracing/metrics/StatsReporter.h"
+
+namespace jaegertracing {
+namespace metrics {
+
+class Counter;
+class Gauge;
+class Timer;
+
+class StatsFactoryImpl : public StatsFactory {
+  public:
+    using StatsFactory::createCounter;
+    using StatsFactory::createGauge;
+    using StatsFactory::createTimer;
+
+    explicit StatsFactoryImpl(StatsReporter& reporter);
+
+    ~StatsFactoryImpl() = default;
+
+    std::unique_ptr<Counter> createCounter(
+        const std::string& name,
+        const std::unordered_map<std::string, std::string>& tags) override;
+
+    std::unique_ptr<Timer> createTimer(
+        const std::string& name,
+        const std::unordered_map<std::string, std::string>& tags) override;
+
+    std::unique_ptr<Gauge> createGauge(
+        const std::string& name,
+        const std::unordered_map<std::string, std::string>& tags) override;
+
+  private:
+    StatsReporter& _reporter;
+};
+
+}  // namespace metrics
+}  // namespace jaegertracing
+
+#endif  // JAEGERTRACING_METRICS_STATSFACTORYIMPL_H