11 #ifndef ASIO_DETAIL_SERVICE_REGISTRY_HPP 12 #define ASIO_DETAIL_SERVICE_REGISTRY_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 37 template <
typename Service,
typename Arg>
39 Service* initial_service, Arg arg);
49 template <
typename Service>
50 Service& first_service();
55 template <
typename Service>
60 template <
typename Service>
64 template <
typename Service>
70 asio::io_service::service::key& key,
73 #if !defined(ASIO_NO_TYPEID) 75 template <
typename Service>
76 static void init_key(asio::io_service::service::key& key,
78 #endif // !defined(ASIO_NO_TYPEID) 82 const asio::io_service::service::key& key1,
83 const asio::io_service::service::key& key2);
90 template <
typename Service>
99 struct auto_service_ptr;
100 friend struct auto_service_ptr;
101 struct auto_service_ptr
104 ~auto_service_ptr() { destroy(ptr_); }
111 const asio::io_service::service::key& key,
112 factory_type factory);
117 const asio::io_service::service::key& key,
122 const asio::io_service::service::key& key)
const;
140 #if defined(ASIO_HEADER_ONLY) 142 #endif // defined(ASIO_HEADER_ONLY) 144 #endif // ASIO_DETAIL_SERVICE_REGISTRY_HPP
Class used to uniquely identify a service.
Provides core I/O functionality.
Service & use_service(io_service &ios)
void add_service(io_service &ios, Service *svc)
fork_event
Fork-related event notifications.
bool has_service(io_service &ios)
Base class for all io_service services.