Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/asio/ip/multicast.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 // | |
2 // ip/multicast.hpp | |
3 // ~~~~~~~~~~~~~~~~ | |
4 // | |
5 // Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhoff dot com) | |
6 // | |
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying | |
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 // | |
10 | |
11 #ifndef BOOST_ASIO_IP_MULTICAST_HPP | |
12 #define BOOST_ASIO_IP_MULTICAST_HPP | |
13 | |
14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) | |
15 # pragma once | |
16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) | |
17 | |
18 #include <boost/asio/detail/config.hpp> | |
19 #include <cstddef> | |
20 #include <boost/asio/ip/detail/socket_option.hpp> | |
21 | |
22 #include <boost/asio/detail/push_options.hpp> | |
23 | |
24 namespace boost { | |
25 namespace asio { | |
26 namespace ip { | |
27 namespace multicast { | |
28 | |
29 /// Socket option to join a multicast group on a specified interface. | |
30 /** | |
31 * Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. | |
32 * | |
33 * @par Examples | |
34 * Setting the option to join a multicast group: | |
35 * @code | |
36 * boost::asio::ip::udp::socket socket(io_service); | |
37 * ... | |
38 * boost::asio::ip::address multicast_address = | |
39 * boost::asio::ip::address::from_string("225.0.0.1"); | |
40 * boost::asio::ip::multicast::join_group option(multicast_address); | |
41 * socket.set_option(option); | |
42 * @endcode | |
43 * | |
44 * @par Concepts: | |
45 * SettableSocketOption. | |
46 */ | |
47 #if defined(GENERATING_DOCUMENTATION) | |
48 typedef implementation_defined join_group; | |
49 #else | |
50 typedef boost::asio::ip::detail::socket_option::multicast_request< | |
51 BOOST_ASIO_OS_DEF(IPPROTO_IP), | |
52 BOOST_ASIO_OS_DEF(IP_ADD_MEMBERSHIP), | |
53 BOOST_ASIO_OS_DEF(IPPROTO_IPV6), | |
54 BOOST_ASIO_OS_DEF(IPV6_JOIN_GROUP)> join_group; | |
55 #endif | |
56 | |
57 /// Socket option to leave a multicast group on a specified interface. | |
58 /** | |
59 * Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. | |
60 * | |
61 * @par Examples | |
62 * Setting the option to leave a multicast group: | |
63 * @code | |
64 * boost::asio::ip::udp::socket socket(io_service); | |
65 * ... | |
66 * boost::asio::ip::address multicast_address = | |
67 * boost::asio::ip::address::from_string("225.0.0.1"); | |
68 * boost::asio::ip::multicast::leave_group option(multicast_address); | |
69 * socket.set_option(option); | |
70 * @endcode | |
71 * | |
72 * @par Concepts: | |
73 * SettableSocketOption. | |
74 */ | |
75 #if defined(GENERATING_DOCUMENTATION) | |
76 typedef implementation_defined leave_group; | |
77 #else | |
78 typedef boost::asio::ip::detail::socket_option::multicast_request< | |
79 BOOST_ASIO_OS_DEF(IPPROTO_IP), | |
80 BOOST_ASIO_OS_DEF(IP_DROP_MEMBERSHIP), | |
81 BOOST_ASIO_OS_DEF(IPPROTO_IPV6), | |
82 BOOST_ASIO_OS_DEF(IPV6_LEAVE_GROUP)> leave_group; | |
83 #endif | |
84 | |
85 /// Socket option for local interface to use for outgoing multicast packets. | |
86 /** | |
87 * Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. | |
88 * | |
89 * @par Examples | |
90 * Setting the option: | |
91 * @code | |
92 * boost::asio::ip::udp::socket socket(io_service); | |
93 * ... | |
94 * boost::asio::ip::address_v4 local_interface = | |
95 * boost::asio::ip::address_v4::from_string("1.2.3.4"); | |
96 * boost::asio::ip::multicast::outbound_interface option(local_interface); | |
97 * socket.set_option(option); | |
98 * @endcode | |
99 * | |
100 * @par Concepts: | |
101 * SettableSocketOption. | |
102 */ | |
103 #if defined(GENERATING_DOCUMENTATION) | |
104 typedef implementation_defined outbound_interface; | |
105 #else | |
106 typedef boost::asio::ip::detail::socket_option::network_interface< | |
107 BOOST_ASIO_OS_DEF(IPPROTO_IP), | |
108 BOOST_ASIO_OS_DEF(IP_MULTICAST_IF), | |
109 BOOST_ASIO_OS_DEF(IPPROTO_IPV6), | |
110 BOOST_ASIO_OS_DEF(IPV6_MULTICAST_IF)> outbound_interface; | |
111 #endif | |
112 | |
113 /// Socket option for time-to-live associated with outgoing multicast packets. | |
114 /** | |
115 * Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. | |
116 * | |
117 * @par Examples | |
118 * Setting the option: | |
119 * @code | |
120 * boost::asio::ip::udp::socket socket(io_service); | |
121 * ... | |
122 * boost::asio::ip::multicast::hops option(4); | |
123 * socket.set_option(option); | |
124 * @endcode | |
125 * | |
126 * @par | |
127 * Getting the current option value: | |
128 * @code | |
129 * boost::asio::ip::udp::socket socket(io_service); | |
130 * ... | |
131 * boost::asio::ip::multicast::hops option; | |
132 * socket.get_option(option); | |
133 * int ttl = option.value(); | |
134 * @endcode | |
135 * | |
136 * @par Concepts: | |
137 * GettableSocketOption, SettableSocketOption. | |
138 */ | |
139 #if defined(GENERATING_DOCUMENTATION) | |
140 typedef implementation_defined hops; | |
141 #else | |
142 typedef boost::asio::ip::detail::socket_option::multicast_hops< | |
143 BOOST_ASIO_OS_DEF(IPPROTO_IP), | |
144 BOOST_ASIO_OS_DEF(IP_MULTICAST_TTL), | |
145 BOOST_ASIO_OS_DEF(IPPROTO_IPV6), | |
146 BOOST_ASIO_OS_DEF(IPV6_MULTICAST_HOPS)> hops; | |
147 #endif | |
148 | |
149 /// Socket option determining whether outgoing multicast packets will be | |
150 /// received on the same socket if it is a member of the multicast group. | |
151 /** | |
152 * Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. | |
153 * | |
154 * @par Examples | |
155 * Setting the option: | |
156 * @code | |
157 * boost::asio::ip::udp::socket socket(io_service); | |
158 * ... | |
159 * boost::asio::ip::multicast::enable_loopback option(true); | |
160 * socket.set_option(option); | |
161 * @endcode | |
162 * | |
163 * @par | |
164 * Getting the current option value: | |
165 * @code | |
166 * boost::asio::ip::udp::socket socket(io_service); | |
167 * ... | |
168 * boost::asio::ip::multicast::enable_loopback option; | |
169 * socket.get_option(option); | |
170 * bool is_set = option.value(); | |
171 * @endcode | |
172 * | |
173 * @par Concepts: | |
174 * GettableSocketOption, SettableSocketOption. | |
175 */ | |
176 #if defined(GENERATING_DOCUMENTATION) | |
177 typedef implementation_defined enable_loopback; | |
178 #else | |
179 typedef boost::asio::ip::detail::socket_option::multicast_enable_loopback< | |
180 BOOST_ASIO_OS_DEF(IPPROTO_IP), | |
181 BOOST_ASIO_OS_DEF(IP_MULTICAST_LOOP), | |
182 BOOST_ASIO_OS_DEF(IPPROTO_IPV6), | |
183 BOOST_ASIO_OS_DEF(IPV6_MULTICAST_LOOP)> enable_loopback; | |
184 #endif | |
185 | |
186 } // namespace multicast | |
187 } // namespace ip | |
188 } // namespace asio | |
189 } // namespace boost | |
190 | |
191 #include <boost/asio/detail/pop_options.hpp> | |
192 | |
193 #endif // BOOST_ASIO_IP_MULTICAST_HPP |