X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0f12caebeefc7985a0586836248238e475258079..041733d27687138580274a397bb287da01c48b4c:/include/simgrid/s4u/Activity.hpp diff --git a/include/simgrid/s4u/Activity.hpp b/include/simgrid/s4u/Activity.hpp index 533a92d1f0..d0c8b548fc 100644 --- a/include/simgrid/s4u/Activity.hpp +++ b/include/simgrid/s4u/Activity.hpp @@ -1,5 +1,4 @@ -/* Copyright (c) 2006-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -7,18 +6,10 @@ #ifndef SIMGRID_S4U_ACTIVITY_HPP #define SIMGRID_S4U_ACTIVITY_HPP -#include -#include -#include - #include -#include "simgrid/forward.h" +#include -SG_BEGIN_DECL(); -typedef enum { - inited, started, finished -} e_s4u_activity_state_t; -SG_END_DECL(); +typedef enum { inited = 0, started, canceled, errored, finished } e_s4u_activity_state_t; namespace simgrid { namespace s4u { @@ -29,16 +20,17 @@ namespace s4u { */ XBT_PUBLIC_CLASS Activity { friend Comm; + friend void intrusive_ptr_release(Comm * c); + friend void intrusive_ptr_add_ref(Comm * c); + protected: - Activity(); - virtual ~Activity(); - -private: - simgrid::simix::Synchro *pimpl_ = NULL; + Activity() = default; + virtual ~Activity() = default; -private: - e_s4u_activity_state_t state_ = inited; public: + Activity(Activity const&) = delete; + Activity& operator=(Activity const&) = delete; + /** Starts a previously created activity. * * This function is optional: you can call wait() even if you didn't call start() @@ -56,9 +48,6 @@ public: /** Retrieve the current state of the activity */ e_s4u_activity_state_t getState() {return state_;} -private: - double remains_ = 0; -public: /** Get the remaining amount of work that this Activity entails. When it's 0, it's done. */ double getRemains(); /** Set the [remaining] amount of work that this Activity will entail @@ -66,13 +55,16 @@ public: * It is forbidden to change the amount of work once the Activity is started */ void setRemains(double remains); -private: - void *userData_ = NULL; -public: /** Put some user data onto the Activity */ void setUserData(void *data) {userData_=data;} /** Retrieve the user data of the Activity */ void *getUserData() { return userData_; } + +private: + simgrid::kernel::activity::ActivityImplPtr pimpl_ = nullptr; + e_s4u_activity_state_t state_ = inited; + double remains_ = 0; + void *userData_ = nullptr; }; // class }}; // Namespace simgrid::s4u