1d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===- BinaryReader.h -----------------------------------------------------===//
2d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//
3d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//                     The MCLinker Project
4d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//
5d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// This file is distributed under the University of Illinois Open Source
6d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// License. See LICENSE.TXT for details.
7d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//
8d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===----------------------------------------------------------------------===//
987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#ifndef MCLD_LD_BINARYREADER_H
1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_LD_BINARYREADER_H
11d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#include "mcld/LD/LDReader.h"
12d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
13d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaonamespace mcld {
14d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
15d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass Module;
16d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass Input;
17d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
18d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao/** \class BinaryReader
19d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao *  \brief BinaryReader provides an common interface for different Binary
20d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao *  formats.
21d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao */
22d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass BinaryReader : public LDReader
23d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao{
24d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaopublic:
2587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines  virtual ~BinaryReader() = 0;
26d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
2787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines  virtual bool isMyFormat(Input& pInput, bool &pContinue) const
2887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines  { pContinue = true; return false; }
29d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
30d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao  virtual bool readBinary(Input& pFile) = 0;
31d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao};
32d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
33d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao} // namespace of mcld
34d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
35d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#endif
36d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
37