Roll src/third_party/WebKit 06cb9e9:a978ee5 (svn 202558:202559)
[chromium-blink-merge.git] / third_party / ots / src / name.h
bloba11965f46223cc7a2388c9c432a447f7cee524b8
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.
5 #ifndef OTS_NAME_H_
6 #define OTS_NAME_H_
8 #include <new>
9 #include <string>
10 #include <utility>
11 #include <vector>
13 #include "ots.h"
15 namespace ots {
17 struct NameRecord {
18 NameRecord() {
21 NameRecord(uint16_t platformID, uint16_t encodingID,
22 uint16_t languageID, uint16_t nameID)
23 : platform_id(platformID),
24 encoding_id(encodingID),
25 language_id(languageID),
26 name_id(nameID) {
29 uint16_t platform_id;
30 uint16_t encoding_id;
31 uint16_t language_id;
32 uint16_t name_id;
33 std::string text;
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;
46 struct OpenTypeNAME {
47 std::vector<NameRecord> names;
48 std::vector<std::string> lang_tags;
51 } // namespace ots
53 #endif // OTS_NAME_H_