1/*
2 *
3 * (C) Copyright IBM Corp. 1998 - 2013 - All Rights Reserved
4 *
5 */
6
7#include "LETypes.h"
8#include "OpenTypeTables.h"
9#include "GlyphDefinitionTables.h"
10#include "LESwaps.h"
11
12U_NAMESPACE_BEGIN
13
14const LEReferenceTo<GlyphClassDefinitionTable>
15GlyphDefinitionTableHeader::getGlyphClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
16                                                         LEErrorCode &success) const
17{
18  if(LE_FAILURE(success)) return LEReferenceTo<GlyphClassDefinitionTable>();
19  return LEReferenceTo<GlyphClassDefinitionTable>(base, success, SWAPW(glyphClassDefOffset));
20}
21
22const LEReferenceTo<AttachmentListTable>
23GlyphDefinitionTableHeader::getAttachmentListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
24                                                         LEErrorCode &success) const
25{
26    if(LE_FAILURE(success)) return LEReferenceTo<AttachmentListTable>();
27    return LEReferenceTo<AttachmentListTable>(base, success, SWAPW(attachListOffset));
28}
29
30const LEReferenceTo<LigatureCaretListTable>
31GlyphDefinitionTableHeader::getLigatureCaretListTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
32                                                         LEErrorCode &success) const
33{
34    if(LE_FAILURE(success)) return LEReferenceTo<LigatureCaretListTable>();
35    return LEReferenceTo<LigatureCaretListTable>(base, success, SWAPW(ligCaretListOffset));
36}
37
38const LEReferenceTo<MarkAttachClassDefinitionTable>
39GlyphDefinitionTableHeader::getMarkAttachClassDefinitionTable(const LEReferenceTo<GlyphDefinitionTableHeader>& base,
40                                                         LEErrorCode &success) const
41{
42    if(LE_FAILURE(success)) return LEReferenceTo<MarkAttachClassDefinitionTable>();
43    return LEReferenceTo<MarkAttachClassDefinitionTable>(base, success, SWAPW(MarkAttachClassDefOffset));
44}
45
46U_NAMESPACE_END
47