diff options
Diffstat (limited to 'boost/gil/io/get_write_device.hpp')
-rw-r--r-- | boost/gil/io/get_write_device.hpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/boost/gil/io/get_write_device.hpp b/boost/gil/io/get_write_device.hpp new file mode 100644 index 0000000000..638e595093 --- /dev/null +++ b/boost/gil/io/get_write_device.hpp @@ -0,0 +1,73 @@ +/* + Copyright 2012 Christian Henning + Use, modification and distribution are subject to 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_GIL_IO_GET_WRITE_DEVICE_HPP +#define BOOST_GIL_IO_GET_WRITE_DEVICE_HPP + +//////////////////////////////////////////////////////////////////////////////////////// +/// \file +/// \brief +/// \author Christian Henning \n +/// +/// \date 2012 \n +/// +//////////////////////////////////////////////////////////////////////////////////////// + +#include <boost/mpl/and.hpp> +#include <boost/utility/enable_if.hpp> +#include <boost/gil/io/path_spec.hpp> +#include <boost/gil/io/device.hpp> + +namespace boost { namespace gil { + +template< typename T + , typename FormatTag + , class Enable = void + > +struct get_write_device +{}; + + +template< typename Device + , typename FormatTag + > +struct get_write_device< Device + , FormatTag + , typename enable_if< mpl::and_< detail::is_adaptable_output_device< FormatTag + , Device + > + , is_format_tag< FormatTag > + > + >::type + > +{ + typedef typename detail::is_adaptable_output_device< FormatTag + , Device + >::device_type type; +}; + + +template< typename String + , typename FormatTag + > +struct get_write_device< String + , FormatTag + , typename enable_if< mpl::and_< detail::is_supported_path_spec< String > + , is_format_tag< FormatTag > + > + >::type + > +{ + typedef detail::file_stream_device< FormatTag > type; +}; + +} // namespace gil +} // namespace boost + +#endif |