ArchiveReader.h revision cedee4b38f4786845183be7f5916dd520a170ae0
1//===- ArchiveReader.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_ARCHIVE_READER_INTERFACE_H 10#define MCLD_ARCHIVE_READER_INTERFACE_H 11#ifdef ENABLE_UNITTEST 12#include <gtest.h> 13#endif 14#include <mcld/LD/LDReader.h> 15 16namespace mcld 17{ 18 19class Archive; 20 21/** \class ArchiveReader 22 * \brief ArchiveReader provides an common interface for all archive readers. 23 * 24 * ArchiveReader also reads the target-independent parts of an archive file. 25 * There are some property on all the archive formats. 26 * 1. All archive elements star on an even boundary, new line padded; 27 * 2. All archive headers are char *; 28 * 3. All archive headers are the same size. 29 */ 30 31class ArchiveReader : public LDReader 32{ 33public: 34 ArchiveReader(); 35 virtual ~ArchiveReader(); 36 37 virtual bool readArchive(Archive& pArchive) = 0; 38}; 39 40} // namespace of mcld 41 42#endif 43 44