19251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org// Copyright (c) 2011 The Chromium Authors. All rights reserved. 29251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org// Use of this source code is governed by a BSD-style license that can be 39251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org// found in the LICENSE file. 49251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 59251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#ifndef OTS_NAME_H_ 69251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#define OTS_NAME_H_ 79251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 89251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#include <new> 99251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#include <string> 109251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#include <utility> 119251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#include <vector> 129251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 139251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#include "ots.h" 149251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 159251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.orgnamespace ots { 169251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 179251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.orgstruct NameRecord { 189251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org NameRecord() { 199251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org } 209251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 219251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org NameRecord(uint16_t platform_id, uint16_t encoding_id, 229251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org uint16_t language_id, uint16_t name_id) 239251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org : platform_id(platform_id), 249251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org encoding_id(encoding_id), 259251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org language_id(language_id), 269251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org name_id(name_id) { 279251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org } 289251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 299251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org uint16_t platform_id; 309251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org uint16_t encoding_id; 319251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org uint16_t language_id; 329251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org uint16_t name_id; 339251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org std::string text; 349251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 359251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org bool operator<(const NameRecord& rhs) const { 369251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (platform_id < rhs.platform_id) return true; 379251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (platform_id > rhs.platform_id) return false; 389251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (encoding_id < rhs.encoding_id) return true; 399251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (encoding_id > rhs.encoding_id) return false; 409251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (language_id < rhs.language_id) return true; 419251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org if (language_id > rhs.language_id) return false; 429251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org return name_id < rhs.name_id; 439251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org } 449251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org}; 459251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 469251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.orgstruct OpenTypeNAME { 479251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org std::vector<NameRecord> names; 489251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org std::vector<std::string> lang_tags; 499251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org}; 509251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 519251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org} // namespace ots 529251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org 539251959e68ed10ac38b3bba49422d27564cf2fc8bashi@chromium.org#endif // OTS_NAME_H_ 54