MongoDB C++ Driver 4.2.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
96class uri {
97 private:
98 void* _impl; // mongoc_uri_t
99
100 public:
104 struct host {
105 std::string name;
106 std::uint16_t port;
107 std::int32_t family;
108 };
109
113 static constexpr auto k_default_uri = "mongodb://localhost:27017";
114
121
128 MONGOCXX_ABI_EXPORT_CDECL() uri(uri&& other) noexcept;
129
136 MONGOCXX_ABI_EXPORT_CDECL(uri&) operator=(uri&& other) noexcept;
137
142
146 MONGOCXX_ABI_EXPORT_CDECL(uri&) operator=(uri const& other);
147
152
163 /* explicit(false) */ MONGOCXX_ABI_EXPORT_CDECL() uri(bsoncxx::v1::stdx::string_view v);
164
169
173 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) auth_source() const;
174
178 MONGOCXX_ABI_EXPORT_CDECL(std::vector<host>) hosts() const;
179
185 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) database() const;
186
190 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::document::view) options() const;
191
195 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) password() const;
196
201
206
210 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) replica_set() const;
211
216
220 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) to_string() const;
221
225 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::string_view) username() const;
226
231
235 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>) appname() const;
236
241 const;
242
246 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::document::view>) credentials() const;
247
251 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) srv_max_hosts() const;
252
256 MONGOCXX_ABI_EXPORT_CDECL(std::vector<bsoncxx::v1::stdx::string_view>) compressors() const;
257
261 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) connect_timeout_ms() const;
262
266 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) direct_connection() const;
267
271 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) heartbeat_frequency_ms() const;
272
276 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) local_threshold_ms() const;
277
281 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) max_pool_size() const;
282
286 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) retry_reads() const;
287
291 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) retry_writes() const;
292
296 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) server_selection_timeout_ms() const;
297
302
310
314 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) socket_timeout_ms() const;
315
320
325
329 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>) tls_ca_file() const;
330
335 const;
336
340 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bsoncxx::v1::stdx::string_view>)
342
347
352
356 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<bool>) tls_insecure() const;
357
361 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) wait_queue_timeout_ms() const;
362
366 MONGOCXX_ABI_EXPORT_CDECL(bsoncxx::v1::stdx::optional<std::int32_t>) zlib_compression_level() const;
367
373 enum class errc {
376 };
377
383 static MONGOCXX_ABI_EXPORT_CDECL(std::error_category const&) error_category();
384
390 friend std::error_code make_error_code(errc v) {
391 return {static_cast<int>(v), error_category()};
392 }
393
394 class internal;
395
396 private:
397 // MSVC may incorrectly select the `void*` ctor given a `char const*` argument without `/Zc:strictStrings`.
398 struct void_ptr {
399 void* impl = nullptr;
400 };
401
402 explicit uri(void_ptr vp);
403};
404
405BSONCXX_PRIVATE_INLINE_CXX17 constexpr char const* uri::k_default_uri;
406
407} // namespace v1
408} // namespace mongocxx
409
410namespace std {
411
412template <>
413struct is_error_code_enum<mongocxx::v1::uri::errc> : true_type {};
414
415} // namespace std
416
418
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:113
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:373
@ set_failure
Failed to set the requested URI option.
Definition uri.hpp:375
@ zero
Zero.
Definition uri.hpp:374
bsoncxx::v1::stdx::optional< bool > retry_reads() const
Return the "retryReads" 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.
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:390
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:104
std::int32_t family
The address family.
Definition uri.hpp:107
std::uint16_t port
The port number.
Definition uri.hpp:106
std::string name
The host name.
Definition uri.hpp:105
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.