22 #include <bsoncxx/document/value.hpp>
23 #include <bsoncxx/stdx/optional.hpp>
24 #include <bsoncxx/stdx/string_view.hpp>
25 #include <mongocxx/options/transaction.hpp>
26 #include <mongocxx/stdx.hpp>
28 #include <mongocxx/config/prelude.hpp>
31 MONGOCXX_INLINE_NAMESPACE_BEGIN
62 enum class level { k_default, k_majority, k_tag, k_unacknowledged, k_acknowledged };
102 void journal(
bool journal);
119 void nodes(std::int32_t confirm_from);
143 void acknowledge_level(level confirm_level);
155 void majority(std::chrono::milliseconds timeout);
166 void tag(stdx::string_view tag);
178 void timeout(std::chrono::milliseconds timeout);
185 bool journal() const;
197 stdx::optional<std::int32_t> nodes() const;
206 level acknowledge_level() const;
213 stdx::optional<std::
string> tag() const;
220 bool majority() const;
227 std::chrono::milliseconds timeout() const;
234 bool is_acknowledged() const;
242 bsoncxx::document::value to_document() const;
250 friend
mongocxx::options::transaction;
266 class MONGOCXX_PRIVATE impl;
268 MONGOCXX_PRIVATE
write_concern(std::unique_ptr<impl>&& implementation);
270 std::unique_ptr<impl> _impl;
273 MONGOCXX_INLINE_NAMESPACE_END
276 #include <mongocxx/config/postlude.hpp>