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