Orocos Real-Time Toolkit
2.6.0
|
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