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 15namespace ots { 16 17struct 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 46struct 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