MongoDB C++ Driver  mongocxx-3.0.3
read_concern.hpp
1 // Copyright 2015 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/stdx/optional.hpp>
20 #include <bsoncxx/stdx/string_view.hpp>
21 #include <mongocxx/stdx.hpp>
22 
23 #include <mongocxx/config/prelude.hpp>
24 
25 namespace mongocxx {
26 MONGOCXX_INLINE_NAMESPACE_BEGIN
27 
28 class client;
29 class collection;
30 class database;
31 class uri;
32 
46 class MONGOCXX_API read_concern {
47  public:
53  enum class level {
54  k_local,
55  k_majority,
56  k_server_default,
57  k_unknown,
58  };
59 
67  read_concern();
68 
72  read_concern(const read_concern&);
73 
77  read_concern& operator=(const read_concern&);
78 
82  read_concern(read_concern&&) noexcept;
83 
87  read_concern& operator=(read_concern&&) noexcept;
88 
92  ~read_concern();
93 
102  void acknowledge_level(level rc_level);
103 
112  level acknowledge_level() const;
113 
122  void acknowledge_string(stdx::string_view rc_string);
123 
132  stdx::string_view acknowledge_string() const;
133 
134  private:
135  friend client;
136  friend collection;
137  friend database;
138  friend uri;
139 
140  class MONGOCXX_PRIVATE impl;
141 
142  MONGOCXX_PRIVATE read_concern(std::unique_ptr<impl>&& implementation);
143 
144  std::unique_ptr<impl> _impl;
145 };
146 
147 MONGOCXX_INLINE_NAMESPACE_END
148 } // namespace mongocxx
149 
150 #include <mongocxx/config/postlude.hpp>
Class representing a MongoDB connection string URI.
Definition: uri.hpp:40
Definition: bulk_write.hpp:22
level
A class to represent the read concern level.
Definition: read_concern.hpp:53
Definition: error_code.hpp:69
Class representing a client connection to MongoDB.
Definition: client.hpp:49
Class representing a MongoDB database.
Definition: database.hpp:43
A class to represent the read concern.
Definition: read_concern.hpp:46
Class representing server side document groupings within a MongoDB database.
Definition: collection.hpp:74