1 //===- InputCmd.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_SCRIPT_INPUTCMD_H_ 10 #define MCLD_SCRIPT_INPUTCMD_H_ 11 12 #include "mcld/Script/ScriptCommand.h" 13 14 namespace mcld { 15 16 class ArchiveReader; 17 class DynObjReader; 18 class InputBuilder; 19 class InputTree; 20 class LinkerConfig; 21 class ObjectReader; 22 class StringList; 23 24 /** \class InputCmd 25 * \brief This class defines the interfaces to Input command. 26 */ 27 28 class InputCmd : public ScriptCommand { 29 public: 30 InputCmd(StringList& pStringList, 31 InputTree& pInputTree, 32 InputBuilder& pBuilder, 33 ObjectReader& pObjectReader, 34 ArchiveReader& pArchiveReader, 35 DynObjReader& pDynObjReader, 36 const LinkerConfig& pConfig); 37 ~InputCmd(); 38 39 void dump() const; 40 classof(const ScriptCommand * pCmd)41 static bool classof(const ScriptCommand* pCmd) { 42 return pCmd->getKind() == ScriptCommand::INPUT; 43 } 44 45 void activate(Module& pModule); 46 47 private: 48 StringList& m_StringList; 49 InputTree& m_InputTree; 50 InputBuilder& m_Builder; 51 ObjectReader& m_ObjectReader; 52 ArchiveReader& m_ArchiveReader; 53 DynObjReader& m_DynObjReader; 54 const LinkerConfig& m_Config; 55 }; 56 57 } // namespace mcld 58 59 #endif // MCLD_SCRIPT_INPUTCMD_H_ 60