Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branches 'master' and 'master' of github.com:simgrid/simgrid
[simgrid.git] / include / simgrid / s4u / Activity.hpp
index 222c932..b85daaa 100644 (file)
@@ -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 <stdlib.h>
-#include <xbt/base.h>
-#include <xbt/misc.h>
-
 #include <simgrid/s4u/forward.hpp>
-#include "simgrid/forward.h"
+#include <simgrid/forward.h>
 
-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,11 +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();
 
 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()
@@ -64,7 +61,7 @@ public:
   void *getUserData() { return userData_; }
 
 private:
-  simgrid::simix::Synchro *pimpl_ = nullptr;
+  simgrid::kernel::activity::ActivityImpl *pimpl_ = nullptr;
   e_s4u_activity_state_t state_ = inited;
   double remains_ = 0;
   void *userData_ = nullptr;