X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FParameters.h;h=dbcf98c68a16c4c62073e95f19026f745dff582f;hb=6df7b3a0946edcecfe55509d0b77d757d76a35ab;hp=a806ee7bdfdd82d42188b35f729703f558f12b72;hpb=320afa917228a86723477e0b60a7cd6ce87e5fe9;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/Parameters.h b/lib/cpPlugins/Interface/Parameters.h index a806ee7..dbcf98c 100644 --- a/lib/cpPlugins/Interface/Parameters.h +++ b/lib/cpPlugins/Interface/Parameters.h @@ -4,6 +4,7 @@ #include #include #include +#include namespace cpPlugins { @@ -11,7 +12,7 @@ namespace cpPlugins { /** */ - class Parameters + class cpPlugins_Interface_EXPORT Parameters { public: typedef Parameters Self; @@ -19,24 +20,30 @@ namespace cpPlugins enum Type { String = 0, + Bool, Int, Uint, Real, Index, Point, StringList, + BoolList, IntList, UintList, RealList, IndexList, - PointList + 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( ); @@ -45,78 +52,87 @@ namespace cpPlugins 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;