19 #ifndef INCLUDE_RCF_ASIO_HPP
20 #define INCLUDE_RCF_ASIO_HPP
25 #pragma warning(disable: 4996) // error C4996: 'WSAAddressToStringA': Use WSAAddressToStringW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
28 #include <RCF/Config.hpp>
31 #define BOOST_DATE_TIME_NO_LIB
32 #define BOOST_REGEX_NO_LIB
34 #include <RCF/AsioFwd.hpp>
44 #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
45 # if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
46 # error WinSock.h has already been included. Define WIN32_LEAN_AND_MEAN in your build, to avoid implicit inclusion of WinSock.h.
47 # endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
52 #pragma warning(disable: 4913) // user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
55 #ifdef RCF_USE_BOOST_ASIO
56 #include <boost/asio.hpp>
58 #include <RCF/external/asio/asio.hpp>
62 #ifdef RCF_USE_BOOST_ASIO
63 #ifdef BOOST_ASIO_HAS_LOCAL_SOCKETS
64 #define RCF_HAS_LOCAL_SOCKETS
67 #ifdef ASIO_HAS_LOCAL_SOCKETS
68 #define RCF_HAS_LOCAL_SOCKETS
72 #include <RCF/AsioDeadlineTimer.hpp>
81 typedef ASIO_NS::ip::tcp::socket AsioSocket;
82 typedef boost::shared_ptr<AsioSocket> AsioSocketPtr;
84 typedef ASIO_NS::const_buffer AsioConstBuffer;
86 typedef AsioSocket TcpSocket;
87 typedef boost::shared_ptr<TcpSocket> TcpSocketPtr;
89 #ifdef RCF_HAS_LOCAL_SOCKETS
91 using ASIO_NS::local::stream_protocol;
92 typedef stream_protocol::socket UnixLocalSocket;
93 typedef boost::shared_ptr<UnixLocalSocket> UnixLocalSocketPtr;
97 typedef TcpSocket UnixLocalSocket;
98 typedef TcpSocketPtr UnixLocalSocketPtr;
108 #endif // ! INCLUDE_RCF_ASIO_HPP