/* suPHP - (c)2002-2008 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 "KeyNotFoundException.hpp" #include "IniSection.hpp" using namespace suPHP; void suPHP::IniSection::putValue(const std::string key, const std::string value) { std::pair p; p.first = key; p.second = value; this->entries.insert(p); } const std::vector suPHP::IniSection::getValues(const std::string& key) const throw (KeyNotFoundException) { std::vector values; std::pair::const_iterator, std::multimap::const_iterator> range = this->entries.equal_range(key); for (std::multimap::const_iterator pos = range.first; pos != range.second; pos++) { values.push_back(pos->second); } if (values.size() == 0) { throw KeyNotFoundException("No value for key " + key + " found", __FILE__, __LINE__); } return values; } std::string suPHP::IniSection::getValue(const std::string& key) const throw (KeyNotFoundException) { std::vector values; if (this->entries.find(key) != this->entries.end()) { return this->entries.find(key)->second; } else { throw KeyNotFoundException("No value for key " + key + " found", __FILE__, __LINE__); } } const std::vector suPHP::IniSection::getKeys() const { std::vector keys; for (std::multimap::const_iterator pos = this->entries.begin(); pos != this->entries.end(); pos++) { keys.push_back(pos->first); } return keys; } bool suPHP::IniSection::hasKey(const std::string& key) const { if (this->entries.find(key) != this->entries.end()) { return true; } else { return false; } } const std::vector suPHP::IniSection::operator[](const std::string& key) const throw (KeyNotFoundException) { return this->getValues(key); } void suPHP::IniSection::removeValues(const std::string& key) { this->entries.erase(key); }