Home | History | Annotate | Download | only in Script
      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 
     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