00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _CONV_H
00030 #define _CONV_H
00031
00032 #include "typedefs.h"
00033 #include "data.h"
00034 #include "gexfparser.h"
00035 #include <string>
00036 #include <set>
00037 #include <libxml/xmlstring.h>
00038
00039 namespace libgexf {
00040
00041 class Data;
00042 class GexfParser;
00043 class LegacyParser;
00044
00048 class Conv {
00049 public:
00050 Conv();
00051 Conv(const Conv& orig);
00052 virtual ~Conv();
00053
00054 static libgexf::t_id xmlCharToId(const xmlChar* str);
00055 static libgexf::t_id strToId(const std::string& str);
00056 static std::string xmlCharToStr(const xmlChar* str);
00057 static unsigned int xmlCharToUnsignedInt(const xmlChar* str);
00058 static float xmlCharToFloat(const xmlChar* str);
00059 static std::string idToStr(const libgexf::t_id id);
00060 static std::string unsignedIntToStr(const unsigned int i);
00061 static std::string floatToStr(const float f);
00062 static unsigned int strToUnsignedInt(const std::string& str);
00063 static std::string edgeTypeToStr(const libgexf::t_edge_type t);
00064 static std::string attrTypeToStr(const libgexf::t_attr_type t);
00065 static bool isBoolean(const std::string& str);
00066 static bool isDouble(const std::string& str);
00067 static bool isInteger(const std::string& str);
00068 static bool isFloat(const std::string& str);
00069 static bool isLong(const std::string& str);
00070 static bool isAnyURI(const std::string& str);
00071 static std::set<std::string> tokenizer(const std::string& delimiter, const std::string& str);
00072 private:
00073 virtual void iAmAbstract() = 0;
00074
00075
00076 static libgexf::t_attr_type strToAttrType(const std::string& str);
00077 friend class Data;
00078 friend class GexfParser;
00079 friend class LegacyParser;
00080 };
00081
00082 }
00083
00084 #endif
00085