25 #include <boost/optional.hpp> 27 #include <couchbase/support.hxx> 41 struct instance_pool_event_counter;
43 static const size_t DEFAULT_CLUSTER_MAX_INSTANCES = 4;
44 static const size_t DEFAULT_BUCKET_MAX_INSTANCES = 4;
53 size_t max_instances_;
54 size_t max_bucket_instances_;
55 boost::optional<std::chrono::microseconds> kv_timeout_;
56 instance_pool_event_counter* event_counter_;
63 : max_instances_(DEFAULT_CLUSTER_MAX_INSTANCES)
64 , max_bucket_instances_(DEFAULT_BUCKET_MAX_INSTANCES)
65 , event_counter_(nullptr)
80 return max_instances_;
104 return max_bucket_instances_;
114 max_bucket_instances_ = max;
125 CB_NODISCARD boost::optional<std::chrono::microseconds>
kv_timeout()
const 141 kv_timeout_ = std::chrono::duration_cast<std::chrono::microseconds>(duration);
149 CB_NODISCARD instance_pool_event_counter*
event_counter()
const 151 return event_counter_;
159 event_counter_ = counter;
172 std::string cluster_address_;
173 std::string user_name_;
174 std::string password_;
176 size_t max_bucket_instances_;
177 std::list<std::shared_ptr<class bucket>> open_buckets_;
178 std::unique_ptr<pool<lcb_st*>> instance_pool_;
179 instance_pool_event_counter* event_counter_;
180 boost::optional<std::chrono::microseconds> kv_timeout_;
195 std::string user_name,
196 std::string password,
222 CB_NODISCARD std::list<std::string>
buckets();
231 CB_NODISCARD std::shared_ptr<class bucket>
bucket(
const std::string& name);
242 return cluster_address_;
Definition: bucket.hxx:33
CB_NODISCARD size_t instances() const
return current number of libcouchbase instances the cluster has created.
CB_NODISCARD std::shared_ptr< class bucket > bucket(const std::string &name)
Open a connection to a bucket.
CB_NODISCARD instance_pool_event_counter * event_counter() const
Internal structure used for tests.
Definition: cluster.hxx:152
Options for cluster connections.
Definition: cluster.hxx:52
cluster_options()
Default constructor for cluster_options.
Definition: cluster.hxx:64
CB_NODISCARD size_t max_instances() const
get maximum number of libcouchbase instances for this cluster.
Definition: cluster.hxx:80
CB_NODISCARD size_t max_instances() const
return maximum number of libcouchbase instances this cluster can use
Connects to a couchbase cluster, exposes cluster operations and bucket accessors. ...
Definition: cluster.hxx:172
CB_NODISCARD const std::string cluster_address() const
return the cluster address
Definition: cluster.hxx:244
CB_NODISCARD std::list< std::string > buckets()
List buckets in this cluster.
cluster(std::string cluster_address, std::string user_name, std::string password, const cluster_options &opts=cluster_options())
Create a new cluster and connect to it.
CB_NODISCARD boost::optional< std::chrono::microseconds > kv_timeout() const
Default kv timeout.
Definition: cluster.hxx:127
~cluster()
Destroy a cluster.
CB_NODISCARD size_t available_instances() const
return the current number of libcouchbase instances that are not being used.
CB_NODISCARD size_t max_bucket_instances() const
get maximum number of libcouchbase instances for this cluster.
Definition: cluster.hxx:104
CB_NODISCARD bool operator==(const couchbase::cluster &other) const
compare two clusters for equality
CB_NODISCARD std::chrono::microseconds default_kv_timeout() const
Default kv timeout.