Go to the documentation of this file.00001
00002
00003
00004
00005
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
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;
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 }}
00086
00087
00088 #if defined(BOOST_MSVC)
00089 #pragma warning(pop)
00090 #endif
00091
00092 #endif // !defined(SAGA_PACKAGES_JOB_ADAPTORS_ISTREAM_HPP)
00093