1cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===- RegionFragment.h ---------------------------------------------------===//
2cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//
3cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//                     The MCLinker Project
4cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//
5cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// This file is distributed under the University of Illinois Open Source
6cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// License. See LICENSE.TXT for details.
7cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//
8cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===//
9cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
10cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#ifndef MCLD_LD_REGION_FRAGMENT_H
11cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#define MCLD_LD_REGION_FRAGMENT_H
12cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#ifdef ENABLE_UNITTEST
13cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <gtest.h>
14cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#endif
15cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
16cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/LD/Fragment.h>
17cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/Support/MemoryRegion.h>
18cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
19cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaonamespace mcld
20cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{
21cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
22cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao/** \class RegionFragment
23cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao *  \brief RegionFragment is a kind of Fragment containing mcld::MemoryRegion
24cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao */
25cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaoclass RegionFragment : public Fragment
26cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{
27cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaopublic:
28cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  RegionFragment(MemoryRegion& pRegion, SectionData* pSD = NULL);
29cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
30cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  ~RegionFragment();
31cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
32cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  MemoryRegion& getRegion()
33cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  { return m_Region; }
34cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
35cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  const MemoryRegion& getRegion() const
36cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  { return m_Region; }
37cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
38cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  static bool classof(const Fragment *F)
39cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  { return F->getKind() == Fragment::Region; }
40cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
41cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  static bool classof(const RegionFragment *)
42cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  { return true; }
43cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
44cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaoprivate:
45cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao  MemoryRegion& m_Region;
46cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao};
47cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
48cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} // namespace of mcld
49cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
50cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#endif
51cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao
52