15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- ArchiveReader.h ----------------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifndef MCLD_ARCHIVE_READER_INTERFACE_H 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define MCLD_ARCHIVE_READER_INTERFACE_H 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifdef ENABLE_UNITTEST 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h> 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif 14cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/LD/LDReader.h> 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaonamespace mcld 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 19cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaoclass Archive; 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class ArchiveReader 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * \brief ArchiveReader provides an common interface for all archive readers. 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * ArchiveReader also reads the target-independent parts of an archive file. 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * There are some property on all the archive formats. 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * 1. All archive elements star on an even boundary, new line padded; 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * 2. All archive headers are char *; 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * 3. All archive headers are the same size. 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */ 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoclass ArchiveReader : public LDReader 325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaopublic: 345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ArchiveReader(); 355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao virtual ~ArchiveReader(); 365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 37cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao virtual bool readArchive(Archive& pArchive) = 0; 385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}; 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} // namespace of mcld 415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif 43affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 44