Go to the documentation of this file.00001 #ifndef ORO_STREAM_FACTORY_HPP
00002 #define ORO_STREAM_FACTORY_HPP
00003
00004 #include <ostream>
00005 #include <istream>
00006 #include "../base/DataSourceBase.hpp"
00007 #include <boost/shared_ptr.hpp>
00008 #include <string>
00009 #include "../rtt-config.h"
00010
00011 namespace RTT
00012 {
00013 namespace types
00014 {
00015
00016 class RTT_API StreamFactory
00017 {
00018 public:
00028 virtual std::ostream& write(std::ostream& os, base::DataSourceBase::shared_ptr in ) const = 0;
00029
00034 virtual std::istream& read(std::istream& os, base::DataSourceBase::shared_ptr out ) const = 0;
00035
00039 virtual std::string toString( base::DataSourceBase::shared_ptr in ) const;
00040
00044 virtual bool fromString( const std::string& value, base::DataSourceBase::shared_ptr out ) const;
00045
00050 virtual bool isStreamable() const = 0;
00052 };
00053 typedef boost::shared_ptr<StreamFactory> StreamFactoryPtr;
00054 }
00055 }
00056 #endif