Added boost header
This commit is contained in:
51
test/external/boost/gil/extension/io/io_error.hpp
vendored
Normal file
51
test/external/boost/gil/extension/io/io_error.hpp
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright 2005-2007 Adobe Systems Incorporated
|
||||
|
||||
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).
|
||||
|
||||
See http://opensource.adobe.com/gil for most recent version including documentation.
|
||||
*/
|
||||
/*************************************************************************************************/
|
||||
|
||||
#ifndef GIL_IO_ERROR_H
|
||||
#define GIL_IO_ERROR_H
|
||||
|
||||
/// \file
|
||||
/// \brief Handle input-output errors
|
||||
/// \author Lubomir Bourdev and Hailin Jin \n
|
||||
/// Adobe Systems Incorporated
|
||||
/// \date 2005-2007 \n Last updated on May 30, 2006
|
||||
|
||||
#include <ios>
|
||||
#include "../../gil_config.hpp"
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
namespace boost { namespace gil {
|
||||
|
||||
inline void io_error(const char* descr) { throw std::ios_base::failure(descr); }
|
||||
inline void io_error_if(bool expr, const char* descr="") { if (expr) io_error(descr); }
|
||||
|
||||
namespace detail {
|
||||
class file_mgr {
|
||||
protected:
|
||||
shared_ptr<FILE> _fp;
|
||||
|
||||
struct null_deleter { void operator()(void const*) const {} };
|
||||
file_mgr(FILE* file) : _fp(file, null_deleter()) {}
|
||||
|
||||
file_mgr(const char* filename, const char* flags) {
|
||||
FILE* fp;
|
||||
io_error_if((fp=fopen(filename,flags))==NULL, "file_mgr: failed to open file");
|
||||
_fp=shared_ptr<FILE>(fp,fclose);
|
||||
}
|
||||
|
||||
public:
|
||||
FILE* get() { return _fp.get(); }
|
||||
};
|
||||
}
|
||||
|
||||
} } // namespace boost::gil
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user