SNAP Library , Developer Reference  2013-01-07 14:03:36
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TUniChDb::TSubcatHelper Class Reference

#include <unicode.h>

Collaboration diagram for TUniChDb::TSubcatHelper:

List of all members.

Public Member Functions

 TSubcatHelper (TUniChDb &owner_)
void ProcessComment (TUniChDb::TUcdFileReader &reader)
void SetCat (const int cp)
void TestCat (const int cp)
 ~TSubcatHelper ()

Public Attributes

bool hasCat
TUniChSubCategory subCat
TStrH invalidCatCodes
TUniChDbowner

Detailed Description

Definition at line 1719 of file unicode.h.


Constructor & Destructor Documentation

Definition at line 1726 of file unicode.h.

: owner(owner_) { }

Definition at line 1753 of file unicode.h.

References TStr::CStr(), THash< TKey, TDat, THashFunc >::DelKey(), THash< TKey, TDat, THashFunc >::Empty(), THash< TKey, TDat, THashFunc >::FFirstKeyId(), THash< TKey, TDat, THashFunc >::FNextKeyId(), THash< TKey, TDat, THashFunc >::GetKey(), invalidCatCodes, and THash< TKey, TDat, THashFunc >::IsKey().

                {
                        if (invalidCatCodes.IsKey("L&")) invalidCatCodes.DelKey("L&");
                        // Output any unexpected ones (there shouldn't be any).
                        if (! invalidCatCodes.Empty()) {
                                printf("Invalid cat code(s) in the comments: ");
                                for (int i = invalidCatCodes.FFirstKeyId(); invalidCatCodes.FNextKeyId(i); )
                                        printf(" \"%s\"", invalidCatCodes.GetKey(i).CStr());
                                printf("\n"); }
                }

Here is the call graph for this function:


Member Function Documentation

Definition at line 1728 of file unicode.h.

References THash< TKey, TDat, THashFunc >::AddKey(), TUniChDb::TUcdFileReader::comment, hasCat, IAssert, invalidCatCodes, TUniChInfo::IsValidSubCat(), TChA::Len(), and subCat.

Referenced by TUniChDb::InitDerivedCoreProperties(), TUniChDb::InitPropList(), and TUniChDb::InitScripts().

                {
                        hasCat = false; subCat = ucOtherNotAssigned;
                        if (reader.comment.Len() > 3)
                        {
                                IAssert(reader.comment[0] == '#');
                                IAssert(reader.comment[1] == ' ');
                                char chCat = reader.comment[2], chSubCat = reader.comment[3];
                                if (reader.comment.Len() > 4) IAssert(isspace(uchar(reader.comment[4])));
                                if (TUniChInfo::IsValidSubCat(chCat, chSubCat)) {
                                        hasCat = true; subCat = (TUniChSubCategory) ((int(uchar(chCat)) << 8) | (int(uchar(chSubCat)))); }
                                else invalidCatCodes.AddKey(TStr(chCat) + TStr(chSubCat));
                        }
                }

Here is the call graph for this function:

Here is the caller graph for this function:

void TUniChDb::TSubcatHelper::SetCat ( const int  cp) [inline]

Definition at line 1743 of file unicode.h.

References THash< TKey, TDat, THashFunc >::GetKeyId(), TUniChDb::h, hasCat, IAssert, owner, and subCat.

Referenced by TUniChDb::InitDerivedCoreProperties(), TUniChDb::InitPropList(), and TUniChDb::InitScripts().

                                          {
                        int i = owner.h.GetKeyId(cp); IAssert(i >= 0);
                        IAssert(owner.h[i].subCat == ucOtherNotAssigned);
                        IAssert(hasCat);
                        owner.h[i].SetCatAndSubCat(subCat); }

Here is the call graph for this function:

Here is the caller graph for this function:

void TUniChDb::TSubcatHelper::TestCat ( const int  cp) [inline]

Definition at line 1748 of file unicode.h.

References THash< TKey, TDat, THashFunc >::GetKeyId(), TUniChDb::h, hasCat, IAssert, owner, and subCat.

Referenced by TUniChDb::InitDerivedCoreProperties(), TUniChDb::InitPropList(), and TUniChDb::InitScripts().

                                           {
                        if (! hasCat) return;
                        int i = owner.h.GetKeyId(cp); IAssert(i >= 0);
                        IAssert(owner.h[i].subCat == subCat); }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 1722 of file unicode.h.

Referenced by ProcessComment(), SetCat(), and TestCat().

Definition at line 1724 of file unicode.h.

Referenced by SetCat(), and TestCat().


The documentation for this class was generated from the following file: