#include <xbt.h>
#include <string>
#include <vector>
+#include <iostream>
#include <memory>
-#include <boost/smart_ptr.hpp>
#include <boost/function.hpp>
-#include <boost/functional/factory.hpp>
-#include <boost/bind.hpp>
#include "surf/trace_mgr.h"
#include "xbt/lib.h"
#include "surf/surf_routing.h"
extern "C" {
#endif
XBT_PUBLIC(double) surf_get_clock(void);
-XBT_PUBLIC(void) surf_watched_hosts(void);
#ifdef __cplusplus
}
#endif
virtual double shareResourcesLazy(double now);
virtual double shareResourcesFull(double now);
double shareResourcesMaxMin(xbt_swag_t running_actions,
- size_t offset,
lmm_system_t sys,
void (*solve) (lmm_system_t));
virtual void updateActionsState(double now, double delta);
void turnOff();
void setName(string name);
const char *getName();
- xbt_dict_t getProperties();
+ virtual xbt_dict_t getProperties();
ModelPtr getModel() {return p_model;};
- e_surf_resource_state_t getState();
+ virtual e_surf_resource_state_t getState();
+ virtual void setState(e_surf_resource_state_t state);
void printModel() { std::cout << p_model->getName() << "<<plop"<<std::endl;};
void *p_resource;
const char *m_name;
virtual ~Action();
s_xbt_swag_hookup_t p_stateHookup;
+
e_surf_action_state_t getState(); /**< get the state*/
- void setState(e_surf_action_state_t state); /**< Change state*/
+ virtual void setState(e_surf_action_state_t state); /**< Change state*/
double getStartTime(); /**< Return the start time of an action */
double getFinishTime(); /**< Return the finish time of an action */
void setData(void* data);
xbt_swag_t p_stateSet;
double m_priority; /**< priority (1.0 by default) */
+ double m_bound; /**< the capping of the CPU use */
bool m_failed;
double m_start; /**< start time */
double m_finish; /**< finish time : this is modified during the run and fluctuates until the task is completed */
void updateResourceState(void *id, tmgr_trace_event_t event_type,
double value, double time);
- lmm_system_t p_maxminSystem;
xbt_swag_t p_modifiedSet;
xbt_heap_t p_actionHeap;
int m_selectiveUpdate;
class ActionLmm: virtual public Action {
public:
- ActionLmm() : m_suspended(false) {};
- ActionLmm(ModelPtr model, double cost, bool failed) : m_suspended(false) {};
+ ActionLmm() : m_suspended(false) {
+ p_actionListHookup.prev = 0;
+ p_actionListHookup.next = 0;
+ m_lastUpdate = 0;
+ m_lastValue = 0;
+ };
+ ActionLmm(ModelPtr /*model*/, double /*cost*/, bool /*failed*/) : m_suspended(false) {
+ p_actionListHookup.prev = 0;
+ p_actionListHookup.next = 0;
+ m_lastUpdate = 0;
+ m_lastValue = 0;
+ };
virtual void updateRemainingLazy(double now);
void heapInsert(xbt_heap_t heap, double key, enum heap_action_type hat);
void gapRemove();
lmm_variable_t p_variable;
- //bool m_suspended;
s_xbt_swag_hookup_t p_actionListHookup;
int m_indexHeap;
double m_lastUpdate;