MongoDB C++ Driver mongocxx-3.0.3
Loading...
Searching...
No Matches
client.hpp
1// Copyright 2014 MongoDB Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#pragma once
16
17#include <memory>
18
19#include <bsoncxx/string/view_or_value.hpp>
20#include <mongocxx/database.hpp>
21#include <mongocxx/options/client.hpp>
22#include <mongocxx/read_concern.hpp>
23#include <mongocxx/read_preference.hpp>
24#include <mongocxx/stdx.hpp>
25#include <mongocxx/uri.hpp>
26#include <mongocxx/write_concern.hpp>
27
28#include <mongocxx/config/prelude.hpp>
29
30namespace mongocxx {
31MONGOCXX_INLINE_NAMESPACE_BEGIN
32
49class MONGOCXX_API client {
50 public:
56 client() noexcept;
57
69 client(const class uri& mongodb_uri, const options::client& options = options::client());
70
74 client(client&&) noexcept;
75
79 client& operator=(client&&) noexcept;
80
85
90 explicit operator bool() const noexcept;
91
105
112
126
135
141 class uri uri() const;
142
154
160
171 class database database(bsoncxx::string::view_or_value name) const&;
172 class database database(bsoncxx::string::view_or_value name) const&& = delete;
173
185 MONGOCXX_INLINE class database operator[](bsoncxx::string::view_or_value name) const&;
186 MONGOCXX_INLINE class database operator[](bsoncxx::string::view_or_value name) const&& = delete;
187
201 cursor list_databases() const;
202
203 private:
204 friend class collection;
205 friend class database;
206 friend class pool;
207
208 MONGOCXX_PRIVATE explicit client(void* implementation);
209
210 class MONGOCXX_PRIVATE impl;
211
212 MONGOCXX_PRIVATE impl& _get_impl();
213 MONGOCXX_PRIVATE const impl& _get_impl() const;
214
215 std::unique_ptr<impl> _impl;
216};
217
218MONGOCXX_INLINE database client::operator[](bsoncxx::string::view_or_value name) const & {
219 return database(name);
220}
221
222MONGOCXX_INLINE_NAMESPACE_END
223} // namespace mongocxx
224
225#include <mongocxx/config/postlude.hpp>
Class representing a client connection to MongoDB.
Definition client.hpp:49
client() noexcept
Default constructs a new client.
Class representing server side document groupings within a MongoDB database.
Definition collection.hpp:74
Class representing a pointer to the result set of a query on a MongoDB server.
Definition cursor.hpp:35
Class representing a MongoDB database.
Definition database.hpp:43
A pool of client objects associated with a MongoDB deployment.
Definition pool.hpp:49
A class to represent the read concern.
Definition read_concern.hpp:46
Class representing a preference for how the driver routes read operations to members of a replica set...
Definition read_preference.hpp:54
Class representing a MongoDB connection string URI.
Definition uri.hpp:40
Class representing the server-side requirement for reporting the success of a write operation.
Definition write_concern.hpp:54