OMKMultipleConfigurationParameter.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of openMask © INRIA, CNRS, Universite de Rennes 1 1993-2002, thereinafter the Software
00003  * 
00004  * The Software has been developped within the Siames Project. 
00005  * INRIA, the University of Rennes 1 and CNRS jointly hold intellectual property rights
00006  * 
00007  * The Software has been registered with the Agence pour la Protection des
00008  * Programmes (APP) under registration number IDDN.FR.001.510008.00.S.P.2001.000.41200
00009  *
00010  * This file may be distributed under the terms of the Q Public License
00011  * version 1.0 as defined by Trolltech AS of Norway and appearing in the file
00012  * LICENSE.QPL included in the packaging of this file.
00013  *
00014  * Licensees holding valid specific licenses issued by INRIA, CNRS or Université de Rennes 1 
00015  * for the software may use this file in accordance with that specific license 
00016  *
00017  */
00018 #ifndef OMKMULTIPLECONFIGURATIONPARAMETERHEADER
00019 #define OMKMULTIPLECONFIGURATIONPARAMETERHEADER
00020 
00021 #include <vector>
00022 #include <map>
00023 #include "OMKConfigurationParameterDescriptor.h"
00024 
00025 namespace OMK
00026 {
00033 class OMK_API MultipleConfigurationParameter : public ConfigurationParameterDescriptor 
00034 {
00035 public:
00037    MultipleConfigurationParameter () ;
00038 
00040    MultipleConfigurationParameter (const MultipleConfigurationParameter &) ;
00041 
00043    virtual ~MultipleConfigurationParameter() ;
00044 
00046    virtual const std::string & getAssociatedString () const ; 
00047 
00049    virtual const ConfigurationParameterDescriptor * getSubDescriptorByName (const std::string & descriptorName ) const ;
00050 
00052    virtual const ConfigurationParameterDescriptor * getSubDescriptorByPosition (int descriptorPosition) const ;
00053 
00055    virtual ConfigurationParameterDescriptor * getSubDescriptorByName (const std::string & descriptorName );
00056 
00058    virtual ConfigurationParameterDescriptor * getSubDescriptorByPosition (int descriptorPosition) ;
00059 
00061    virtual const std::string & getNameOfSubDescriptor (int descriptorPosition) const ;
00062 
00064    virtual int getNumberOfSubItems () const ;
00065 
00067    virtual int appendSubDescriptor( ConfigurationParameterDescriptor * subDescriptor ) ;
00068 
00069 
00073    virtual int appendSubDescriptorNamed (const std::string & descriptorName, ConfigurationParameterDescriptor * subDescriptor );
00074 
00076    virtual int replaceSubDescriptorNamed (const std::string & descriptorName, ConfigurationParameterDescriptor * subDescriptor);
00077 
00079    virtual int replaceSubDescriptor (int position, ConfigurationParameterDescriptor * subDescriptor);
00080   
00084    virtual int appendSubDescriptorsOf (const MultipleConfigurationParameter & otherDescriptor) ;
00085 
00088    virtual ConfigurationParameterDescriptor * clone () const ;
00089 
00092    virtual void extract (std::istream & = std::cin)  ;
00093 
00096    virtual void insertInStream (std::ostream & = std::cout) const;
00097 
00100    virtual void printToStream (std::ostream & out, int offset ) const ;
00101 
00103    virtual void unpack (IncomingSynchronisationMessage &) ;
00104    
00106    virtual void pack (OutgoingSynchronisationMessage &) const ;
00107 
00108 public:
00110    typedef std::pair <std::string, ConfigurationParameterDescriptor *> DataContainedType ;
00111 
00113    typedef std::vector < DataContainedType > DataContainerType ;
00114 
00116   typedef std::map<std::string, ConfigurationParameterDescriptor * > FastAccessContainer ;
00117 
00120    FastAccessContainer _hashtable ;
00121 
00122 protected:
00124    DataContainerType _subDescriptors ;
00125 
00127    mutable std::string _associatedString ;
00128 
00130    mutable bool _associatedStringValid ;
00131 };
00132 } // namespace OMK
00133 
00134 #endif
00135 
00136 
00137 

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007