1 /* Copyright (c) 2006-2015. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #ifndef INCLUDE_SIMGRID_S4U_STORAGE_HPP_
8 #define INCLUDE_SIMGRID_S4U_STORAGE_HPP_
10 #include <boost/unordered_map.hpp>
12 #include "simgrid/simix.h"
13 #include <simgrid/s4u/forward.hpp>
18 XBT_PUBLIC_CLASS Storage {
20 Storage(std::string name, smx_storage_t inferior);
23 /** Retrieve a Storage by its name. It must exist in the platform file */
24 static Storage &byName(const char* name);
28 /** Retrieve the total amount of space of this storage element */
32 XBT_PUBLIC(xbt_dict_t) MSG_storage_get_properties(msg_storage_t storage);
33 XBT_PUBLIC(void) MSG_storage_set_property_value(msg_storage_t storage, const char *name, char *value,void_f_pvoid_t free_ctn);
34 XBT_PUBLIC(const char *)MSG_storage_get_property_value(msg_storage_t storage, const char *name);
35 XBT_PUBLIC(xbt_dynar_t) MSG_storages_as_dynar(void);
36 XBT_PUBLIC(xbt_dict_t) MSG_storage_get_content(msg_storage_t storage);
37 XBT_PUBLIC(msg_error_t) MSG_storage_file_move(msg_file_t fd, msg_host_t dest, char* mount, char* fullname);
38 XBT_PUBLIC(const char *) MSG_storage_get_host(msg_storage_t storage);
41 smx_storage_t inferior();
45 static boost::unordered_map<std::string, Storage *> *storages_;
51 void setUserdata(void *data) {userdata_ = data;}
52 void *userdata() {return userdata_;}
54 void *userdata_ = NULL;
59 } /* namespace simgrid */
61 #endif /* INCLUDE_SIMGRID_S4U_STORAGE_HPP_ */