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)43inline selectors::source_selector source_( 44 selectors::source_selector /*unused*/) { 45 return selectors::source_selector(); 46 } 47 destination_(selectors::destination_selector)48inline 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