ELFDynObjReader.h revision affc150dc44fab1911775a49636d0ce85333b634
1//===- ELFDynObjReader.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 MCLD_ELF_DYNAMIC_SHARED_OBJECT_READER_H
10#define MCLD_ELF_DYNAMIC_SHARED_OBJECT_READER_H
11#ifdef ENABLE_UNITTEST
12#include <gtest.h>
13#endif
14#include <mcld/LD/DynObjReader.h>
15#include <llvm/Support/system_error.h>
16
17namespace mcld
18{
19
20class Input;
21class MCLinker;
22class GNULDBackend;
23class ELFReaderIF;
24
25/** \class ELFDynObjReader
26 *  \brief ELFDynObjReader reads ELF dynamic shared objects.
27 *
28 */
29class ELFDynObjReader : public DynObjReader
30{
31public:
32  ELFDynObjReader(GNULDBackend& pBackend, MCLinker& pLinker);
33  ~ELFDynObjReader();
34
35  // -----  observers  ----- //
36  bool isMyFormat(Input &pFile) const;
37
38  // -----  readers  ----- //
39  bool readDSO(Input& pFile);
40
41  bool readSymbols(Input& pInput);
42
43private:
44  ELFReaderIF *m_pELFReader;
45  MCLinker& m_Linker;
46};
47
48} // namespace of mcld
49
50#endif
51
52