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//===----------------------------------------------------------------------===//
937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_LD_BINARYREADER_H_
1037b74a387bb3993387029859c2d9d051c41c724eStephen 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 Input;
16d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
17d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao/** \class BinaryReader
18d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao *  \brief BinaryReader provides an common interface for different Binary
19d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao *  formats.
20d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao */
2137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass BinaryReader : public LDReader {
2237b74a387bb3993387029859c2d9d051c41c724eStephen Hines public:
2387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines  virtual ~BinaryReader() = 0;
24d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines  virtual bool isMyFormat(Input& pInput, bool& pContinue) const {
2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines    pContinue = true;
2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines    return false;
2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines  }
29d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
30d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao  virtual bool readBinary(Input& pFile) = 0;
31d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao};
32d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
3337b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace mcld
34d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao
3537b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif  // MCLD_LD_BINARYREADER_H_
36