Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implement I/O as asynchronous activities
[simgrid.git] / src / kernel / activity / CommImpl.hpp
index bbf350c..4f00dc0 100644 (file)
@@ -1,22 +1,21 @@
-/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2018. 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. */
 
-#ifndef SIMIX_SYNCHRO_COMM_HPP
-#define SIMIX_SYNCHRO_COMM_HPP
+#ifndef SIMGRID_KERNEL_ACTIVITY_COMM_HPP
+#define SIMGRID_KERNEL_ACTIVITY_COMM_HPP
 
 #include "src/kernel/activity/ActivityImpl.hpp"
-#include "surf/surf.h"
+#include "surf/surf.hpp"
 
-typedef enum { SIMIX_COMM_SEND, SIMIX_COMM_RECEIVE, SIMIX_COMM_READY, SIMIX_COMM_DONE } e_smx_comm_type_t;
+enum e_smx_comm_type_t { SIMIX_COMM_SEND, SIMIX_COMM_RECEIVE, SIMIX_COMM_READY, SIMIX_COMM_DONE };
 
 namespace simgrid {
 namespace kernel {
 namespace activity {
 
-XBT_PUBLIC_CLASS CommImpl : public ActivityImpl
-{
+class XBT_PUBLIC CommImpl : public ActivityImpl {
   ~CommImpl() override;
 
 public:
@@ -39,15 +38,16 @@ public:
   bool detached = false; /* If detached or not */
 
   void (*clean_fun)(void*) = nullptr; /* Function to clean the detached src_buf if something goes wrong */
-  int (*match_fun)(void*, void*, smx_activity_t) = nullptr; /* Filter function used by the other side. It is used when
-                                      looking if a given communication matches my needs. For that, myself must match the
-                                      expectations of the other side, too. See  */
+  int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*) =
+      nullptr; /* Filter function used by the other side. It is used when
+looking if a given communication matches my needs. For that, myself must match the
+expectations of the other side, too. See  */
   void (*copy_data_fun)(smx_activity_t, void*, size_t) = nullptr;
 
   /* Surf action data */
-  surf_action_t surf_comm   = nullptr; /* The Surf communication action encapsulated */
-  surf_action_t src_timeout = nullptr; /* Surf's actions to instrument the timeouts */
-  surf_action_t dst_timeout = nullptr; /* Surf's actions to instrument the timeouts */
+  simgrid::kernel::resource::Action* surfAction_ = nullptr; /* The Surf communication action encapsulated */
+  simgrid::kernel::resource::Action* src_timeout = nullptr; /* Surf's actions to instrument the timeouts */
+  simgrid::kernel::resource::Action* dst_timeout = nullptr; /* Surf's actions to instrument the timeouts */
   smx_actor_t src_proc      = nullptr;
   smx_actor_t dst_proc      = nullptr;
   double rate               = 0.0;