#define SIMGRID_S4U_ACTIVITY_HPP
#include <simgrid/forward.h>
+#include <xbt/signal.hpp>
namespace simgrid {
namespace s4u {
* - Synchronization activities may possibly be connected to no action.
*/
class XBT_PUBLIC Activity {
- friend Comm;
+ friend simgrid::s4u::Comm;
friend XBT_PUBLIC void intrusive_ptr_release(Comm * c);
friend XBT_PUBLIC void intrusive_ptr_add_ref(Comm * c);
- friend Exec;
+ friend simgrid::s4u::Exec;
friend XBT_PUBLIC void intrusive_ptr_release(Exec * e);
friend XBT_PUBLIC void intrusive_ptr_add_ref(Exec * e);
+ friend simgrid::s4u::Io;
+ friend XBT_PUBLIC void intrusive_ptr_release(Io* i);
+ friend XBT_PUBLIC void intrusive_ptr_add_ref(Io* i);
protected:
Activity() = default;
* Raises: timeout exception.*/
virtual Activity* wait(double timeout) = 0;
/** Cancel that activity */
- //virtual void cancel();
+ virtual Activity* cancel() = 0;
/** Retrieve the current state of the activity */
Activity::State get_state() { return state_; }
private:
simgrid::kernel::activity::ActivityImplPtr pimpl_ = nullptr;
Activity::State state_ = Activity::State::INITED;
- double remains_ = 0;
+ double remains_ = 0;
void* user_data_ = nullptr;
}; // class