#define INCLUDE_SIMGRID_S4U_STORAGE_HPP_
#include <simgrid/forward.h>
+#include <simgrid/s4u/Io.hpp>
#include <xbt/Extendable.hpp>
#include <xbt/base.h>
#include <xbt/signal.hpp>
#include <unordered_map>
namespace simgrid {
-namespace xbt {
-extern template class XBT_PUBLIC Extendable<simgrid::s4u::Storage>;
-}
namespace s4u {
+#ifndef DOXYGEN
/** @deprecated Engine::get_all_storages() */
XBT_ATTRIB_DEPRECATED_v322("Please use Engine::get_all_storages()") XBT_PUBLIC void getStorageList(std::map<std::string, Storage*>* whereTo);
+#endif
+
+/** Storage represent the disk resources, usually associated to a given host */
class XBT_PUBLIC Storage : public simgrid::xbt::Extendable<Storage> {
- friend s4u::Engine;
- friend s4u::Io;
+ friend simgrid::s4u::Engine;
+ friend simgrid::s4u::Io;
friend simgrid::surf::StorageImpl;
public:
void set_data(void* data) { userdata_ = data; }
void* get_data() { return userdata_; }
- IoPtr io_init(sg_size_t size);
+ IoPtr io_init(sg_size_t size, s4u::Io::OpType type);
+ IoPtr read_async(sg_size_t size);
sg_size_t read(sg_size_t size);
+
+ IoPtr write_async(sg_size_t size);
sg_size_t write(sg_size_t size);
surf::StorageImpl* get_impl() { return pimpl_; }