ObjectIndex_XML.h
См. документацию.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00022
00023 #ifndef ObjectIndex_XML_H_
00024 #define ObjectIndex_XML_H_
00025
00026 #include <map>
00027 #include <vector>
00028 #include <string>
00029 #include "ObjectIndex.h"
00030 #include "UniXML.h"
00031
00032 namespace UniSetTypes
00033 {
00034
00040 class ObjectIndex_XML:
00041 public ObjectIndex
00042 {
00043 public:
00044 ObjectIndex_XML(const std::string xmlfile, int minSize=1000 );
00045 ObjectIndex_XML(UniXML& xml, int minSize=1000 );
00046 virtual ~ObjectIndex_XML();
00047
00048 virtual const UniSetTypes::ObjectInfo* getObjectInfo(const ObjectId);
00049 virtual const UniSetTypes::ObjectInfo* getObjectInfo( const std::string name );
00050 virtual ObjectId getIdByName(const std::string& name);
00051 virtual std::string getMapName(const ObjectId id);
00052 virtual std::string getTextName(const ObjectId id);
00053
00054 virtual std::ostream& printMap(std::ostream& os);
00055 friend std::ostream& operator<<(std::ostream& os, ObjectIndex_XML& oi );
00056
00057 protected:
00058 virtual void build(UniXML& xml);
00059 unsigned int read_section( UniXML& xml, const std::string sec, unsigned int ind );
00060 unsigned int read_nodes( UniXML& xml, const std::string sec, unsigned int ind );
00061
00062 private:
00063 typedef std::map<std::string, ObjectId> MapObjectKey;
00064 MapObjectKey mok;
00065 std::vector<ObjectInfo> omap;
00066
00067 };
00068
00069 }
00070
00071 #endif