Use U8String/U16String/WString instead of UTF8String/UTF16String/WideString
This commit is contained in:
parent
6cd0063812
commit
21e2b6a9b5
@ -153,7 +153,7 @@ namespace hgl
|
|||||||
* @param litter 小写字母
|
* @param litter 小写字母
|
||||||
* @return 是否计算成功
|
* @return 是否计算成功
|
||||||
*/
|
*/
|
||||||
//bool GetFileHash(const OSString &filename,HASH ha,UTF8String &hash_str,bool litter=true);
|
//bool GetFileHash(const OSString &filename,HASH ha,U8String &hash_str,bool litter=true);
|
||||||
}//namespace util
|
}//namespace util
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_UTIL_HASH_INCLUDE
|
#endif//HGL_UTIL_HASH_INCLUDE
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
const UTF8String GetJsoncppVersion();
|
const U8String GetJsoncppVersion();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换Json数据类型到普通UTF8字符串
|
* 转换Json数据类型到普通UTF8字符串
|
||||||
*/
|
*/
|
||||||
bool JsonToString(const Json::Value &jv_root,UTF8String &str,OSString &error_info);
|
bool JsonToString(const Json::Value &jv_root,U8String &str,OSString &error_info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解释一个json数据流
|
* 解释一个json数据流
|
||||||
|
@ -13,21 +13,21 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
friend class ElementParseCreater;
|
friend class ElementParseCreater;
|
||||||
|
|
||||||
UTF8String element_name;
|
U8String element_name;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
Map<UTF8String,ElementCreater *> ecs_map;
|
Map<U8String,ElementCreater *> ecs_map;
|
||||||
|
|
||||||
virtual ElementCreater *GetSubElementCreater(const UTF8String &sub_name);
|
virtual ElementCreater *GetSubElementCreater(const U8String &sub_name);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const UTF8String &GetElementName()const{return element_name;}
|
const U8String &GetElementName()const{return element_name;}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ElementCreater(const UTF8String &en){element_name=en;}
|
ElementCreater(const U8String &en){element_name=en;}
|
||||||
virtual ~ElementCreater()=default;
|
virtual ~ElementCreater()=default;
|
||||||
|
|
||||||
bool Registry(ElementCreater *ec);
|
bool Registry(ElementCreater *ec);
|
||||||
@ -45,19 +45,19 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
UTF8String null_string;
|
U8String null_string;
|
||||||
|
|
||||||
Map<UTF8String,UTF8String> attrs_list;
|
Map<U8String,U8String> attrs_list;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ElementAttribute(const UTF8String &en):ElementCreater(en){}
|
ElementAttribute(const U8String &en):ElementCreater(en){}
|
||||||
virtual ~ElementAttribute()=default;
|
virtual ~ElementAttribute()=default;
|
||||||
|
|
||||||
const UTF8String operator[](const UTF8String &flag)
|
const U8String operator[](const U8String &flag)
|
||||||
{
|
{
|
||||||
UTF8String key=flag.ToLowerCase();
|
U8String key=flag.ToLowerCase();
|
||||||
UTF8String info;
|
U8String info;
|
||||||
|
|
||||||
if(attrs_list.Get(key,info))
|
if(attrs_list.Get(key,info))
|
||||||
return info;
|
return info;
|
||||||
@ -66,11 +66,11 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define TO_CONV(TYPE,FN,SFN,DEFAULT_VALUE) \
|
#define TO_CONV(TYPE,FN,SFN,DEFAULT_VALUE) \
|
||||||
const TYPE FN (const UTF8String &flag,const TYPE default_value=DEFAULT_VALUE) \
|
const TYPE FN (const U8String &flag,const TYPE default_value=DEFAULT_VALUE) \
|
||||||
{ \
|
{ \
|
||||||
const UTF8String key=flag.ToLowerCase(); \
|
const U8String key=flag.ToLowerCase(); \
|
||||||
\
|
\
|
||||||
UTF8String info; \
|
U8String info; \
|
||||||
\
|
\
|
||||||
if(!attrs_list.Get(key,info)) \
|
if(!attrs_list.Get(key,info)) \
|
||||||
return default_value; \
|
return default_value; \
|
||||||
@ -88,11 +88,11 @@ namespace hgl
|
|||||||
|
|
||||||
#undef TO_CONV
|
#undef TO_CONV
|
||||||
|
|
||||||
const UTF8String ToString (const UTF8String &flag){return operator[](flag);}
|
const U8String ToString (const U8String &flag){return operator[](flag);}
|
||||||
const int ToSerial (const u8char **list,const UTF8String &flag,const int default_value)
|
const int ToSerial (const u8char **list,const U8String &flag,const int default_value)
|
||||||
{
|
{
|
||||||
UTF8String key=flag.ToLowerCase();
|
U8String key=flag.ToLowerCase();
|
||||||
UTF8String info;
|
U8String info;
|
||||||
|
|
||||||
if(!attrs_list.Get(key,info))
|
if(!attrs_list.Get(key,info))
|
||||||
return default_value;
|
return default_value;
|
||||||
@ -118,7 +118,7 @@ namespace hgl
|
|||||||
|
|
||||||
virtual void Attr (const u8char *flag,const u8char *info) override///<节点属性
|
virtual void Attr (const u8char *flag,const u8char *info) override///<节点属性
|
||||||
{
|
{
|
||||||
UTF8String key=flag;
|
U8String key=flag;
|
||||||
|
|
||||||
key.LowerCase();
|
key.LowerCase();
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
Stack<ElementCreater *> ecs_stack;
|
Stack<ElementCreater *> ecs_stack;
|
||||||
|
|
||||||
Map<UTF8String,ElementCreater *> ecs_map;
|
Map<U8String,ElementCreater *> ecs_map;
|
||||||
|
|
||||||
ElementCreater *cur_ec;
|
ElementCreater *cur_ec;
|
||||||
|
|
||||||
|
@ -15,18 +15,18 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
using AttrsMap=Map<UTF8String,UTF8String>;
|
using AttrsMap=Map<U8String,U8String>;
|
||||||
using AttrItem=KeyValue<UTF8String,UTF8String>;
|
using AttrItem=KeyValue<U8String,U8String>;
|
||||||
|
|
||||||
AttrsMap attrs_map;
|
AttrsMap attrs_map;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const AttrItem *GetAttrItem(const UTF8String &name);
|
const AttrItem *GetAttrItem(const U8String &name);
|
||||||
|
|
||||||
template<typename T> const bool GetInteger (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stoi(ai->value.c_str(),value):false);}
|
template<typename T> const bool GetInteger (const U8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stoi(ai->value.c_str(),value):false);}
|
||||||
template<typename T> const bool GetUInteger (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stou(ai->value.c_str(),value):false);}
|
template<typename T> const bool GetUInteger (const U8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stou(ai->value.c_str(),value):false);}
|
||||||
template<typename T> const bool GetFloat (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stof(ai->value.c_str(),value):false);}
|
template<typename T> const bool GetFloat (const U8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stof(ai->value.c_str(),value):false);}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -36,28 +36,28 @@ namespace hgl
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const bool Contains (const UTF8String &name)const{return attrs_map.ContainsKey(name);}
|
const bool Contains (const U8String &name)const{return attrs_map.ContainsKey(name);}
|
||||||
|
|
||||||
const u8char * ToCString (const UTF8String &name){const AttrItem *ai=GetAttrItem(name);return(ai?ai->value.c_str():nullptr);}
|
const u8char * ToCString (const U8String &name){const AttrItem *ai=GetAttrItem(name);return(ai?ai->value.c_str():nullptr);}
|
||||||
const u8char * operator[] (const UTF8String &name){return ToCString(name);}
|
const u8char * operator[] (const U8String &name){return ToCString(name);}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const bool Get(const UTF8String &name,UTF8String &str);
|
const bool Get(const U8String &name,U8String &str);
|
||||||
const bool Get(const UTF8String &name,UTF16String &str);
|
const bool Get(const U8String &name,U16String &str);
|
||||||
const bool Get(const UTF8String &name,u8char &ch);
|
const bool Get(const U8String &name,u8char &ch);
|
||||||
const bool Get(const UTF8String &name,bool &value);
|
const bool Get(const U8String &name,bool &value);
|
||||||
|
|
||||||
const bool Get(const UTF8String &name, int8 &value){return GetInteger < int8 >(name,value);}
|
const bool Get(const U8String &name, int8 &value){return GetInteger < int8 >(name,value);}
|
||||||
const bool Get(const UTF8String &name,uint8 &value){return GetUInteger<uint8 >(name,value);}
|
const bool Get(const U8String &name,uint8 &value){return GetUInteger<uint8 >(name,value);}
|
||||||
const bool Get(const UTF8String &name, int16 &value){return GetInteger < int16>(name,value);}
|
const bool Get(const U8String &name, int16 &value){return GetInteger < int16>(name,value);}
|
||||||
const bool Get(const UTF8String &name,uint16 &value){return GetUInteger<uint16>(name,value);}
|
const bool Get(const U8String &name,uint16 &value){return GetUInteger<uint16>(name,value);}
|
||||||
const bool Get(const UTF8String &name, int32 &value){return GetInteger < int32>(name,value);}
|
const bool Get(const U8String &name, int32 &value){return GetInteger < int32>(name,value);}
|
||||||
const bool Get(const UTF8String &name,uint32 &value){return GetUInteger<uint32>(name,value);}
|
const bool Get(const U8String &name,uint32 &value){return GetUInteger<uint32>(name,value);}
|
||||||
const bool Get(const UTF8String &name, int64 &value){return GetInteger < int64>(name,value);}
|
const bool Get(const U8String &name, int64 &value){return GetInteger < int64>(name,value);}
|
||||||
const bool Get(const UTF8String &name,uint64 &value){return GetUInteger<uint64>(name,value);}
|
const bool Get(const U8String &name,uint64 &value){return GetUInteger<uint64>(name,value);}
|
||||||
|
|
||||||
const bool GetHexStr(const UTF8String &name,uint8 *data);
|
const bool GetHexStr(const U8String &name,uint8 *data);
|
||||||
};//class ElementParseKV:public ElementParse
|
};//class ElementParseKV:public ElementParse
|
||||||
}//namespace xml
|
}//namespace xml
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -25,7 +25,7 @@ namespace hgl
|
|||||||
|
|
||||||
namespace xml
|
namespace xml
|
||||||
{
|
{
|
||||||
const UTF8String GetExpatVersion();
|
const U8String GetExpatVersion();
|
||||||
const char *GetExpatError(int);
|
const char *GetExpatError(int);
|
||||||
|
|
||||||
constexpr int XML_PARSE_BUFFER_SIZE=HGL_SIZE_1KB*128; ///<XML解析缓冲区大小
|
constexpr int XML_PARSE_BUFFER_SIZE=HGL_SIZE_1KB*128; ///<XML解析缓冲区大小
|
||||||
@ -67,7 +67,7 @@ namespace hgl
|
|||||||
const char *flag=*name;++name; \
|
const char *flag=*name;++name; \
|
||||||
const char *info=*name;++name;
|
const char *info=*name;++name;
|
||||||
|
|
||||||
#define XML_END_PARSE() LOG_ERROR(UTF8String(__FILE__)+U8_TEXT(":")+UTF8String(__LINE__)+U8_TEXT(" can't parse atts \"")+UTF8String(flag)+U8_TEXT("\" , info \"")+UTF8String(info)+U8_TEXT("\".")); \
|
#define XML_END_PARSE() LOG_ERROR(U8String(__FILE__)+U8_TEXT(":")+U8String(__LINE__)+U8_TEXT(" can't parse atts \"")+U8String(flag)+U8_TEXT("\" , info \"")+U8String(info)+U8_TEXT("\".")); \
|
||||||
}
|
}
|
||||||
#define XML_END_PARSE_SKIP() ;}
|
#define XML_END_PARSE_SKIP() ;}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
if(!ec)return(false);
|
if(!ec)return(false);
|
||||||
|
|
||||||
const UTF8String &name=ec->GetElementName().ToLowerCase();
|
const U8String &name=ec->GetElementName().ToLowerCase();
|
||||||
|
|
||||||
if(name.IsEmpty())return(false);
|
if(name.IsEmpty())return(false);
|
||||||
if(ecs_map.ContainsKey(name))return(false);
|
if(ecs_map.ContainsKey(name))return(false);
|
||||||
@ -17,13 +17,13 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ElementCreater *ElementCreater::GetSubElementCreater(const UTF8String &sub_name)
|
ElementCreater *ElementCreater::GetSubElementCreater(const U8String &sub_name)
|
||||||
{
|
{
|
||||||
if(sub_name.IsEmpty())return(nullptr);
|
if(sub_name.IsEmpty())return(nullptr);
|
||||||
|
|
||||||
ElementCreater *ec;
|
ElementCreater *ec;
|
||||||
|
|
||||||
const UTF8String &sn=sub_name.ToLowerCase();
|
const U8String &sn=sub_name.ToLowerCase();
|
||||||
|
|
||||||
if(!ecs_map.Get(sn,ec))
|
if(!ecs_map.Get(sn,ec))
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
@ -5,7 +5,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
namespace xml
|
namespace xml
|
||||||
{
|
{
|
||||||
const ElementParseKV::AttrItem *ElementParseKV::GetAttrItem(const UTF8String &name)
|
const ElementParseKV::AttrItem *ElementParseKV::GetAttrItem(const U8String &name)
|
||||||
{
|
{
|
||||||
const int pos=attrs_map.FindPos(name);
|
const int pos=attrs_map.FindPos(name);
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ namespace hgl
|
|||||||
attrs_map.Add(flag,info);
|
attrs_map.Add(flag,info);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool ElementParseKV::Get(const UTF8String &name,UTF8String &str)
|
const bool ElementParseKV::Get(const U8String &name,U8String &str)
|
||||||
{
|
{
|
||||||
const AttrItem *ai=GetAttrItem(name);
|
const AttrItem *ai=GetAttrItem(name);
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool ElementParseKV::Get(const UTF8String &name,UTF16String &str)
|
const bool ElementParseKV::Get(const U8String &name,U16String &str)
|
||||||
{
|
{
|
||||||
const AttrItem *ai=GetAttrItem(name);
|
const AttrItem *ai=GetAttrItem(name);
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool ElementParseKV::Get(const UTF8String &name,u8char &ch)
|
const bool ElementParseKV::Get(const U8String &name,u8char &ch)
|
||||||
{
|
{
|
||||||
const AttrItem *ai=GetAttrItem(name);
|
const AttrItem *ai=GetAttrItem(name);
|
||||||
|
|
||||||
@ -49,14 +49,14 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool ElementParseKV::Get(const UTF8String &name,bool &value)
|
const bool ElementParseKV::Get(const U8String &name,bool &value)
|
||||||
{
|
{
|
||||||
const AttrItem *ai=GetAttrItem(name);
|
const AttrItem *ai=GetAttrItem(name);
|
||||||
|
|
||||||
return(ai?stob<u8char>(ai->value.c_str(),value):false);
|
return(ai?stob<u8char>(ai->value.c_str(),value):false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool ElementParseKV::GetHexStr(const UTF8String &name,uint8 *data)
|
const bool ElementParseKV::GetHexStr(const U8String &name,uint8 *data)
|
||||||
{
|
{
|
||||||
const AttrItem *ai=GetAttrItem(name);
|
const AttrItem *ai=GetAttrItem(name);
|
||||||
|
|
||||||
|
@ -64,13 +64,13 @@ namespace hgl
|
|||||||
};
|
};
|
||||||
}//namespace
|
}//namespace
|
||||||
|
|
||||||
const UTF8String GetExpatVersion()
|
const U8String GetExpatVersion()
|
||||||
{
|
{
|
||||||
return( UTF8String::numberOf(XML_MAJOR_VERSION)+
|
return( U8String::numberOf(XML_MAJOR_VERSION)+
|
||||||
UTF8String(U8_TEXT("."))+
|
U8String(U8_TEXT("."))+
|
||||||
UTF8String::numberOf(XML_MINOR_VERSION)+
|
U8String::numberOf(XML_MINOR_VERSION)+
|
||||||
UTF8String(U8_TEXT("."))+
|
U8String(U8_TEXT("."))+
|
||||||
UTF8String::numberOf(XML_MICRO_VERSION));
|
U8String::numberOf(XML_MICRO_VERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *GetExpatError(int code)
|
const char *GetExpatError(int code)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user