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 protected: 25 explicit InputAction(unsigned int pPosition); 26 27 public: 28 virtual ~InputAction(); 29 30 virtual bool activate(InputBuilder&) const = 0; 31 32 unsigned int position() const { return m_Position; } 33 34 bool operator<(const InputAction& pOther) const { 35 return (position() < pOther.position()); 36 } 37 38 private: 39 InputAction(); // DO_NOT_IMPLEMENT 40 InputAction(const InputAction&); // DO_NOT_IMPLEMENT 41 InputAction& operator=(const InputAction&); // DO_NOT_IMPLEMENT 42 43 private: 44 unsigned int m_Position; 45}; 46 47} // namespace mcld 48 49#endif // MCLD_MC_INPUTACTION_H_ 50