* under the terms of the license (GNU LGPL) which comes with this package. */
#include <xbt/base.h>
+#include <xbt/signal.hpp>
#include "surf_interface.hpp"
#include "src/surf/PropertyHolder.hpp"
#ifndef STORAGE_INTERFACE_HPP_
#define STORAGE_INTERFACE_HPP_
-extern xbt_dynar_t mount_list;
-
namespace simgrid {
namespace surf {
* @brief Callbacks handler which emit the callbacks after Storage creation *
* @details Callback functions have the following signature: `void(Storage*)`
*/
-XBT_PUBLIC_DATA(simgrid::surf::signal<void(simgrid::surf::Storage*)>) storageCreatedCallbacks;
+XBT_PUBLIC_DATA(simgrid::xbt::signal<void(simgrid::surf::Storage*)>) storageCreatedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emit the callbacks after Storage destruction *
* @details Callback functions have the following signature: `void(StoragePtr)`
*/
-XBT_PUBLIC_DATA(simgrid::surf::signal<void(simgrid::surf::Storage*)>) storageDestructedCallbacks;
+XBT_PUBLIC_DATA(simgrid::xbt::signal<void(simgrid::surf::Storage*)>) storageDestructedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emit the callbacks after Storage State changed *
- * @details Callback functions have the following signature: `void(StorageAction *action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
+ * @details Callback functions have the following signature: `void(StorageAction *action, int previouslyOn, int currentlyOn)`
*/
-XBT_PUBLIC_DATA(simgrid::surf::signal<void(simgrid::surf::Storage*, e_surf_resource_state_t, e_surf_resource_state_t)>) storageStateChangedCallbacks;
+XBT_PUBLIC_DATA(simgrid::xbt::signal<void(simgrid::surf::Storage*, int, int)>) storageStateChangedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emit the callbacks after StorageAction State changed *
* @details Callback functions have the following signature: `void(StorageAction *action, e_surf_action_state_t old, e_surf_action_state_t current)`
*/
-XBT_PUBLIC_DATA(simgrid::surf::signal<void(simgrid::surf::StorageAction*, e_surf_action_state_t, e_surf_action_state_t)>) storageActionStateChangedCallbacks;
+XBT_PUBLIC_DATA(simgrid::xbt::signal<void(simgrid::surf::StorageAction*, e_surf_action_state_t, e_surf_action_state_t)>) storageActionStateChangedCallbacks;
/*********
* Model *
xbt_dict_t properties,
const char *attach) = 0;
- bool shareResourcesIsIdempotent() {return true;}
+ bool next_occuring_event_isIdempotent() {return true;}
xbt_dynar_t p_storageList;
};
* @details A Storage represent a storage unit (e.g.: hard drive, usb key)
*/
class Storage : public simgrid::surf::Resource,
- public simgrid::surf::PropertyHolder {
+ public simgrid::surf::PropertyHolder {
public:
/**
* @brief Storage constructor
~Storage();
/** @brief Check if the Storage is used (if an action currently uses its resources) */
- bool isUsed();
+ bool isUsed() override;
- /**
- * @brief Update the state of the current Storage
- *
- * @param event_type [description]
- * @param value [description]
- * @param date [description]
- */
- void updateState(tmgr_trace_event_t event_type, double value, double date);
+ void apply_event(tmgr_trace_iterator_t event, double value) override;
- void setState(e_surf_resource_state_t state);
+ void turnOn() override;
+ void turnOff() override;
xbt_dict_t p_content;
char* p_contentType;