|  | // Copyright (c) 2011-2017 The OTS Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef OTS_GDEF_H_ | 
|  | #define OTS_GDEF_H_ | 
|  |  | 
|  | #include "ots.h" | 
|  |  | 
|  | namespace ots { | 
|  |  | 
|  | class OpenTypeGDEF : public Table { | 
|  | public: | 
|  | explicit OpenTypeGDEF(Font *font, uint32_t tag) | 
|  | : Table(font, tag, tag), | 
|  | num_mark_glyph_sets(0), | 
|  | m_data(NULL), | 
|  | m_length(0), | 
|  | m_num_glyphs(0) { | 
|  | } | 
|  |  | 
|  | bool Parse(const uint8_t *data, size_t length); | 
|  | bool Serialize(OTSStream *out); | 
|  |  | 
|  | uint16_t num_mark_glyph_sets; | 
|  |  | 
|  | private: | 
|  | bool ParseAttachListTable(const uint8_t *data, size_t length); | 
|  | bool ParseLigCaretListTable(const uint8_t *data, size_t length); | 
|  | bool ParseMarkGlyphSetsDefTable(const uint8_t *data, size_t length); | 
|  |  | 
|  | const uint8_t *m_data; | 
|  | size_t m_length; | 
|  | uint16_t m_num_glyphs; | 
|  | }; | 
|  |  | 
|  | }  // namespace ots | 
|  |  | 
|  | #endif | 
|  |  |