#include <iostream>
#include <sstream>
-// -------------------------------------------------------------------------
-#define cpPlugins_Interface_Parameters_SetListMacro( TYPE ) \
- template< class I > \
- void cpPlugins::Interface::Parameters:: \
- SetValueAs##TYPE##List( const TString& name, const I& b, const I& e ) \
- { \
- 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; \
- for( I i = b; i != e; ++i ) \
- ss << *i << ":"; \
- 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 );
-cpPlugins_Interface_Parameters_SetListMacro( Index );
-cpPlugins_Interface_Parameters_SetListMacro( Point );
-
// -------------------------------------------------------------------------
#define cpPlugins_Interface_Parameters_SetIndexOrPointMacro( NAME, TYPE ) \
template< class T > \
GetValueAs##NAME( const TString& name ) const \
{ \
T val; \
- TParameters::iterator pIt = this->m_Parameters.find( name ); \
+ TParameters::const_iterator pIt = this->m_Parameters.find( name ); \
if( pIt != this->m_Parameters.end( ) ) \
{ \
if( pIt->second.first == Self::NAME ) \
unsigned int i = 0; \
while( std::getline( ss, token, ',' ) ) \
{ \
- if( token != "" ) \
+ if( token != "" ) \
val[ i++ ] = TYPE( std::atof( token.c_str( ) ) ); \
- \
} \
} \
} \
GetValueAsIndexList( std::vector< I >& lst, const TString& name ) const
{
lst.clear( );
- TParameters::iterator pIt = this->m_Parameters.find( name );
+ TParameters::const_iterator pIt = this->m_Parameters.find( name );
if( pIt == this->m_Parameters.end( ) )
return;
if( pIt->second.first != Self::IndexList )
return;
- // TODO:
- std::cerr << "TODO GetValueAsIndexList" << std::endl;
+ std::istringstream ss( pIt->second.second );
+ std::string token;
+ while( std::getline( ss, token, ':' ) )
+ {
+ if( token != "" )
+ {
+ std::istringstream ts( token );
+ std::string text;
+ unsigned int i = 0;
+ I idx;
+ while( std::getline( ts, text, ',' ) )
+ if( text != "" )
+ idx[ i++ ] = std::atoi( text.c_str( ) );
+ lst.push_back( idx );
+
+ } // fi
+
+ } // elihw
}
// -------------------------------------------------------------------------
GetValueAsPointList( std::vector< P >& lst, const TString& name ) const
{
lst.clear( );
- TParameters::iterator pIt = this->m_Parameters.find( name );
+ TParameters::const_iterator pIt = this->m_Parameters.find( name );
if( pIt == this->m_Parameters.end( ) )
return;
if( pIt->second.first != Self::PointList )
return;
- // TODO:
- std::cerr << "TODO GetValueAsPointList" << std::endl;
+ std::istringstream ss( pIt->second.second );
+ std::string token;
+ while( std::getline( ss, token, ':' ) )
+ {
+ if( token != "" )
+ {
+ std::istringstream ts( token );
+ std::string text;
+ unsigned int i = 0;
+ P pnt;
+ while( std::getline( ts, text, ',' ) )
+ if( text != "" )
+ pnt[ i++ ] = std::atof( text.c_str( ) );
+ lst.push_back( pnt );
+
+ } // fi
+
+ } // elihw
}
#endif // __CPPLUGINS__INTERFACE__PARAMETERS__HXX__