Chris@16: /* Chris@16: * Defines the class template boost::iostreams::detail::device_adapter, Chris@16: * a convenience base class for device adapters. Chris@16: * Chris@16: * File: boost/iostreams/detail/adapter/filter_adapter.hpp Chris@16: * Date: Mon Nov 26 14:35:48 MST 2007 Chris@16: * Chris@16: * Copyright: 2007-2008 CodeRage, LLC Chris@16: * Author: Jonathan Turkanis Chris@16: * Contact: turkanis at coderage dot com Chris@16: * Chris@16: * Distributed under the Boost Software License, Version 1.0.(See accompanying Chris@16: * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.) Chris@16: * Chris@16: * See http://www.boost.org/libs/iostreams for documentation. Chris@16: */ Chris@16: Chris@16: #ifndef BOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED Chris@16: #define BOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace iostreams { namespace detail { Chris@16: Chris@16: template Chris@16: class device_adapter { Chris@16: private: Chris@16: typedef typename detail::value_type::type value_type; Chris@16: typedef typename detail::param_type::type param_type; Chris@16: public: Chris@16: explicit device_adapter(param_type t) : t_(t) { } Chris@16: T& component() { return t_; } Chris@16: Chris@16: void close() Chris@16: { Chris@16: detail::close_all(t_); Chris@16: } Chris@16: Chris@16: void close(BOOST_IOS::openmode which) Chris@16: { Chris@16: iostreams::close(t_, which); Chris@16: } Chris@16: Chris@16: bool flush() Chris@16: { Chris@16: return iostreams::flush(t_); Chris@16: } Chris@16: Chris@16: template // Avoid dependency on Chris@16: void imbue(const Locale& loc) { iostreams::imbue(t_, loc); } Chris@16: Chris@16: std::streamsize optimal_buffer_size() const Chris@16: { return iostreams::optimal_buffer_size(t_); } Chris@16: public: Chris@16: value_type t_; Chris@16: }; Chris@16: Chris@16: //----------------------------------------------------------------------------// Chris@16: Chris@16: } } } // End namespaces detail, iostreams, boost. Chris@16: Chris@16: #endif // #ifndef BOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED