TuttleOFX  1
OfxhParamString.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_HOST_OFX_PARAM_PARAMSTRING_HPP_
00002 #define _TUTTLE_HOST_OFX_PARAM_PARAMSTRING_HPP_
00003 
00004 #include "OfxhParam.hpp"
00005 #include "OfxhParamDescriptor.hpp"
00006 #include "OfxhParamSet.hpp"
00007 #include "OfxhKeyframeParam.hpp"
00008 
00009 namespace tuttle {
00010 namespace host {
00011 namespace ofx {
00012 namespace attribute {
00013 
00014 class OfxhParamString
00015         : public OfxhParam
00016         , public OfxhKeyframeParam
00017 {
00018 mutable std::string _returnValue;     ///< location to hold temporary return value. Should delegate this to implementation!!!
00019 
00020 public:
00021         typedef std::string BaseType;
00022         OfxhParamString( const OfxhParamDescriptor& descriptor, const std::string& name, OfxhParamSet& setInstance ) : OfxhParam( descriptor, name, setInstance ) {}
00023 
00024         const std::string& getStringMode() const;
00025 
00026         virtual void getValue( std::string& ) const OFX_EXCEPTION_SPEC                                                  = 0;
00027         virtual void getValueAtTime( const OfxTime time, std::string& ) const OFX_EXCEPTION_SPEC                        = 0;
00028         virtual void setValue( const std::string&, const EChange change )                OFX_EXCEPTION_SPEC             = 0;
00029         virtual void setValueAtTime( const OfxTime time, const std::string&, const EChange change )  OFX_EXCEPTION_SPEC = 0;
00030 
00031         /// implementation of var args function
00032         virtual void getV( va_list arg ) const OFX_EXCEPTION_SPEC;
00033 
00034         /// implementation of var args function
00035         virtual void getV( const OfxTime time, va_list arg ) const OFX_EXCEPTION_SPEC;
00036 
00037         /// implementation of var args function
00038         virtual void setV( va_list arg, const EChange change ) OFX_EXCEPTION_SPEC;
00039 
00040         /// implementation of var args function
00041         virtual void setV( const OfxTime time, va_list arg, const EChange change ) OFX_EXCEPTION_SPEC;
00042 
00043         bool paramTypeHasData() const { return true; }
00044 
00045         std::size_t getHashAtTime( const OfxTime time ) const;
00046 
00047         std::ostream& displayValues( std::ostream& os ) const
00048         {
00049                 os << getStringValue();
00050                 return os;
00051         }
00052 };
00053 
00054 }
00055 }
00056 }
00057 }
00058 
00059 #endif
00060