1 
2 //          Copyright Dean Michael Berris 2007.
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 #ifndef BOOST_NETWORK_MESSAGE_TRANSFORMERS_SELECTORS_HPP__
8 #define BOOST_NETWORK_MESSAGE_TRANSFORMERS_SELECTORS_HPP__
9 
10 namespace boost {
11 namespace network {
12 namespace selectors {
13 struct source_selector;
14 struct destination_selector;
15 }  // namespace selectors
16 
17 selectors::source_selector source_(selectors::source_selector /*unused*/);
18 selectors::destination_selector destination_(
19     selectors::destination_selector /*unused*/);
20 
21 namespace selectors {
22 struct source_selector {
23  private:
24   source_selector() = default;
source_selectorboost::network::selectors::source_selector25   source_selector(source_selector const& /*unused*/) {};
26   friend source_selector boost::network::source_(source_selector /*unused*/);
27 };
28 
29 struct destination_selector {
30  private:
31   destination_selector() = default;
destination_selectorboost::network::selectors::destination_selector32   destination_selector(destination_selector const& /*unused*/) {};
33   friend destination_selector boost::network::destination_(
34       destination_selector /*unused*/);
35 };
36 }  // namespace selectors
37 
38 typedef selectors::source_selector (*source_selector_t)(
39     selectors::source_selector);
40 typedef selectors::destination_selector (*destination_selector_t)(
41     selectors::destination_selector);
42 
source_(selectors::source_selector)43 inline selectors::source_selector source_(
44     selectors::source_selector /*unused*/) {
45   return selectors::source_selector();
46 }
47 
destination_(selectors::destination_selector)48 inline selectors::destination_selector destination_(
49     selectors::destination_selector /*unused*/) {
50   return selectors::destination_selector();
51 }
52 
53 }  // namespace network
54 
55 }  // namespace boost
56 
57 #endif  // BOOST_NETWORK_MESSAGE_TRANSFORMERS_SELECTORS_HPP__
58