FileAction.h revision 37b74a387bb3993387029859c2d9d051c41c724e
1//===- FileAction.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_MC_FILEACTION_H_
10#define MCLD_MC_FILEACTION_H_
11#include "mcld/MC/InputAction.h"
12#include "mcld/Support/FileHandle.h"
13
14namespace mcld {
15
16class ContextFactory;
17
18/** \class ContextAction
19 *  \brief ContextAction is a command object to create input's LDContext.
20 */
21class ContextAction : public InputAction {
22 public:
23  explicit ContextAction(unsigned int pPosition);
24
25  bool activate(InputBuilder& pBuilder) const;
26};
27
28/** \class MemoryAreaAction
29 *  \brief MemoryAreaAction is a command object to create input's MemoryArea.
30 */
31class MemoryAreaAction : public InputAction {
32 public:
33  MemoryAreaAction(unsigned int pPosition,
34                   FileHandle::OpenModeEnum pMode,
35                   FileHandle::PermissionEnum pPerm = FileHandle::System);
36
37  bool activate(InputBuilder& pBuilder) const;
38
39 private:
40  FileHandle::OpenMode m_Mode;
41  FileHandle::Permission m_Permission;
42};
43
44}  // namespace mcld
45
46#endif  // MCLD_MC_FILEACTION_H_
47