Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s4u::Host->getLoad() returns the achieved speed in flops/s
[simgrid.git] / include / simgrid / s4u / Activity.hpp
index 67fcbd5..bdd1183 100644 (file)
@@ -9,7 +9,7 @@
 #include <simgrid/s4u/forward.hpp>
 #include <simgrid/forward.h>
 
-typedef enum { inited = 0, started, canceled, errored, finished } e_s4u_activity_state_t;
+enum e_s4u_activity_state_t { inited = 0, started, canceled, errored, finished };
 
 namespace simgrid {
 namespace s4u {
@@ -20,8 +20,11 @@ namespace s4u {
  */
 XBT_PUBLIC_CLASS Activity {
   friend Comm;
-  friend void intrusive_ptr_release(Comm * c);
-  friend void intrusive_ptr_add_ref(Comm * c);
+  friend XBT_PUBLIC(void) intrusive_ptr_release(Comm * c);
+  friend XBT_PUBLIC(void) intrusive_ptr_add_ref(Comm * c);
+  friend Exec;
+  friend XBT_PUBLIC(void) intrusive_ptr_release(Exec * e);
+  friend XBT_PUBLIC(void) intrusive_ptr_add_ref(Exec * e);
 
 protected:
   Activity()  = default;
@@ -49,11 +52,11 @@ public:
   e_s4u_activity_state_t getState() {return state_;}
 
   /** Get the remaining amount of work that this Activity entails. When it's 0, it's done. */
-  size_t getRemains();
+  virtual double getRemains();
   /** Set the [remaining] amount of work that this Activity will entail
    *
    * It is forbidden to change the amount of work once the Activity is started */
-  void setRemains(size_t remains);
+  void setRemains(double remains);
 
   /** Put some user data onto the Activity */
   void setUserData(void *data) {userData_=data;}
@@ -63,7 +66,7 @@ public:
 private:
   simgrid::kernel::activity::ActivityImplPtr pimpl_ = nullptr;
   e_s4u_activity_state_t state_ = inited;
-  size_t remains_                                   = 0;
+  double remains_ = 0;
   void *userData_ = nullptr;
 }; // class