Home | History | Annotate | Download | only in src
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef OTS_NAME_H_
      6 #define OTS_NAME_H_
      7 
      8 #include <new>
      9 #include <string>
     10 #include <utility>
     11 #include <vector>
     12 
     13 #include "ots.h"
     14 
     15 namespace ots {
     16 
     17 struct NameRecord {
     18   NameRecord() {
     19   }
     20 
     21   NameRecord(uint16_t platform_id, uint16_t encoding_id,
     22              uint16_t language_id, uint16_t name_id)
     23     : platform_id(platform_id),
     24       encoding_id(encoding_id),
     25       language_id(language_id),
     26       name_id(name_id) {
     27   }
     28 
     29   uint16_t platform_id;
     30   uint16_t encoding_id;
     31   uint16_t language_id;
     32   uint16_t name_id;
     33   std::string text;
     34 
     35   bool operator<(const NameRecord& rhs) const {
     36     if (platform_id < rhs.platform_id) return true;
     37     if (platform_id > rhs.platform_id) return false;
     38     if (encoding_id < rhs.encoding_id) return true;
     39     if (encoding_id > rhs.encoding_id) return false;
     40     if (language_id < rhs.language_id) return true;
     41     if (language_id > rhs.language_id) return false;
     42     return name_id < rhs.name_id;
     43   }
     44 };
     45 
     46 struct OpenTypeNAME {
     47   std::vector<NameRecord> names;
     48   std::vector<std::string> lang_tags;
     49 };
     50 
     51 }  // namespace ots
     52 
     53 #endif  // OTS_NAME_H_
     54