1//===- InputAction.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_INPUTACTION_H 10#define MCLD_MC_INPUTACTION_H 11 12namespace mcld { 13 14class SearchDirs; 15class InputBuilder; 16 17//===----------------------------------------------------------------------===// 18// Base InputAction 19//===----------------------------------------------------------------------===// 20/** \class InputAction 21 * \brief InputAction is a command object to construct mcld::InputTree. 22 */ 23class InputAction 24{ 25protected: 26 explicit InputAction(unsigned int pPosition); 27 28public: 29 virtual ~InputAction(); 30 31 virtual bool activate(InputBuilder&) const = 0; 32 33 unsigned int position() const { return m_Position; } 34 35 bool operator<(const InputAction& pOther) const 36 { return (position() < pOther.position()); } 37 38private: 39 InputAction(); // DO_NOT_IMPLEMENT 40 InputAction(const InputAction& ); // DO_NOT_IMPLEMENT 41 InputAction& operator=(const InputAction& ); // DO_NOT_IMPLEMENT 42 43private: 44 unsigned int m_Position; 45}; 46 47} // namespace of mcld 48 49#endif 50 51