X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347996b4a10c4e8579080692afa60e0afb88b60a..2807fde4fd1f59c230d69a934634c5dfb77905f2:/src/surf/PropertyHolder.cpp diff --git a/src/surf/PropertyHolder.cpp b/src/surf/PropertyHolder.cpp index 4458b2d8db..629870643b 100644 --- a/src/surf/PropertyHolder.cpp +++ b/src/surf/PropertyHolder.cpp @@ -1,42 +1,40 @@ -/* Copyright (c) 2015. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2015-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "xbt/sysdep.h" #include "PropertyHolder.hpp" namespace simgrid { namespace surf { -PropertyHolder::PropertyHolder(xbt_dict_t props) -: p_properties(props) -{ -} - PropertyHolder::~PropertyHolder() { - xbt_dict_free(&p_properties); + delete properties_; } -/** @brief Return the property associated to the provided key (or NULL if not existing) */ -const char *PropertyHolder::getProperty(const char*key) { - if (p_properties == NULL) - return NULL; - return (const char*) xbt_dict_get_or_null(p_properties,key); +/** @brief Return the property associated to the provided key (or nullptr if not existing) */ +const char* PropertyHolder::getProperty(std::string key) +{ + if (properties_ == nullptr) + return nullptr; + auto prop = properties_->find(key); + return prop == properties_->end() ? nullptr : prop->second.c_str(); } /** @brief Change the value of a given key in the property set */ -void PropertyHolder::setProperty(const char*key, const char*value) { - if (!p_properties) - p_properties = xbt_dict_new(); - xbt_dict_set(p_properties, key, xbt_strdup(value), &xbt_free_f); +void PropertyHolder::setProperty(std::string key, std::string value) +{ + if (not properties_) + properties_ = new std::map; + (*properties_)[key] = value; } /** @brief Return the whole set of properties. Don't mess with it, dude! */ -xbt_dict_t PropertyHolder::getProperties() { - if (!p_properties) - p_properties = xbt_dict_new(); - return p_properties; +std::map* PropertyHolder::getProperties() +{ + if (not properties_) + properties_ = new std::map; + return properties_; } } /* namespace surf */