SimObjectAttributesDefinition.h

Go to the documentation of this file.
00001 
00009 #ifndef SIMOBJECTATTRIBUTESDEFINITION_H
00010 #define SIMOBJECTATTRIBUTESDEFINITION_H
00011 
00012 #include <string>
00013 using std::string;
00014 
00015 #include <vector>
00016 using std::vector;
00017 
00018 #include "pcsim_hash.h"
00019 
00021 
00026 class SimObjectAttributesDefinition {
00027 
00028     public:
00029 
00030         SimObjectAttributesDefinition();
00031 
00032         ~SimObjectAttributesDefinition();
00033 
00035 
00039         template< typename T >
00040         void add( string name);
00041 
00043         void addDouble(string const& name);
00044 
00046         void addInt(string const& name);
00047 
00049         void addString(string const& name, string const& value);
00050 
00052         size_t offset(string const& name) const;
00053 
00055         size_t mem_size() const
00056         {
00057             return m_memsize;
00058         };
00059 
00061         void lock();
00062 
00064         vector< string > names() const;
00065 
00067         size_t size() const
00068         {
00069           return m_offset_hash.size();
00070         };
00071 
00072     private:
00073         typedef hash_map< string , size_t, PCSIM::hash< string > > offsethash_t;
00074         mutable offsethash_t m_offset_hash;             // HACK
00075         size_t m_memsize;
00076         bool m_locked;
00077 };
00078 
00079 #endif

Generated on Wed Jul 9 16:34:37 2008 for PCSIM by  doxygen 1.5.5