userver: userver/storages/postgres/database.hpp Source File
Loading...
Searching...
No Matches
database.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/storages/postgres/database.hpp
4/// @brief @copybrief storages::postgres::Database
5
6#include <vector>
7
8#include <userver/storages/postgres/database_fwd.hpp>
9#include <userver/storages/postgres/options.hpp>
10#include <userver/storages/postgres/postgres_fwd.hpp>
11
12USERVER_NAMESPACE_BEGIN
13
14namespace components {
15
16class Postgres;
17
18} // namespace components
19
20namespace storages::postgres {
21
22/// Object for accessing PostgreSQL database instance (sharded or not)
23class Database {
24public:
25 /// Cluster accessor for default shard number
26 ClusterPtr GetCluster() const;
27
28 /// Cluster accessor for specific shard number
29 ClusterPtr GetClusterForShard(size_t shard) const;
30
31 /// Get total shard count
32 size_t GetShardCount() const { return clusters_.size(); }
33
34private:
35 friend class components::Postgres;
36 std::vector<storages::postgres::ClusterPtr> clusters_;
37};
38
39} // namespace storages::postgres
40
41USERVER_NAMESPACE_END