MongoDB C++ Driver 4.3.0
Loading...
Searching...
No Matches
uri.hpp
Go to the documentation of this file.
1
9//
10// Licensed under the Apache License, Version 2.0 (the "License");
11// you may not use this file except in compliance with the License.
12// You may obtain a copy of the License at
13//
14// http://www.apache.org/licenses/LICENSE-2.0
15//
16// Unless required by applicable law or agreed to in writing, software
17// distributed under the License is distributed on an "AS IS" BASIS,
18// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19// See the License for the specific language governing permissions and
20// limitations under the License.
21
22#pragma once
23
24#include <mongocxx/v1/uri-fwd.hpp> // IWYU pragma: export
25
26//
27
29
31
35
39
41
42#include <cstdint>
43#include <string>
44#include <system_error>
45#include <type_traits>
46#include <vector>
47
48namespace mongocxx {
49namespace v1 {
50
98class uri {
99 private:
100 void* _impl; // mongoc_uri_t
101
102 public:
106 struct host {
107 std::string name;
108 std::uint16_t port;
109 std::int32_t family;
110 };
111
115 static constexpr auto k_default_uri = "mongodb://localhost:27017";
116
123
130 MONGOCXX_ABI_EXPORT_CDECL() uri(uri&& other) noexcept;
131
138 MONGOCXX_ABI_EXPORT_CDECL(uri&) operator=(uri&& other) noexcept;
139
144
148 MONGOCXX_ABI_EXPORT_CDECL(uri&) operator=(uri const& other);
149
154
165 /* explicit(false) */ MONGOCXX_ABI_EXPORT_CDECL() uri(bsoncxx::v1::stdx::string_view v);
166
171
175 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) auth_source() const;
176
180 MONGOCXX_ABI_EXPORT_CDECL(std::vector<host>) hosts() const;
181
187 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) database() const;
188
192 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::document::view) options() const;
193
197 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) password() const;
198
203
208
212 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) replica_set() const;
213
218
222 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) to_string() const;
223
227 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) username() const;
228
233
237 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>) appname() const;
238
243 const;
244
248 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::document::view>) credentials() const;
249
253 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) srv_max_hosts() const;
254
258 MONGOCXX_ABI_EXPORT_CDECL(std::vector<bsoncxx::v1::stdx::string_view>) compressors() const;
259
263 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) connect_timeout_ms() const;
264
268 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) direct_connection() const;
269
273 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) heartbeat_frequency_ms() const;
274
278 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) local_threshold_ms() const;
279
283 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) max_adaptive_retries() const;
284
289
293 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) max_pool_size() const;
294
298 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) retry_reads() const;
299
303 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) retry_writes() const;
304
308 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) server_selection_timeout_ms() const;
309
314
322
326 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) socket_timeout_ms() const;
327
332
337
341 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>) tls_ca_file() const;
342
347 const;
348
352 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>)
354
359
364
368 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) tls_insecure() const;
369
373 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) wait_queue_timeout_ms() const;
374
378 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) zlib_compression_level() const;
379
385 enum class errc {
388 };
389
395 static MONGOCXX_ABI_EXPORT_CDECL(std::error_category const&) error_category();
396
402 friend std::error_code make_error_code(errc v) {
403 return {static_cast<int>(v), error_category()};
404 }
405
406 class internal;
407
408 private:
409 // MSVC may incorrectly select the `void*` ctor given a `char const*` argument without `/Zc:strictStrings`.
410 struct void_ptr {
411 void* impl = nullptr;
412 };
413
414 explicit uri(void_ptr vp);
415};
416
417BSONCXX_PRIVATE_INLINE_CXX17 constexpr char const* uri::k_default_uri;
418
419} // namespace v1
420} // namespace mongocxx
421
422namespace std {
423
424template <>
425struct is_error_code_enum<mongocxx::v1::uri::errc> : true_type {};
426
427} // namespace std
428
430
For internal use only!
bsoncxx::v1::stdx::optional< bool > tls_disable_certificate_revocation_check() const
Return the (mongoc-specific) "tlsDisableCertificateRevocationCheck" option.
bsoncxx::v1::stdx::optional< bool > tls_allow_invalid_certificates() const
Return the "tlsAllowInvalidCertificates" option.
bsoncxx::v1::stdx::optional< bsoncxx::v1::stdx::string_view > tls_certificate_key_file_password() const
Return the "tlsCertificateKeyFilePassword" option.
bsoncxx::v1::stdx::optional< std::int32_t > zlib_compression_level() const
Return the "zlibCompressionLevel" option.
bsoncxx::v1::stdx::optional< bool > server_selection_try_once() const
Return the "serverSelectionTryOnce" option.
static constexpr auto k_default_uri
The default connection string.
Definition uri.hpp:115
bsoncxx::v1::stdx::optional< std::int32_t > server_selection_timeout_ms() const
Return the "serverSelectionTimeoutMS" option.
bsoncxx::v1::stdx::optional< bool > direct_connection() const
Return the "directConnection" option.
v1::read_concern read_concern() const
Return the "readConcern" option.
bsoncxx::v1::stdx::optional< std::int32_t > max_pool_size() const
Return the "maxPoolSize" option.
uri(uri &&other) noexcept
Move constructor.
errc
Errors codes which may be returned by mongocxx::v1::uri.
Definition uri.hpp:385
@ set_failure
Failed to set the requested URI option.
Definition uri.hpp:387
@ zero
Zero.
Definition uri.hpp:386
bsoncxx::v1::stdx::optional< bool > retry_reads() const
Return the "retryReads" option.
bsoncxx::v1::stdx::optional< bool > enable_overload_retargeting() const
Return the "enableOverloadRetargeting" option.
bsoncxx::v1::stdx::string_view replica_set() const
Return the "replicaSet" option.
bsoncxx::v1::stdx::optional< bool > tls_insecure() const
Return the "tlsInsecure" option.
bsoncxx::v1::stdx::string_view password() const
Return the password specified by the connection string.
bsoncxx::v1::stdx::optional< std::int32_t > max_adaptive_retries() const
Return the "maxAdaptiveRetries" option.
v1::read_preference read_preference() const
Return the "readPreference" option.
bsoncxx::v1::stdx::optional< std::int32_t > socket_timeout_ms() const
Return the "socketTimeoutMS" option.
bsoncxx::v1::stdx::optional< bsoncxx::v1::document::view > credentials() const
Return the mongoc "credentials" field containing "authMechanism" and related options.
v1::write_concern write_concern() const
Return the "writeConcern" option.
bsoncxx::v1::stdx::string_view database() const
Return the database name specified by the connection string.
friend std::error_code make_error_code(errc v)
Support implicit conversion to std::error_code.
Definition uri.hpp:402
bsoncxx::v1::stdx::string_view auth_source() const
Return the "authSource" option.
bsoncxx::v1::stdx::string_view auth_mechanism() const
Return the "authMechanism" option.
bsoncxx::v1::stdx::optional< bsoncxx::v1::stdx::string_view > appname() const
Return the "appName" option.
std::vector< bsoncxx::v1::stdx::string_view > compressors() const
Return the "compressors" option.
bsoncxx::v1::stdx::optional< bool > tls_allow_invalid_hostnames() const
Return the "tlsAllowInvalidHostnames" option.
bsoncxx::v1::stdx::string_view username() const
Return the username specified by the connection string.
bsoncxx::v1::stdx::optional< bool > tls_disable_ocsp_endpoint_check() const
Return the (mongoc-specific) "tlsDisableOCSPEndpointCheck" option.
bsoncxx::v1::stdx::optional< bool > retry_writes() const
Return the "retryWrites" option.
static std::error_category const & error_category()
The error category for mongocxx::v1::uri::errc.
bool tls() const
Return the "tls" option.
bsoncxx::v1::stdx::optional< std::int32_t > srv_max_hosts() const
Return the "srvMaxHosts" option.
bsoncxx::v1::stdx::string_view to_string() const
Return this URI as a connection string.
bsoncxx::v1::stdx::optional< std::int32_t > heartbeat_frequency_ms() const
Return the "heartbeatFrequencyMS" option.
~uri()
Destroy this object.
bsoncxx::v1::stdx::optional< bsoncxx::v1::stdx::string_view > tls_certificate_key_file() const
Return the "tlsCertificateKeyFile" option.
bsoncxx::v1::stdx::optional< std::int32_t > wait_queue_timeout_ms() const
Return the "waitQueueTimeoutMS" option.
bsoncxx::v1::stdx::optional< std::int32_t > connect_timeout_ms() const
Return the "connectTimeoutMS" option.
std::vector< host > hosts() const
Return the host(s) identifiers specified by the connection string.
uri()
Equivalent to uri(bsoncxx::v1::stdx::string_view v) with k_default_uri.
bsoncxx::v1::document::view options() const
Return all URI options that were specified by the connection string.
bsoncxx::v1::stdx::optional< bsoncxx::v1::document::view > auth_mechanism_properties() const
Return the "authMechanismProperties" option.
bsoncxx::v1::stdx::optional< std::int32_t > local_threshold_ms() const
Return the "localThresholdMS" option.
bsoncxx::v1::stdx::optional< bsoncxx::v1::stdx::string_view > tls_ca_file() const
Return the "tlsCAFile" option.
Provides macros to control the set of symbols exported in the ABI.
#define MONGOCXX_ABI_EXPORT_CDECL(...)
Equivalent to MONGOCXX_ABI_EXPORT with MONGOCXX_ABI_CDECL.
Definition export.hpp:52
The mongocxx v1 macro guard postlude header.
The mongocxx v1 macro guard prelude header.
The top-level namespace within which all bsoncxx library entities are declared.
Declares entities whose ABI stability is guaranteed for documented symbols.
@ mongocxx
From the mongocxx library.
Definition exception.hpp:42
The top-level namespace within which all mongocxx library entities are declared.
A host identifier.
Definition uri.hpp:106
std::int32_t family
The address family.
Definition uri.hpp:109
std::uint16_t port
The port number.
Definition uri.hpp:108
std::string name
The host name.
Definition uri.hpp:107
Declares bsoncxx::v1::document::view.
Declares mongocxx::v1::read_concern.
Declares mongocxx::v1::read_preference.
Provides std::optional-related polyfills for library API usage.
Provides std::string_view-related polyfills for library API usage.
Declares mongocxx::v1::uri.
Declares mongocxx::v1::write_concern.