userver: userver/storages/postgres/database.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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 {
24 public:
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
34 private:
35 friend class components::Postgres;
36 std::vector<storages::postgres::ClusterPtr> clusters_;
37};
38
39} // namespace storages::postgres
40
41USERVER_NAMESPACE_END