Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Hide a bit an internal method (make it protected)
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 23 May 2023 22:45:49 +0000 (00:45 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 23 May 2023 22:56:29 +0000 (00:56 +0200)
include/simgrid/s4u/Activity.hpp
include/simgrid/s4u/Comm.hpp
include/simgrid/s4u/Exec.hpp
include/simgrid/s4u/Io.hpp

index 86d137d..ffd66d6 100644 (file)
@@ -51,7 +51,6 @@ public:
   bool has_no_successor() const { return successors_.empty(); }
   const std::set<ActivityPtr>& get_dependencies() const { return dependencies_; }
   const std::vector<ActivityPtr>& get_successors() const { return successors_; }
-  virtual void fire_this_completion() const = 0;
 
 protected:
   Activity()  = default;
@@ -103,6 +102,8 @@ protected:
    * It is forbidden to change the amount of work once the Activity is started */
   Activity* set_remaining(double remains);
 
+  virtual void fire_this_completion() const = 0;
+
 private:
   static xbt::signal<void(Activity&)> on_veto;
   static xbt::signal<void(Activity const&)> on_suspend;
@@ -255,8 +256,10 @@ template <class AnyActivity> class Activity_T : public Activity {
   std::string name_             = "unnamed";
   std::string tracing_category_ = "";
 
-public:
+protected:
   inline static xbt::signal<void(AnyActivity const&)> on_completion;
+
+public:
   /*! Add a callback fired when the activity completes (either normally, cancelled or failed) */
   static void on_completion_cb(const std::function<void(AnyActivity const&)>& cb) { on_completion.connect(cb); }
 
index 5baa059..46f7b4e 100644 (file)
@@ -42,11 +42,13 @@ class XBT_PUBLIC Comm : public Activity_T<Comm> {
   static xbt::signal<void(Comm const&)> on_recv;
   static xbt::signal<void(Comm const&)> on_start;
 
+protected:
+  void fire_this_completion() const override { on_completion(*this); }
+
 public:
   static void on_send_cb(const std::function<void(Comm const&)>& cb) { on_send.connect(cb); }
   static void on_recv_cb(const std::function<void(Comm const&)>& cb) { on_recv.connect(cb); }
   static void on_start_cb(const std::function<void(Comm const&)>& cb) { on_start.connect(cb); }
-  void fire_this_completion() const override { on_completion(*this); }
 
   CommPtr set_copy_data_callback(const std::function<void(kernel::activity::CommImpl*, void*, size_t)>& callback);
   XBT_ATTRIB_DEPRECATED_v337("Please manifest if you actually need this function") static void copy_buffer_callback(
index 6d788ed..df0183f 100644 (file)
@@ -43,6 +43,7 @@ protected:
   void reset() const;
 
   static xbt::signal<void(Exec const&)> on_start;
+  void fire_this_completion() const override { on_completion(*this); }
 
 public:
 #ifndef DOXYGEN
@@ -51,7 +52,6 @@ public:
 #endif
   /*! Signal fired each time that an execution actually starts (no veto) */
   static void on_start_cb(const std::function<void(Exec const&)>& cb) { on_start.connect(cb); }
-  void fire_this_completion() const override { on_completion(*this); }
 
   static ExecPtr init();
 
index edee8ac..fbab9a8 100644 (file)
@@ -29,12 +29,12 @@ class XBT_PUBLIC Io : public Activity_T<Io> {
 protected:
   explicit Io(kernel::activity::IoImplPtr pimpl);
   Io* do_start() override;
+  void fire_this_completion() const override { on_completion(*this); }
 
 public:
   enum class OpType { READ, WRITE };
 
   static void on_start_cb(const std::function<void(Io const&)>& cb) { on_start.connect(cb); }
-  void fire_this_completion() const override { on_completion(*this); }
 
   static IoPtr init();
   /*! take a vector of s4u::IoPtr and return when one of them is finished.