22 #include "UTF8Util.hpp"    23 #include "Segments.hpp"    34   virtual const char* Key() 
const = 0;
    36   virtual vector<const char*> Values() 
const = 0;
    38   virtual const char* GetDefault() 
const = 0;
    40   virtual size_t NumValues() 
const = 0;
    42   virtual string ToString() 
const = 0;
    44   size_t KeyLength()
 const { 
return strlen(Key()); }
    46   bool operator<(
const DictEntry& that)
 const {
    47     return strcmp(Key(), that.Key()) < 0;
    50   bool operator==(
const DictEntry& that)
 const {
    51     return strcmp(Key(), that.Key()) == 0;
    65   virtual const char* Key()
 const { 
return key.c_str(); }
    67   virtual vector<const char*> Values()
 const { 
return vector<const char*>(); }
    69   virtual const char* GetDefault()
 const { 
return Key(); }
    71   virtual size_t NumValues()
 const { 
return 0; }
    73   virtual string ToString()
 const { 
return key; }
    81   virtual const char* Value() 
const = 0;
    83   virtual vector<const char*> Values()
 const {
    84     return vector<const char*>{Value()};
    87   virtual const char* GetDefault()
 const { 
return Value(); }
    89   virtual size_t NumValues()
 const { 
return 1; }
    91   virtual string ToString()
 const { 
return string(Key()) + 
"\t" + Value(); }
    97       : key(_key), value(_value) {}
   101   virtual const char* Key()
 const { 
return key.c_str(); }
   103   virtual const char* Value()
 const { 
return value.c_str(); }
   112   virtual const char* GetDefault()
 const {
   113     if (NumValues() > 0) {
   114       return Values().at(0);
   120   virtual string ToString() 
const;
   126       : key(_key), values(_values) {}
   130     values.reserve(_values.size());
   131     for (
const char* str : _values) {
   132       values.push_back(str);
   138   virtual const char* Key()
 const { 
return key.c_str(); }
   140   size_t NumValues()
 const { 
return values.size(); }
   142   vector<const char*> Values()
 const {
   143     vector<const char*> retsult;
   144     for (
const string& value : this->values) {
   145       retsult.push_back(value.c_str());
   152   vector<string> values;
   157   PtrDictEntry(
const char* _key, 
const vector<const char*>& _values)
   158       : key(_key), values(_values) {}
   162   virtual const char* Key()
 const { 
return key; }
   164   size_t NumValues()
 const { 
return values.size(); }
   166   vector<const char*> Values()
 const { 
return values; }
   170   vector<const char*> values;
   177   static DictEntry* New(
const string& key, 
const string& value) {
   181   static DictEntry* New(
const string& key, 
const vector<string>& values) {
   186     if (entry->NumValues() == 0) {
   188     } 
else if (entry->NumValues() == 1) {
 Definition: DictEntry.hpp:110
Definition: DictEntry.hpp:155
Key-values pair entry. 
Definition: DictEntry.hpp:30
Definition: DictEntry.hpp:123
Definition: BinaryDict.hpp:24
Definition: DictEntry.hpp:173
Definition: DictEntry.hpp:94
Definition: DictEntry.hpp:79
Definition: DictEntry.hpp:59