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