LDReader.h revision affc150dc44fab1911775a49636d0ce85333b634
1b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//===- LDReader.h ---------------------------------------------------------===//
2b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//
3b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//                     The MCLinker Project
4b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//
5b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber// This file is distributed under the University of Illinois Open Source
6b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber// License. See LICENSE.TXT for details.
7b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//
8b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber//===----------------------------------------------------------------------===//
9b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#ifndef MCLD_READER_INTERFACE_H
10b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#define MCLD_READER_INTERFACE_H
11b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#ifdef ENABLE_UNITTEST
12b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#include <gtest.h>
13b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#endif
14b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
15b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#include <llvm/Support/DataTypes.h>
16b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
17b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Hubernamespace mcld
18b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber{
19b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
20b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huberclass Input;
21b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
22b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber/** \class LDReader
23b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber *  \brief LDReader provides the basic interfaces for all readers. It also
24b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber *  provides basic functions to read data stream.
25b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber */
26b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huberclass LDReader
27b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber{
28b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huberpublic:
29b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber  enum Endian {
30b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber    LittleEndian,
31b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber    BigEndian
32b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber  };
33b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
34b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huberprotected:
35b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber  LDReader() { }
36b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
37b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huberpublic:
38b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber  virtual ~LDReader() { }
39b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
40b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber  virtual bool isMyFormat(Input& pInput) const = 0;
41b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
42b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber};
43b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
44b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber} // namespace of mcld
45b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
46b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber#endif
47b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber
48b841f14f8e51f2365945281fbfa54ef6a1b1b5a6Andreas Huber