/*
- suPHP - (c)2002-2005 Sebastian Marsching <sebastian@marsching.com>
+ suPHP - (c)2002-2008 Sebastian Marsching <sebastian@marsching.com>
This file is part of suPHP.
using namespace suPHP;
-void suPHP::IniSection::putValue(std::string key, std::string value) {
+void suPHP::IniSection::putValue(const std::string key, const std::string value) {
std::pair<std::string, std::string> p;
p.first = key;
p.second = value;
this->entries.insert(p);
}
-std::vector<std::string> suPHP::IniSection::getValues(std::string key)
+const std::vector<std::string> suPHP::IniSection::getValues(const std::string& key) const
throw (KeyNotFoundException) {
std::vector<std::string> values;
- for (std::multimap<std::string, std::string>::iterator pos =
- this->entries.find(key);
- pos != this->entries.end(); pos++) {
- values.push_back(pos->second);
+ std::pair<std::multimap<const std::string, const std::string>::const_iterator, std::multimap<const std::string, const std::string>::const_iterator> range = this->entries.equal_range(key);
+ for (std::multimap<const std::string, const std::string>::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__);
+ throw KeyNotFoundException("No value for key " + key + " found",
+ __FILE__, __LINE__);
}
return values;
}
-std::string suPHP::IniSection::getValue(std::string key)
+std::string suPHP::IniSection::getValue(const std::string& key) const
throw (KeyNotFoundException) {
std::vector<std::string> values;
if (this->entries.find(key) != this->entries.end()) {
- return this->entries.find(key)->second;
+ return this->entries.find(key)->second;
} else {
- throw KeyNotFoundException("No value for key " + key + " found",
- __FILE__, __LINE__);
+ throw KeyNotFoundException("No value for key " + key + " found",
+ __FILE__, __LINE__);
}
}
-std::vector<std::string> suPHP::IniSection::getKeys() {
+const std::vector<std::string> suPHP::IniSection::getKeys() const {
std::vector<std::string> keys;
- for (std::multimap<std::string, std::string>::iterator pos =
- this->entries.begin();
- pos != this->entries.end(); pos++) {
- keys.push_back(pos->first);
+ for (std::multimap<const std::string, const std::string>::const_iterator pos =
+ this->entries.begin();
+ pos != this->entries.end(); pos++) {
+ keys.push_back(pos->first);
}
return keys;
}
-bool suPHP::IniSection::hasKey(std::string key) {
+bool suPHP::IniSection::hasKey(const std::string& key) const {
if (this->entries.find(key) != this->entries.end()) {
- return true;
+ return true;
} else {
- return false;
+ return false;
}
}
-std::vector<std::string> suPHP::IniSection::operator[](std::string key)
+const std::vector<std::string> 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);
+}