1//===- OutputSymbolTable.h ------------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef OUTPUTSYMBOLTABLE_H
10#define OUTPUTSYMBOLTABLE_H
11#include <llvm/ADT/StringRef.h>
12#include "mcld/LD/SymbolTableIF.h"
13#ifdef ENABLE_UNITTEST
14#include <gtest.h>
15#endif
16
17namespace mcld
18{
19
20class LDSymbol;
21
22/** \class OutputSymbolTable
23 *  \brief Output symbol table, for MCLDOutput.
24 *
25 *  \see
26 */
27class OutputSymbolTable : public SymbolTableIF
28{
29  /* draft. */
30  friend class SymbolTableFactory;
31private:
32  OutputSymbolTable(StrSymPool &pStrSymPool,
33                    size_t pNumOfSymbols,
34                    StringTable &pEntireStringTable,
35                    StringTable &pDynamicStringTable);
36private:
37  virtual void doInsertSymbol(LDSymbol *);
38  virtual void doMerge(const SymbolTableIF &);
39};
40
41} // namespace of mcld
42
43#endif
44