SNAP Library , Developer Reference
2013-01-07 14:03:36
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
00001 00002 // Unicode-Definition 00003 class TUnicodeDef{ 00004 private: 00005 static TUnicodeDef UnicodeDef; 00006 private: 00007 TUnicode* Unicode; 00008 UndefCopyAssign(TUnicodeDef); 00009 public: 00010 TUnicodeDef(): Unicode(NULL){} 00011 ~TUnicodeDef(){if (Unicode!=NULL){delete Unicode;} Unicode=NULL;} 00012 00013 // files 00014 static TStr GetDfFNm(); 00015 static void Load(){ 00016 Load(GetDfFNm());} 00017 static void Load(const TStr& FNm){ 00018 UnicodeDef.Unicode=new TUnicode(FNm);} 00019 00020 // status 00021 static bool IsDef(){ 00022 return UnicodeDef.Unicode!=NULL;} 00023 static TUnicode* GetDef(){ 00024 Assert(UnicodeDef.Unicode!=NULL); return UnicodeDef.Unicode;} 00025 }; 00026 00028 // Unicode-String 00029 class TUStr; 00030 typedef TVec<TUStr> TUStrV; 00031 00032 class TUStr{ 00033 private: 00034 TIntV UniChV; 00035 static void AssertUnicodeDefOk(){ 00036 EAssertR(TUnicodeDef::IsDef(), "Unicode-Definition-File not loaded!");} 00037 public: 00038 TUStr(): UniChV(){AssertUnicodeDefOk();} 00039 TUStr(const TUStr& UStr): UniChV(UStr.UniChV){AssertUnicodeDefOk();} 00040 TUStr(const TIntV& _UniChV): UniChV(_UniChV){AssertUnicodeDefOk();} 00041 TUStr(const TStr& Str); 00042 ~TUStr(){} 00043 TUStr(TSIn& SIn): UniChV(SIn){AssertUnicodeDefOk();} 00044 void Save(TSOut& SOut) const {UniChV.Save(SOut);} 00045 void LoadXml(const PXmlTok& XmlTok, const TStr& Nm); 00046 void SaveXml(TSOut& SOut, const TStr& Nm) const; 00047 00048 TUStr& operator=(const TUStr& UStr){ 00049 if (this!=&UStr){UniChV=UStr.UniChV;} return *this;} 00050 bool operator==(const TUStr& UStr) const {return UniChV==UStr.UniChV;} 00051 00052 TUStr& operator+=(const TUStr& UStr){UniChV.AddV(UStr.UniChV); return *this;} 00053 int operator[](const int& UniChN) const {return UniChV[UniChN];} 00054 00055 // basic operations 00056 void Clr(){UniChV.Clr();} 00057 int Len() const {return UniChV.Len();} 00058 bool Empty() const {return UniChV.Empty();} 00059 00060 // transformations 00061 void ToLowerCase(); 00062 void ToUpperCase(); 00063 void ToStarterCase(); 00064 00065 // word boundaries 00066 void GetWordBoundPV(TBoolV& WordBoundPV); 00067 void GetWordUStrV(TUStrV& UStrV); 00068 00069 // conversions to string 00070 TStr GetStr() const; 00071 TStr GetStarterStr() const; 00072 TStr GetStarterLowerCaseStr() const; 00073 00074 // scripts 00075 static int GetScriptId(const TStr& ScriptNm); 00076 static TStr GetScriptNm(const int& ScriptId); 00077 static int GetChScriptId(const int& UniCh); 00078 static TStr GetChScriptNm(const int& UniCh); 00079 00080 // characters 00081 static TStr GetChNm(const int& UniCh); 00082 static TStr GetChTypeStr(const int& UniCh); 00083 static bool IsCase(const int& UniCh); 00084 static bool IsUpperCase(const int& UniCh); 00085 static bool IsLowerCase(const int& UniCh); 00086 static bool IsAlphabetic(const int& UniCh); 00087 static bool IsMath(const int& UniCh); 00088 00089 // converstions to/from UTF8 00090 static TStr EncodeUtf8(const int& UniCh); 00091 };