//===- FileAction.h -------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_MC_FILE_ACTION_H #define MCLD_MC_FILE_ACTION_H #ifdef ENABLE_UNITTEST #include <gtest.h> #endif #include <mcld/MC/InputAction.h> #include <mcld/Support/FileHandle.h> namespace mcld { class ContextFactory; class MemoryAreaFactory; /** \class ContextAction * \brief ContextAction is a command object to create input's LDContext. */ class ContextAction : public InputAction { public: explicit ContextAction(unsigned int pPosition); bool activate(InputBuilder& pBuilder) const; }; /** \class MemoryAreaAction * \brief MemoryAreaAction is a command object to create input's MemoryArea. */ class MemoryAreaAction : public InputAction { public: MemoryAreaAction(unsigned int pPosition, FileHandle::OpenMode pMode, FileHandle::Permission pPerm = FileHandle::System); bool activate(InputBuilder& pBuilder) const; private: FileHandle::OpenMode m_Mode; FileHandle::Permission m_Permission; }; } // end of namespace mcld #endif