BinaryReader.h revision f33f6de54db174aa679a4b6d1e040d37e95541c0
14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa//===- BinaryReader.h -----------------------------------------------------===// 24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// The MCLinker Project 44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// This file is distributed under the University of Illinois Open Source 64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// License. See LICENSE.TXT for details. 74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa// 84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa//===----------------------------------------------------------------------===// 94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#ifndef MCLD_LD_BINARYREADER_H 104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#define MCLD_LD_BINARYREADER_H 114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#ifdef ENABLE_UNITTEST 124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#include <gtest.h> 134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#endif 144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#include "mcld/LD/LDReader.h" 154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#include <llvm/Support/system_error.h> 16677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa 174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawanamespace mcld { 184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaclass Module; 204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaclass Input; 214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 22677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa/** \class BinaryReader 234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * \brief BinaryReader provides an common interface for different Binary 244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * formats. 254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaclass BinaryReader : public LDReader 274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa{ 28677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawapublic: 294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa virtual ~BinaryReader() = 0; 304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 314560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa virtual bool isMyFormat(Input& pInput, bool &pContinue) const 324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa { pContinue = true; return false; } 334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa virtual bool readBinary(Input& pFile) = 0; 354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa}; 364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa} // namespace of mcld 384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa#endif 404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa