| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- #pragma once
 
- #include <map>
 
- #include <memory>
 
- #include <mutex>
 
- #include <string>
 
- #include <vector>
 
- #include "prometheus/collectable.h"
 
- #include "prometheus/counter.h"
 
- #include "prometheus/counter_builder.h"
 
- #include "prometheus/family.h"
 
- #include "prometheus/gauge.h"
 
- #include "prometheus/gauge_builder.h"
 
- #include "prometheus/histogram.h"
 
- #include "prometheus/histogram_builder.h"
 
- #include "prometheus/metric_family.h"
 
- #include "prometheus/summary.h"
 
- #include "prometheus/summary_builder.h"
 
- namespace prometheus {
 
- class Registry : public Collectable {
 
-  public:
 
-   friend class detail::CounterBuilder;
 
-   friend class detail::GaugeBuilder;
 
-   friend class detail::HistogramBuilder;
 
-   friend class detail::SummaryBuilder;
 
-   // collectable
 
-   std::vector<MetricFamily> Collect() override;
 
-  private:
 
-   Family<Counter>& AddCounter(const std::string& name, const std::string& help,
 
-                               const std::map<std::string, std::string>& labels);
 
-   Family<Gauge>& AddGauge(const std::string& name, const std::string& help,
 
-                           const std::map<std::string, std::string>& labels);
 
-   Family<Histogram>& AddHistogram(
 
-       const std::string& name, const std::string& help,
 
-       const std::map<std::string, std::string>& labels);
 
-   Family<Summary>& AddSummary(const std::string& name, const std::string& help,
 
-                               const std::map<std::string, std::string>& labels);
 
-   std::vector<std::unique_ptr<Collectable>> collectables_;
 
-   std::mutex mutex_;
 
- };
 
- }  // namespace prometheus
 
 
  |