#define __CPPLUGINS__INTERFACE__PARAMETERS__H__
#include <map>
+#include <ostream>
#include <string>
#include <vector>
+#include <cpPlugins/cpPlugins_Export.h>
namespace cpPlugins
{
{
/**
*/
- class Parameters
+ class cpPlugins_EXPORT Parameters
{
+ // -------------------------------------------------------------------
+ friend std::ostream& operator<<(
+ std::ostream& os, const Parameters& p
+ )
+ {
+ Parameters::TParameters::const_iterator pIt =
+ p.m_Parameters.begin( );
+ for( ; pIt != p.m_Parameters.end( ); ++pIt )
+ {
+ os
+ << pIt->first << ": ("
+ << pIt->second.first << ", "
+ << pIt->second.second << ")"
+ << std::endl;
+
+ } // rof
+ return( os );
+ }
+
public:
typedef Parameters Self;
enum Type
{
- String = 0,
- Int,
- Uint,
- Real,
- Index,
- Point,
- StringList,
- IntList,
- UintList,
- RealList,
- IndexList,
- PointList
+ String , Bool , Int ,
+ Uint , Real , Index ,
+ Point , StringList , BoolList ,
+ IntList , UintList , RealList ,
+ IndexList , PointList , NoType
};
- typedef std::pair< Self::Type, std::string > TParameter;
- typedef std::map< std::string, TParameter > TParameters;
+ typedef bool TBool;
typedef long TInt;
typedef unsigned long TUint;
typedef double TReal;
+ typedef std::string TString;
+
+ typedef std::pair< Self::Type, TString > TParameter;
+ typedef std::map< TString, TParameter > TParameters;
public:
Parameters( );
Self& operator=( const Self& other );
- void Configure( const Self::Type& type, const std::string& name );
- void SetValueAsString( const std::string& name, const std::string& v );
- void SetValueAsInt( const std::string& name, const TInt& v );
- void SetValueAsUint( const std::string& name, const TUint& v );
- void SetValueAsReal( const std::string& name, const TReal& v );
- void SetValueAsIndex( const std::string& name, const TUint& n, ... );
- void SetValueAsPoint( const std::string& name, const TUint& n, ... );
-
- template< class I >
- void SetValueAsStringList(
- const std::string& name, const I& b, const I& e
- );
-
- template< class I >
- void SetValueAsIntList(
- const std::string& name, const I& b, const I& e
- );
-
- template< class I >
- void SetValueAsUintList(
- const std::string& name, const I& b, const I& e
- );
+ void Clear( );
+ void Configure( const Self::Type& type, const TString& name );
+ void SetValueAsString( const TString& name, const TString& v );
+ void SetValueAsBool( const TString& name, const TBool& v );
+ void SetValueAsInt( const TString& name, const TInt& v );
+ void SetValueAsUint( const TString& name, const TUint& v );
+ void SetValueAsReal( const TString& name, const TReal& v );
+ void SetValueAsIndex( const TString& name, const TUint& n, ... );
+ void SetValueAsPoint( const TString& name, const TUint& n, ... );
+
+ void AddValueToStringList( const TString& name, const TString& v );
+ void AddValueToBoolList( const TString& name, const TBool& v );
+ void AddValueToIntList( const TString& name, const TInt& v );
+ void AddValueToUintList( const TString& name, const TUint& v );
+ void AddValueToRealList( const TString& name, const TReal& v );
+ void AddValueToIndexList( const TString& name, const TUint& n, ... );
+ void AddValueToPointList( const TString& name, const TUint& n, ... );
+
+ void ClearStringList( const TString& name );
+ void ClearBoolList( const TString& name );
+ void ClearIntList( const TString& name );
+ void ClearUintList( const TString& name );
+ void ClearRealList( const TString& name );
+ void ClearIndexList( const TString& name );
+ void ClearPointList( const TString& name );
+
+ std::vector< TString > GetParameters( ) const;
+ Self::Type GetParameterType( const TString& name ) const;
+ const TString& GetRawValue( const TString& name ) const;
+ const TString& GetValueAsString( const TString& name ) const;
+ TBool GetValueAsBool( const TString& name ) const;
+ TInt GetValueAsInt( const TString& name ) const;
+ TUint GetValueAsUint( const TString& name ) const;
+ TReal GetValueAsReal( const TString& name ) const;
template< class I >
- void SetValueAsRealList(
- const std::string& name, const I& b, const I& e
- );
-
- template< class I >
- void SetValueAsIndexList(
- const std::string& name, const I& b, const I& e
- );
-
- template< class I >
- void SetValueAsPointList(
- const std::string& name, const I& b, const I& e
- );
-
- const std::string& GetValueAsString( const std::string& name ) const;
- TInt GetValueAsInt( const std::string& name ) const;
- TUint GetValueAsUint( const std::string& name ) const;
- TReal GetValueAsReal( const std::string& name ) const;
-
- template< class I >
- I GetValueAsIndex( const std::string& name ) const;
+ I GetValueAsIndex( const TString& name ) const;
template< class P >
- P GetValueAsPoint( const std::string& name ) const;
+ P GetValueAsPoint( const TString& name ) const;
void GetValueAsStringList(
- std::vector< std::string >& lst, const std::string& name
+ std::vector< TString >& lst, const TString& name
+ ) const;
+ void GetValueAsBoolList(
+ std::vector< TBool >& lst, const TString& name
) const;
void GetValueAsIntList(
- std::vector< TInt >& lst, const std::string& name
+ std::vector< TInt >& lst, const TString& name
) const;
void GetValueAsUintList(
- std::vector< TUint >& lst, const std::string& name
+ std::vector< TUint >& lst, const TString& name
) const;
void GetValueAsRealList(
- std::vector< TReal >& lst, const std::string& name
+ std::vector< TReal >& lst, const TString& name
) const;
template< class I >
void GetValueAsIndexList(
- std::vector< I >& lst, const std::string& name
+ std::vector< I >& lst, const TString& name
) const;
template< class P >
void GetValueAsPointList(
- std::vector< P >& lst, const std::string& name
+ std::vector< P >& lst, const TString& name
) const;
+ bool HasStringValue( const TString& name ) const;
+ bool HasBoolValue( const TString& name ) const;
+ bool HasIntValue( const TString& name ) const;
+ bool HasUintValue( const TString& name ) const;
+ bool HasRealValue( const TString& name ) const;
+ bool HasIndexValue( const TString& name ) const;
+ bool HasPointValue( const TString& name ) const;
+ bool HasStringListValue( const TString& name ) const;
+ bool HasBoolListValue( const TString& name ) const;
+ bool HasIntListValue( const TString& name ) const;
+ bool HasUintListValue( const TString& name ) const;
+ bool HasRealListValue( const TString& name ) const;
+ bool HasIndexListValue( const TString& name ) const;
+ bool HasPointListValue( const TString& name ) const;
protected:
TParameters m_Parameters;