// Copyright Dean Michael Berris 2007. // Copyright Michael Dickey 2008. // 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 BOOST_NETWORK_PROTOCOL_HTTP_RESPONSE_HPP #define BOOST_NETWORK_PROTOCOL_HTTP_RESPONSE_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace boost { namespace network { namespace http { template struct basic_response : public message_base::type { typedef typename string::type string_type; private: typedef typename message_base::type base_type; public: typedef Tag tag; basic_response() : base_type() {} basic_response(basic_response const & other) : base_type(other) {} basic_response & operator=(basic_response rhs) { rhs.swap(*this); return *this; }; void swap(basic_response & other) { base_type & base_ref(other), & this_ref(*this); std::swap(this_ref, base_ref); }; }; template inline void swap(basic_response & lhs, basic_response & rhs) { lhs.swap(rhs); } } // namespace http } // namespace network } // namespace boost #include namespace boost { namespace network { namespace http { template basic_response & operator<<( basic_response & message, Directive const & directive ) { directive(message); return message; } } // namespace http } // namespace network } // namespace boost #endif // BOOST_NETWORK_PROTOCOL_HTTP_RESPONSE_HPP