+ /** @brief Get the set of [actions](@ref Action) in *ready* state */
+ virtual ActionList* getReadyActionSet() {return readyActionSet_;}
+
+ /** @brief Get the set of [actions](@ref Action) in *running* state */
+ virtual ActionList* getRunningActionSet() {return runningActionSet_;}
+
+ /** @brief Get the set of [actions](@ref Action) in *failed* state */
+ virtual ActionList* getFailedActionSet() {return failedActionSet_;}
+
+ /** @brief Get the set of [actions](@ref Action) in *done* state */
+ virtual ActionList* getDoneActionSet() {return doneActionSet_;}
+
+ /** @brief Get the set of modified [actions](@ref Action) */
+ virtual ActionLmmListPtr getModifiedSet() {return modifiedSet_;}
+
+ /** @brief Get the maxmin system of the current Model */
+ lmm_system_t getMaxminSystem() {return maxminSystem_;}
+
+ /**
+ * @brief Get the update mechanism of the current Model
+ * @see e_UM_t
+ */
+ e_UM_t getUpdateMechanism() {return updateMechanism_;}
+
+ /** @brief Get Action heap */
+ xbt_heap_t getActionHeap() {return actionHeap_;}
+
+ /**
+ * @brief Share the resources between the actions
+ *
+ * @param now The current time of the simulation
+ * @return The delta of time till the next action will finish
+ */
+ virtual double next_occuring_event(double now);
+ virtual double next_occuring_event_lazy(double now);
+ virtual double next_occuring_event_full(double now);
+ double shareResourcesMaxMin(ActionList* running_actions,
+ lmm_system_t sys, void (*solve) (lmm_system_t));
+
+ /**
+ * @brief Update action to the current time
+ *
+ * @param now The current time of the simulation
+ * @param delta The delta of time since the last update
+ */
+ virtual void updateActionsState(double now, double delta);
+ virtual void updateActionsStateLazy(double now, double delta);
+ virtual void updateActionsStateFull(double now, double delta);
+
+ /** @brief Returns whether this model have an idempotent shareResource()
+ *
+ * The only model that is not is NS3: computing the next timestamp moves the model up to that point,
+ * so we need to call it only when the next timestamp of other sources is computed.
+ */
+ virtual bool next_occuring_event_isIdempotent()=0;