00001 #ifndef FIELDREGISTRY_H_
00002 #define FIELDREGISTRY_H_
00003
00004 #include "Field.h"
00005
00006 #include <map>
00007 using std::map;
00008 #include <vector>
00009 using std::vector;
00010
00012
00013 class FieldRegistry
00014 {
00015
00016 public:
00017 FieldRegistry(void);
00018 ~FieldRegistry(void);
00019
00021 void registerField( Field const& f );
00022
00024 Field const& getField(size_t id) const;
00025
00027 Field const* findField( string const& name ) const;
00028
00030 size_t nFields(void)
00031 {
00032 return fields.size();
00033 }
00034
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 private:
00053 vector< Field * > fields;
00054 map< string, size_t > name_to_id_map;
00055 };
00056
00057 #endif