/* suPHP - (c)2002-2005 Sebastian Marsching This file is part of suPHP. suPHP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. suPHP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with suPHP; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "OutOfRangeException.hpp" #include "CommandLine.hpp" using namespace suPHP; suPHP::CommandLine::CommandLine() { /* do nothing */ } int suPHP::CommandLine::count() const { return this->arguments.size(); } std::string suPHP::CommandLine::getArgument(int pos) const throw (OutOfRangeException) { if (pos >= this->arguments.size() || pos < 0) { throw OutOfRangeException("Index out of range", __FILE__, __LINE__); } try { return this->arguments[pos]; } catch (std::out_of_range& e) { throw OutOfRangeException("Index out of range", __FILE__, __LINE__); } } void suPHP::CommandLine::setArgument(int pos, std::string arg) { if (pos >= this->arguments.size()) { for (int i=0; i<(this->arguments.size() - pos); i++) { this->arguments.push_back(std::string("")); } } this->arguments[pos] = arg; } void suPHP::CommandLine::putArgument(std::string arg) { this->arguments.push_back(arg); } std::string& suPHP::CommandLine::operator[](int index) throw (OutOfRangeException) { if (index >= this->arguments.size() || index < 0) { throw OutOfRangeException("Index out of range", __FILE__, __LINE__); } try { return this->arguments[index]; } catch (std::out_of_range& ex) { throw OutOfRangeException("Index out of range", __FILE__, __LINE__); } } int suPHP::CommandLine::size() const { return this->arguments.size(); }