Use U8String/U16String/WString instead of UTF8String/UTF16String/WideString

This commit is contained in:
hyzboy 2024-12-24 22:41:09 +08:00
parent 6cd0063812
commit 21e2b6a9b5
8 changed files with 62 additions and 62 deletions

View File

@ -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

View File

@ -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数据流

View File

@ -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;

View File

@ -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

View File

@ -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() ;}

View File

@ -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);

View File

@ -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);

View File

@ -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)