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