]> git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/common/perf_counters_collection.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / crimson / common / perf_counters_collection.h
1 #pragma once
2
3 #include "common/perf_counters.h"
4 #include <seastar/core/sharded.hh>
5
6 namespace ceph::common {
7 class PerfCountersCollection: public seastar::sharded<PerfCountersCollection>
8 {
9 using ShardedPerfCountersCollection = seastar::sharded<PerfCountersCollection>;
10
11 private:
12 std::unique_ptr<PerfCountersCollectionImpl> perf_collection;
13 static ShardedPerfCountersCollection sharded_perf_coll;
14 friend PerfCountersCollection& local_perf_coll();
15 friend ShardedPerfCountersCollection& sharded_perf_coll();
16
17 public:
18 PerfCountersCollection();
19 ~PerfCountersCollection();
20 PerfCountersCollectionImpl* get_perf_collection();
21
22 };
23
24 inline PerfCountersCollection::ShardedPerfCountersCollection& sharded_perf_coll(){
25 return PerfCountersCollection::sharded_perf_coll;
26 }
27
28 inline PerfCountersCollection& local_perf_coll() {
29 return PerfCountersCollection::sharded_perf_coll.local();
30 }
31
32 }
33