1 //===- OutputFormatCmd.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_OUTPUTFORMATCMD_H 10 #define MCLD_SCRIPT_OUTPUTFORMATCMD_H 11 12 #include <mcld/Script/ScriptCommand.h> 13 #include <string> 14 #include <vector> 15 16 namespace mcld 17 { 18 19 class Module; 20 21 /** \class OutputFormatCmd 22 * \brief This class defines the interfaces to OutputFormat command. 23 */ 24 25 class OutputFormatCmd : public ScriptCommand 26 { 27 public: 28 typedef std::vector<std::string> FormatList; 29 typedef FormatList::const_iterator const_iterator; 30 typedef FormatList::iterator iterator; 31 32 public: 33 OutputFormatCmd(const std::string& pFormat); 34 OutputFormatCmd(const std::string& pDefault, 35 const std::string& pBig, 36 const std::string& pLittle); 37 ~OutputFormatCmd(); 38 begin()39 const_iterator begin() const { return m_FormatList.begin(); } begin()40 iterator begin() { return m_FormatList.begin(); } end()41 const_iterator end() const { return m_FormatList.end(); } end()42 iterator end() { return m_FormatList.end(); } 43 44 void dump() const; 45 classof(const ScriptCommand * pCmd)46 static bool classof(const ScriptCommand* pCmd) 47 { 48 return pCmd->getKind() == ScriptCommand::OUTPUT_FORMAT; 49 } 50 51 void activate(Module& pModule); 52 53 private: 54 FormatList m_FormatList; 55 }; 56 57 } // namespace of mcld 58 59 #endif 60 61