137b74a387bb3993387029859c2d9d051c41c724eStephen Hines//===- InputCmd.h ---------------------------------------------------------===// 237b74a387bb3993387029859c2d9d051c41c724eStephen Hines// 337b74a387bb3993387029859c2d9d051c41c724eStephen Hines// The MCLinker Project 437b74a387bb3993387029859c2d9d051c41c724eStephen Hines// 537b74a387bb3993387029859c2d9d051c41c724eStephen Hines// This file is distributed under the University of Illinois Open Source 637b74a387bb3993387029859c2d9d051c41c724eStephen Hines// License. See LICENSE.TXT for details. 737b74a387bb3993387029859c2d9d051c41c724eStephen Hines// 837b74a387bb3993387029859c2d9d051c41c724eStephen Hines//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_SCRIPT_INPUTCMD_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_SCRIPT_INPUTCMD_H_ 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/ScriptCommand.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 1537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ArchiveReader; 1737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass DynObjReader; 1837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass InputBuilder; 1937b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass InputTree; 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass LinkerConfig; 2137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ObjectReader; 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass StringList; 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines/** \class InputCmd 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines * \brief This class defines the interfaces to Input command. 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines */ 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass InputCmd : public ScriptCommand { 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hines InputCmd(StringList& pStringList, 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines InputTree& pInputTree, 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines InputBuilder& pBuilder, 3337b74a387bb3993387029859c2d9d051c41c724eStephen Hines ObjectReader& pObjectReader, 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hines ArchiveReader& pArchiveReader, 3537b74a387bb3993387029859c2d9d051c41c724eStephen Hines DynObjReader& pDynObjReader, 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines const LinkerConfig& pConfig); 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines ~InputCmd(); 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3937b74a387bb3993387029859c2d9d051c41c724eStephen Hines void dump() const; 4037b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4137b74a387bb3993387029859c2d9d051c41c724eStephen Hines static bool classof(const ScriptCommand* pCmd) { 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines return pCmd->getKind() == ScriptCommand::INPUT; 4337b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines void activate(Module& pModule); 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4737b74a387bb3993387029859c2d9d051c41c724eStephen Hines private: 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines StringList& m_StringList; 4937b74a387bb3993387029859c2d9d051c41c724eStephen Hines InputTree& m_InputTree; 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hines InputBuilder& m_Builder; 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines ObjectReader& m_ObjectReader; 5237b74a387bb3993387029859c2d9d051c41c724eStephen Hines ArchiveReader& m_ArchiveReader; 5337b74a387bb3993387029859c2d9d051c41c724eStephen Hines DynObjReader& m_DynObjReader; 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines const LinkerConfig& m_Config; 5537b74a387bb3993387029859c2d9d051c41c724eStephen Hines}; 5637b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 5837b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_SCRIPT_INPUTCMD_H_ 60