+// -------------------------------------------------------------------------
+#define cpPlugins_Interface_Parameters_SetMacro( TYPE ) \
+ void cpPlugins::Interface::Parameters:: \
+ SetValueAs##TYPE( const TString& name, const T##TYPE& v ) \
+ { \
+ TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ if( pIt == this->m_Parameters.end( ) ) \
+ return; \
+ if( pIt->second.first != Self::TYPE ) \
+ return; \
+ std::stringstream ss; \
+ ss << v; \
+ pIt->second.second = ss.str( ); \
+ }
+
+cpPlugins_Interface_Parameters_SetMacro( String );
+cpPlugins_Interface_Parameters_SetMacro( Bool );
+cpPlugins_Interface_Parameters_SetMacro( Int );
+cpPlugins_Interface_Parameters_SetMacro( Uint );
+cpPlugins_Interface_Parameters_SetMacro( Real );
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Interface_Parameters_SetArrayMacro( TYPE, ATYPE ) \
+ void cpPlugins::Interface::Parameters:: \
+ SetValueAs##TYPE( const TString& name, const TUint& n, ... ) \
+ { \
+ TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ if( pIt == this->m_Parameters.end( ) ) \
+ return; \
+ if( pIt->second.first != Self::TYPE ) \
+ return; \
+ va_list v_lst; \
+ va_start( v_lst, n ); \
+ std::stringstream ss; \
+ for( TUint i = 0; i < n; ++i ) \
+ ss << va_arg( v_lst, ATYPE ) << ","; \
+ va_end( v_lst ); \
+ pIt->second.second = ss.str( ); \
+ }
+
+cpPlugins_Interface_Parameters_SetArrayMacro( Index, int );
+cpPlugins_Interface_Parameters_SetArrayMacro( Point, double );
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Interface_Parameters_SetListMacro( TYPE ) \
+ void cpPlugins::Interface::Parameters:: \
+ AddValueTo##TYPE##List( const TString& name, const T##TYPE& v ) \
+ { \
+ TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ if( pIt == this->m_Parameters.end( ) ) \
+ return; \
+ if( pIt->second.first != Self::TYPE##List ) \
+ return; \
+ std::stringstream ss; \
+ ss << pIt->second.second << v << "#"; \
+ pIt->second.second = ss.str( ); \
+ }
+
+cpPlugins_Interface_Parameters_SetListMacro( String );
+cpPlugins_Interface_Parameters_SetListMacro( Bool );
+cpPlugins_Interface_Parameters_SetListMacro( Int );
+cpPlugins_Interface_Parameters_SetListMacro( Uint );
+cpPlugins_Interface_Parameters_SetListMacro( Real );
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Interface_Parameters_SetArrayListMacro( TYPE, ATYPE ) \
+ void cpPlugins::Interface::Parameters:: \
+ AddValueTo##TYPE##List( const TString& name, const TUint& n, ... ) \
+ { \
+ TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ if( pIt == this->m_Parameters.end( ) ) \
+ return; \
+ if( pIt->second.first != Self::TYPE##List ) \
+ return; \
+ va_list v_lst; \
+ va_start( v_lst, n ); \
+ std::stringstream ss; \
+ ss << pIt->second.second; \
+ for( TUint i = 0; i < n; ++i ) \
+ ss << va_arg( v_lst, ATYPE ) << ","; \
+ va_end( v_lst ); \
+ ss << "#"; \
+ pIt->second.second = ss.str( ); \
+ }
+
+cpPlugins_Interface_Parameters_SetArrayListMacro( Index, int );
+cpPlugins_Interface_Parameters_SetArrayListMacro( Point, double );
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Interface_Parameters_ClearListMacro( TYPE ) \
+ void cpPlugins::Interface::Parameters:: \
+ Clear##TYPE##List( const TString& name ) \
+ { \
+ TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ if( pIt == this->m_Parameters.end( ) ) \
+ return; \
+ if( pIt->second.first != Self::TYPE##List ) \
+ return; \
+ pIt->second.second = ""; \
+ }
+
+cpPlugins_Interface_Parameters_ClearListMacro( String );
+cpPlugins_Interface_Parameters_ClearListMacro( Bool );
+cpPlugins_Interface_Parameters_ClearListMacro( Int );
+cpPlugins_Interface_Parameters_ClearListMacro( Uint );
+cpPlugins_Interface_Parameters_ClearListMacro( Real );
+cpPlugins_Interface_Parameters_ClearListMacro( Index );
+cpPlugins_Interface_Parameters_ClearListMacro( Point );
+