Loading...
Searching...
No Matches
client.hpp
Go to the documentation of this file.
// Copyright 2009-present MongoDB, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
#include <mongocxx/options/client-fwd.hpp> // IWYU pragma: export
//
#include <mongocxx/v1/client.hpp> // IWYU pragma: export
#include <mongocxx/v1/oidc_callback.hpp>
#include <string> // IWYU pragma: keep: backward compatibility, to be removed.
#include <utility>
#include <bsoncxx/stdx/optional.hpp>
#include <mongocxx/options/apm.hpp>
#include <mongocxx/options/auto_encryption.hpp>
#include <mongocxx/options/server_api.hpp>
#include <mongocxx/options/tls.hpp>
#include <mongocxx/config/prelude.hpp>
namespace mongocxx {
namespace v_noabi {
namespace options {
class client {
public:
client() = default;
MONGOCXX_DEPRECATED client& ssl_opts(tls ssl_opts) {
return this->tls_opts(std::move(ssl_opts));
}
client& tls_opts(tls tls_opts) {
_tls_opts = std::move(tls_opts);
return *this;
}
MONGOCXX_DEPRECATED bsoncxx::v_noabi::stdx::optional<tls> const& ssl_opts() const {
return this->tls_opts();
}
bsoncxx::v_noabi::stdx::optional<tls> const& tls_opts() const {
return _tls_opts;
}
client& auto_encryption_opts(auto_encryption auto_encryption_opts) {
_auto_encrypt_opts = std::move(auto_encryption_opts);
return *this;
}
bsoncxx::v_noabi::stdx::optional<auto_encryption> const& auto_encryption_opts() const {
return _auto_encrypt_opts;
}
client& apm_opts(apm apm_opts) {
_apm_opts = std::move(apm_opts);
return *this;
}
bsoncxx::v_noabi::stdx::optional<apm> const& apm_opts() const {
return _apm_opts;
}
client& server_api_opts(server_api server_api_opts) {
_server_api_opts = std::move(server_api_opts);
return *this;
}
bsoncxx::v_noabi::stdx::optional<server_api> const& server_api_opts() const {
return _server_api_opts;
}
client& oidc_callback(v1::oidc_callback oidc_callback) {
_oidc_callback = std::move(oidc_callback);
return *this;
}
bsoncxx::v_noabi::stdx::optional<v1::oidc_callback> const& oidc_callback() const {
return _oidc_callback;
}
class internal;
private:
bsoncxx::v_noabi::stdx::optional<tls> _tls_opts;
bsoncxx::v_noabi::stdx::optional<apm> _apm_opts;
bsoncxx::v_noabi::stdx::optional<auto_encryption> _auto_encrypt_opts;
bsoncxx::v_noabi::stdx::optional<server_api> _server_api_opts;
bsoncxx::v_noabi::stdx::optional<v1::oidc_callback> _oidc_callback;
/* explicit(false) */ client(v1::client::options opts);
explicit operator v1::client::options() const;
};
} // namespace options
} // namespace v_noabi
} // namespace mongocxx
namespace mongocxx {
namespace v_noabi {
MONGOCXX_ABI_EXPORT_CDECL_UNSTABLE(v_noabi::options::client) from_v1(v1::client::options v);
inline v_noabi::options::client from_v1(v1::client::options v, v_noabi::options::auto_encryption opts) {
auto ret = from_v1(std::move(v));
ret.auto_encryption_opts(std::move(opts));
return ret;
}
MONGOCXX_ABI_EXPORT_CDECL_UNSTABLE(v1::client::options) to_v1(v_noabi::options::client const& v);
inline v1::client::options to_v1(v_noabi::options::client const& v, v1::auto_encryption_options opts) {
auto ret = to_v1(v);
ret.auto_encryption_opts(std::move(opts));
return ret;
}
} // namespace v_noabi
} // namespace mongocxx
#include <mongocxx/config/postlude.hpp>
auto_encryption.hpp
Provides mongocxx::v_noabi::options::auto_encryption.
bsoncxx::v1::stdx::optional
A polyfill for std::optional<T>.
Definition optional.hpp:799
mongocxx::options::client::client
client()=default
Default initialization.
mongocxx::v1::auto_encryption_options
Options related In-Use Encryption configuration.
Definition auto_encryption_options.hpp:58
mongocxx::v1::client::options
Options for mongocxx::v1::client.
Definition client.hpp:310
mongocxx::v_noabi::options::apm
Used by mongocxx::v_noabi::options::client::apm_opts.
Definition apm.hpp:52
mongocxx::v_noabi::options::auto_encryption
Used by mongocxx::v_noabi::options::client::auto_encryption_opts.
Definition auto_encryption.hpp:44
mongocxx::v_noabi::options::client
Used by clients.
Definition client.hpp:43
mongocxx::v_noabi::options::client::auto_encryption_opts
client & auto_encryption_opts(auto_encryption auto_encryption_opts)
Sets the automatic encryption options.
Definition client.hpp:112
mongocxx::v_noabi::options::client::ssl_opts
client & ssl_opts(tls ssl_opts)
Sets the SSL-related options.
Definition client.hpp:63
mongocxx::v_noabi::options::client::apm_opts
client & apm_opts(apm apm_opts)
Sets the APM-related options.
Definition client.hpp:137
mongocxx::v_noabi::options::client::client
client()=default
Default initialization.
mongocxx::v_noabi::options::client::oidc_callback
client & oidc_callback(v1::oidc_callback oidc_callback)
Sets the OIDC callback.
Definition client.hpp:187
mongocxx::v_noabi::options::client::ssl_opts
bsoncxx::v_noabi::stdx::optional< tls > const & ssl_opts() const
The current SSL-related options.
Definition client.hpp:89
mongocxx::v_noabi::options::client::oidc_callback
bsoncxx::v_noabi::stdx::optional< v1::oidc_callback > const & oidc_callback() const
The current OIDC callback.
Definition client.hpp:197
mongocxx::v_noabi::options::client::server_api_opts
client & server_api_opts(server_api server_api_opts)
Sets the server API options.
Definition client.hpp:161
mongocxx::v_noabi::options::client::server_api_opts
bsoncxx::v_noabi::stdx::optional< server_api > const & server_api_opts() const
Gets the current server API options or returns a disengaged optional if there are no server API optio...
Definition client.hpp:173
mongocxx::v_noabi::options::client::tls_opts
bsoncxx::v_noabi::stdx::optional< tls > const & tls_opts() const
The current TLS-related options.
Definition client.hpp:98
mongocxx::v_noabi::options::client::auto_encryption_opts
bsoncxx::v_noabi::stdx::optional< auto_encryption > const & auto_encryption_opts() const
Gets the current automatic encryption options.
Definition client.hpp:123
mongocxx::v_noabi::options::client::tls_opts
client & tls_opts(tls tls_opts)
Sets the TLS-related options.
Definition client.hpp:77
mongocxx::v_noabi::options::client::apm_opts
bsoncxx::v_noabi::stdx::optional< apm > const & apm_opts() const
The current APM-related options.
Definition client.hpp:147
mongocxx::v_noabi::options::server_api
Used by mongocxx::v_noabi::options::client::server_api_opts.
Definition server_api.hpp:43
mongocxx::v_noabi::options::tls
Used by mongocxx::v_noabi::options::client::tls_opts.
Definition tls.hpp:39
MONGOCXX_DEPRECATED
#define MONGOCXX_DEPRECATED
Declares the associated entity as deprecated.
Definition export.hpp:25
MONGOCXX_ABI_EXPORT_CDECL_UNSTABLE
#define MONGOCXX_ABI_EXPORT_CDECL_UNSTABLE(...)
Equivalent to MONGOCXX_ABI_EXPORT_UNSTABLE with MONGOCXX_ABI_CDECL.
Definition config.hpp:28
postlude.hpp
The mongocxx v_noabi macro guard postlude header.
prelude.hpp
The mongocxx v_noabi macro guard prelude header.
mongocxx::v1::oidc_callback
std::function< oidc_credential(oidc_callback_params const &)> oidc_callback
An OIDC credential callback function.
Definition oidc_callback.hpp:36
mongocxx::v_noabi::options
Declares entities representing options to use with various commands.
mongocxx::v_noabi
Declares entities whose ABI stability is NOT guaranteed.
mongocxx::v_noabi::to_v1
v1::bulk_write to_v1(v_noabi::bulk_write v)
Convert to the mongocxx::v1 equivalent of v.
Definition bulk_write.hpp:162
mongocxx::v_noabi::from_v1
v_noabi::bulk_write from_v1(v1::bulk_write v)
Convert to the mongocxx::v_noabi equivalent of v.
Definition bulk_write.hpp:155
mongocxx
The top-level namespace within which all mongocxx library entities are declared.
client.hpp
Provides mongocxx::v1::client.
oidc_callback.hpp
Provides mongocxx::v1::oidc_callback.
optional.hpp
Provides std::optional-related polyfills for library API usage.
apm.hpp
Provides mongocxx::v_noabi::options::apm.
client-fwd.hpp
Declares mongocxx::v_noabi::options::client.
server_api.hpp
Provides mongocxx::v_noabi::options::server_api.
tls.hpp
Provides mongocxx::v_noabi::options::tls.