Line data Source code
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 0 : struct NameRecord {
18 0 : NameRecord() {
19 0 : }
20 :
21 0 : NameRecord(uint16_t platformID, uint16_t encodingID,
22 : uint16_t languageID, uint16_t nameID)
23 0 : : platform_id(platformID),
24 : encoding_id(encodingID),
25 : language_id(languageID),
26 0 : name_id(nameID) {
27 0 : }
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 0 : bool operator<(const NameRecord& rhs) const {
36 0 : if (platform_id < rhs.platform_id) return true;
37 0 : if (platform_id > rhs.platform_id) return false;
38 0 : if (encoding_id < rhs.encoding_id) return true;
39 0 : if (encoding_id > rhs.encoding_id) return false;
40 0 : if (language_id < rhs.language_id) return true;
41 0 : if (language_id > rhs.language_id) return false;
42 0 : return name_id < rhs.name_id;
43 : }
44 : };
45 :
46 0 : 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_
|