X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f4f03348bd07609e258eb3b545bdafc2c881847..4fd0a2b6cf055692f936e29294496d14a6091ff1:/include/simgrid/s4u/storage.hpp diff --git a/include/simgrid/s4u/storage.hpp b/include/simgrid/s4u/storage.hpp index b0b3335372..4504bb8924 100644 --- a/include/simgrid/s4u/storage.hpp +++ b/include/simgrid/s4u/storage.hpp @@ -10,24 +10,28 @@ #include #include "xbt/base.h" #include "simgrid/simix.h" +#include namespace simgrid { namespace s4u { XBT_PUBLIC_CLASS Storage { + friend s4u::Engine; + private: - Storage(std::string name, smx_storage_t inferior); - virtual ~Storage(); + Storage(std::string name, smx_storage_t inferior); + virtual ~Storage(); + public: - /** Retrieve a Storage by its name. It must exist in the platform file */ - static Storage &byName(const char* name); - const char *name(); - sg_size_t size_free(); - sg_size_t size_used(); - /** Retrieve the total amount of space of this storage element */ - sg_size_t size(); - - /* TODO: missing API: + /** Retrieve a Storage by its name. It must exist in the platform file */ + static Storage &byName(const char* name); + const char *name(); + sg_size_t sizeFree(); + sg_size_t sizeUsed(); + /** Retrieve the total amount of space of this storage element */ + sg_size_t size(); + + /* TODO: missing API: XBT_PUBLIC(xbt_dict_t) MSG_storage_get_properties(msg_storage_t storage); XBT_PUBLIC(void) MSG_storage_set_property_value(msg_storage_t storage, const char *name, char *value,void_f_pvoid_t free_ctn); XBT_PUBLIC(const char *)MSG_storage_get_property_value(msg_storage_t storage, const char *name); @@ -35,21 +39,20 @@ XBT_PUBLIC(xbt_dynar_t) MSG_storages_as_dynar(void); XBT_PUBLIC(xbt_dict_t) MSG_storage_get_content(msg_storage_t storage); XBT_PUBLIC(msg_error_t) MSG_storage_file_move(msg_file_t fd, msg_host_t dest, char* mount, char* fullname); XBT_PUBLIC(const char *) MSG_storage_get_host(msg_storage_t storage); - */ + */ protected: - smx_storage_t inferior(); -private: - static boost::unordered_map *storages; - std::string p_name; - smx_storage_t p_inferior; - + smx_storage_t inferior(); public: - void set_userdata(void *data) {p_userdata = data;} - void *userdata() {return p_userdata;} + void setUserdata(void *data) {userdata_ = data;} + void *userdata() {return userdata_;} + private: - void *p_userdata = NULL; + static boost::unordered_map *storages_; + std::string name_; + smx_storage_t pimpl_ = nullptr; + void *userdata_ = nullptr; }; } /* namespace s4u */