3 #include <ozo/connector.h>
4 #include <ozo/connection.h>
5 #include <ozo/impl/async_connect.h>
6 #include <ozo/ext/std/shared_ptr.h>
27 typename Statistics = no_statistics>
30 Statistics statistics;
44 : conn_str(std::move(conn_str)), statistics(std::move(statistics)) {
59 template <
typename TimeConstra
int,
typename Handler>
61 static_assert(ozo::TimeConstraint<TimeConstraint>,
"should model TimeConstraint concept");
62 auto allocator = asio::get_associated_allocator(handler);
64 std::forward<Handler>(handler));
67 auto operator [](io_context& io)
const & {
71 auto operator [](io_context& io) && {
72 return connection_provider(std::move(*
this), io);
76 template<
typename O
idMap,
typename Statistics>
77 connection_info(std::string,
const OidMap&, Statistics statistics) -> connection_info<OidMap, Statistics>;
80 template <
typename ...Ts>
81 [[deprecated]]
auto make_connector(
const connection_info<Ts...>& source, io_context& io,
time_traits::duration timeout) {
82 return bind_get_connection_timeout(source[io], timeout);
86 template <
typename ...Ts>
87 [[deprecated]]
auto make_connector(connection_info<Ts...>& source, io_context& io,
time_traits::duration timeout) {
88 return bind_get_connection_timeout(source[io], timeout);
92 template <
typename ...Ts>
93 [[deprecated]]
auto make_connector(connection_info<Ts...>&& source, io_context& io,
time_traits::duration timeout) {
94 return bind_get_connection_timeout(source[io], timeout);
98 template <
typename ...Ts>
99 [[deprecated]]
auto make_connector(
const connection_info<Ts...>& source, io_context& io) {
return source[io];}
102 template <
typename ...Ts>
103 [[deprecated]]
auto make_connector(connection_info<Ts...>& source, io_context& io) {
return source[io];}
106 template <
typename ...Ts>
107 [[deprecated]]
auto make_connector(connection_info<Ts...>&& source, io_context& io) {
return source[io];}
119 template <
typename O
idMap = empty_o
id_map,
typename Statistics = no_statistics>
121 Statistics statistics = Statistics{}) {
122 return connection_info{std::move(conn_str), oid_map, statistics};
125 static_assert(
ConnectionProvider<decltype(std::declval<connection_info<>>()[std::declval<io_context&>()])>,
"is not a ConnectionProvider");