00001
00002
00003
00004
00005
00006
00007 #if !defined(SAGA_PACKAGES_JOB_ADAPTORS_OSTREAM_HPP)
00008 #define SAGA_PACKAGES_JOB_ADAPTORS_OSTREAM_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 ostream
00032 : public std::basic_ostream<char>
00033 {
00034
00035 private:
00036 typedef std::basic_ostream<char> base_type;
00037 TR1::shared_ptr<saga::impl::ostream_interface> impl_;
00038
00039 #if defined(BOOST_WINDOWS)
00040 typedef void* handle_type;
00041 #else
00042 typedef int handle_type;
00043 #endif
00044
00051 public:
00052 handle_type get_handle() const;
00053
00054 private:
00055 friend struct saga::impl::job_runtime;
00056
00057 protected:
00059
00060 ostream(saga::impl::ostream_interface *impl);
00062
00063 public:
00068 ostream();
00069
00074 ostream(ostream const& rhs);
00075
00080 ostream& operator=(ostream const& rhs);
00081 };
00082
00084 }}
00085
00086
00087 #if defined(BOOST_MSVC)
00088 #pragma warning(pop)
00089 #endif
00090
00091 #endif // !defined(SAGA_PACKAGES_JOB_ADAPTORS_OSTREAM_HPP)
00092