Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix aliased template parameter name
[simgrid.git] / src / surf / surf_interface.hpp
index 0c16aaf..1f2dba5 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2004-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2004-2016. 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. */
@@ -34,10 +33,10 @@ namespace surf {
   private:
     sigc::signal<R, P...> sig_;
   public:
-    template<class T> XBT_ALWAYS_INLINE
-    void connect(T&& slot)
+    template<class U> XBT_ALWAYS_INLINE
+    void connect(U&& slot)
     {
-      sig_.connect(std::forward<T>(slot));
+      sig_.connect(std::forward<U>(slot));
     }
     template<class Res, class... Args> XBT_ALWAYS_INLINE
     void connect(Res(*slot)(Args...))
@@ -251,28 +250,28 @@ public:
   /** @brief Get the state set in which the action is */
   ActionList* getStateSet() {return p_stateSet;};
 
-  s_xbt_swag_hookup_t p_stateHookup;
+  s_xbt_swag_hookup_t p_stateHookup = {NULL,NULL};
 
   simgrid::surf::Model *getModel() {return p_model;}
 
 protected:
   ActionList* p_stateSet;
-  double m_priority; /**< priority (1.0 by default) */
-  int    m_refcount;
+  double m_priority = 1.0; /**< priority (1.0 by default) */
+  int    m_refcount = 1;
   double m_remains; /**< How much of that cost remains to be done in the currently running task */
-  double m_maxDuration; /*< max_duration (may fluctuate until the task is completed) */
-  double m_finish; /**< finish time : this is modified during the run and fluctuates until the task is completed */
+  double m_maxDuration = NO_MAX_DURATION; /*< max_duration (may fluctuate until the task is completed) */
+  double m_finish = -1; /**< finish time : this is modified during the run and fluctuates until the task is completed */
 
 private:
   double m_start; /**< start time  */
-  char *p_category;               /**< tracing category for categorized resource utilization monitoring */
+  char *p_category = NULL;            /**< tracing category for categorized resource utilization monitoring */
 
   #ifdef HAVE_LATENCY_BOUND_TRACKING
   int m_latencyLimited;               /**< Set to 1 if is limited by latency, 0 otherwise */
   #endif
   double    m_cost;
   simgrid::surf::Model *p_model;
-  void *p_data; /**< for your convenience */
+  void *p_data = NULL; /**< for your convenience */
 
   /* LMM */
 public:
@@ -290,11 +289,11 @@ public:
 
 protected:
   lmm_variable_t p_variable;
-  double m_lastValue;
-  double m_lastUpdate;
-  int m_suspended;
+  double m_lastValue = 0;
+  double m_lastUpdate = 0;
+  int m_suspended = 0;
   int m_indexHeap;
-  enum heap_action_type m_hat;
+  enum heap_action_type m_hat = NOTSET;
 };
 
 typedef Action::ActionList ActionList;
@@ -378,7 +377,7 @@ public:
 
 protected:
   ActionLmmListPtr p_modifiedSet;
-  lmm_system_t p_maxminSystem;
+  lmm_system_t p_maxminSystem = nullptr;
   e_UM_t p_updateMechanism = UM_UNDEFINED;
   int m_selectiveUpdate;
   xbt_heap_t p_actionHeap;
@@ -415,8 +414,6 @@ namespace surf {
  */
 XBT_PUBLIC_CLASS Resource {
 public:
-  Resource();
-
   /**
    * @brief Constructor of non-LMM Resources
    *
@@ -434,16 +431,16 @@ public:
    */
   Resource(Model *model, const char *name, lmm_constraint_t constraint);
 
-  Resource(Model *model, const char *name, lmm_constraint_t constraint, e_surf_resource_state_t stateInit);
+  Resource(Model *model, const char *name, lmm_constraint_t constraint, int initiallyOn);
 
   /**
    * @brief Resource constructor
    *
    * @param model Model associated to this Resource
    * @param name The name of the Resource
-   * @param stateInit the initial state of the Resource
+   * @param initiallyOn the initial state of the Resource
    */
-  Resource(Model *model, const char *name, e_surf_resource_state_t stateInit);
+  Resource(Model *model, const char *name, int initiallyOn);
 
   virtual ~Resource();
 
@@ -467,29 +464,24 @@ public:
   virtual bool isUsed()=0;
 
   /** @brief Check if the current Resource is active */
-  bool isOn();
+  virtual bool isOn();
+  /** @brief Check if the current Resource is shut down */
+  virtual bool isOff();
   /** @brief Turn on the current Resource */
-  void turnOn();
+  virtual void turnOn();
   /** @brief Turn off the current Resource */
-  void turnOff();
-
-  /** @brief Get the [state](\ref e_surf_resource_state_t) of the current Resource */
-  virtual e_surf_resource_state_t getState();
-  /** @brief Set the [state](\ref e_surf_resource_state_t) of the current Resource */
-  virtual void setState(e_surf_resource_state_t state);
+  virtual void turnOff();
 
 private:
   const char *p_name;
   Model *p_model;
-  bool m_running;
-  e_surf_resource_state_t m_stateCurrent;
-
+  bool m_isOn;
 
 public: /* LMM */
   /** @brief Get the lmm constraint associated to this Resource if it is part of a LMM component */
   lmm_constraint_t getConstraint();
 protected:
-  lmm_constraint_t p_constraint;
+  lmm_constraint_t p_constraint = nullptr;
 };
 
 }