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 PsMultipleConfigurationParameterHEADER 00019 #define PsMultipleConfigurationParameterHEADER 00020 00021 #include "PsConfigurationParameterDescriptor.h" 00022 #include <vector> 00023 00024 #ifdef _HASHMAPNOTSTD 00025 #include <ext/hash_map> 00026 using namespace __gnu_cxx ; 00027 #else 00028 #include <hash_map> 00029 #endif 00030 00037 class PsMultipleConfigurationParameter : public PsConfigurationParameterDescriptor 00038 { 00039 public: 00041 PsMultipleConfigurationParameter () ; 00042 00044 PsMultipleConfigurationParameter (const PsMultipleConfigurationParameter &) ; 00045 00047 virtual ~PsMultipleConfigurationParameter() ; 00048 00050 virtual const string & getAssociatedString () const ; 00051 00053 virtual const PsConfigurationParameterDescriptor * getSubDescriptorByName (const string & descriptorName ) const ; 00054 00056 virtual const PsConfigurationParameterDescriptor * getSubDescriptorByPosition (int descriptorPosition) const ; 00057 00059 virtual PsConfigurationParameterDescriptor * getSubDescriptorByName (const string & descriptorName ); 00060 00062 virtual PsConfigurationParameterDescriptor * getSubDescriptorByPosition (int descriptorPosition) ; 00063 00065 virtual const string & getNameOfSubDescriptor (int descriptorPosition) const ; 00066 00068 virtual int getNumberOfSubItems () const ; 00069 00071 virtual int appendSubDescriptor( PsConfigurationParameterDescriptor * subDescriptor ) ; 00072 00073 00077 virtual int appendSubDescriptorNamed (const string & descriptorName, PsConfigurationParameterDescriptor * subDescriptor ); 00078 00080 virtual int replaceSubDescriptorNamed (const string & descriptorName, PsConfigurationParameterDescriptor * subDescriptor); 00081 00083 virtual int replaceSubDescriptor (int position, PsConfigurationParameterDescriptor * subDescriptor); 00084 00088 virtual int appendSubDescriptorsOf (const PsMultipleConfigurationParameter & otherDescriptor) ; 00089 00092 virtual PsConfigurationParameterDescriptor * clone () const ; 00093 00096 virtual void extract (istream & = cin) ; 00097 00100 virtual void insertInStream (ostream & = cout) const; 00101 00104 virtual void printToStream (ostream & out, int offset ) const ; 00105 00107 virtual void unpack (PsIncomingSynchronisationMessage &) ; 00108 00110 virtual void pack (PsOutgoingSynchronisationMessage &) const ; 00111 00112 protected: 00114 struct openMaskString_hash { 00115 size_t operator ()(const string & s) const 00116 { 00117 static hash<const char *> H; 00118 return H(s.c_str()); 00119 } 00120 }; 00121 00123 typedef pair <string, PsConfigurationParameterDescriptor *> DataContainedType ; 00124 00126 typedef vector < DataContainedType > DataContainerType ; 00127 00129 typedef hash_map<string, PsConfigurationParameterDescriptor *, openMaskString_hash > FastAccessContainer ; 00130 00132 DataContainerType _subDescriptors ; 00133 00136 FastAccessContainer _hashtable ; 00137 00139 mutable string _associatedString ; 00140 00142 mutable bool _associatedStringValid ; 00143 }; 00144 00145 #endif 00146 00147 00148
| Documentation generated on Mon Nov 25 15:25:00 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |