SAGA C++ API 1.6
istream.hpp
Go to the documentation of this file.
00001 //  Copyright (c) 2005-2009 Hartmut Kaiser
00002 //  Copyright (c) 2007 Ole Weidner (oweidner@cct.lsu.edu)
00003 // 
00004 //  Distributed under the Boost Software License, Version 1.0. (See accompanying 
00005 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
00006 
00007 #if !defined(SAGA_PACKAGES_JOB_ADAPTORS_ISTREAM_HPP)
00008 #define SAGA_PACKAGES_JOB_ADAPTORS_ISTREAM_HPP
00009 
00010 #include <iosfwd>
00011 
00012 #include <boost/config.hpp>
00013 
00014 #include <saga/saga/util.hpp>
00015 #include <saga/saga/base.hpp>
00016 #include <saga/saga/packages/job/config.hpp>
00017 
00018 // suppress warnings about dependent classes not being exported from the dll
00019 #if defined(BOOST_MSVC)
00020 #pragma warning(push)
00021 #pragma warning(disable: 4251 4231 4275 4660)
00022 #endif
00023 
00025 namespace saga { namespace job 
00026 {
00031     class SAGA_JOB_PACKAGE_EXPORT istream 
00032         : public std::basic_istream<char>
00033     {
00034     private:
00035         typedef std::basic_istream<char> base_type;
00036         TR1::shared_ptr<saga::impl::istream_interface> impl_;
00037 
00038     private:
00039          friend struct saga::impl::job_runtime;    // needed to allow access to get_handle
00040 
00041     protected:
00043 
00044         istream(saga::impl::istream_interface *impl);
00046         
00047     public:
00052         istream();
00053         
00058         istream(istream const& rhs);
00059         
00064         istream& operator=(istream const& rhs);
00065     };
00066 
00067     namespace detail
00068     {
00069 #if defined(BOOST_WINDOWS)
00070         typedef void* handle_type;
00071 #else
00072         typedef int handle_type;
00073 #endif
00074 
00080          SAGA_JOB_PACKAGE_EXPORT handle_type 
00081          get_handle(saga::job::istream const& istrm, bool detach = false);
00082     }
00083 
00085 }}    // namespace saga
00086 
00087 // re-enable warnings about dependent classes not being exported from the dll
00088 #if defined(BOOST_MSVC)
00089 #pragma warning(pop)
00090 #endif
00091 
00092 #endif // !defined(SAGA_PACKAGES_JOB_ADAPTORS_ISTREAM_HPP)
00093 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines