X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FParameters.h;h=def98e7ddb46dba8efc81ab3c6302596051d3d2f;hb=2361f4f97631e09d88d8a5510a369817dcaa19db;hp=7a7578a951258e269984f8ae6d24017085145e98;hpb=d33ff8f25fd903eca28c2f088adc8f68e7738135;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/Parameters.h b/lib/cpPlugins/Interface/Parameters.h index 7a7578a..def98e7 100644 --- a/lib/cpPlugins/Interface/Parameters.h +++ b/lib/cpPlugins/Interface/Parameters.h @@ -2,8 +2,10 @@ #define __CPPLUGINS__INTERFACE__PARAMETERS__H__ #include +#include #include #include +#include namespace cpPlugins { @@ -11,28 +13,40 @@ 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, - NoType + String , Bool , Int , + Uint , Real , Index , + Point , StringList , BoolList , + IntList , UintList , RealList , + IndexList , PointList , NoType }; + typedef bool TBool; typedef long TInt; typedef unsigned long TUint; typedef double TReal; @@ -48,47 +62,37 @@ namespace cpPlugins Self& operator=( const Self& other ); + 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, ... ); - template< class I > - void SetValueAsStringList( - const TString& name, const I& b, const I& e - ); - - template< class I > - void SetValueAsIntList( - const TString& name, const I& b, const I& e - ); - - template< class I > - void SetValueAsUintList( - const TString& name, const I& b, const I& e - ); - - template< class I > - void SetValueAsRealList( - const TString& name, const I& b, const I& e - ); - - template< class I > - void SetValueAsIndexList( - const TString& name, const I& b, const I& e - ); - - template< class I > - void SetValueAsPointList( - const TString& name, const I& b, const I& e - ); - + 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; @@ -102,6 +106,9 @@ namespace cpPlugins void GetValueAsStringList( 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 TString& name ) const; @@ -122,6 +129,20 @@ namespace cpPlugins 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;