Files
2026-06-01 12:46:52 +02:00

47 lines
1.3 KiB
C++

// Copyright Dean Michael Berris 2007.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef __NETWORK_MESSAGE_WRAPPERS_SOURCE_HPP__
#define __NETWORK_MESSAGE_WRAPPERS_SOURCE_HPP__
#include <boost/network/traits/string.hpp>
namespace boost { namespace network {
namespace impl {
template <class Tag>
struct source_wrapper : public detail::wrapper_base<Tag, basic_message<Tag> > {
typedef Tag tag;
typedef basic_message<tag> message_type;
typedef typename string<tag>::type string_type;
typedef detail::wrapper_base<Tag, basic_message<Tag> > wrapper_base;
explicit source_wrapper(basic_message<tag> & message_)
: wrapper_base(message_)
{ };
operator string_type () const {
return string_type(wrapper_base::_message.source());
};
};
} // namespace impl
template <class Tag>
inline typename string<Tag>::type
source(basic_message<Tag> & message_) {
return impl::source_wrapper<Tag>(message_);
}
} // namespace network
} // namespace boost
#endif // __NETWORK_MESSAGE_WRAPPERS_SOURCE_HPP__