/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.11
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */

#ifndef SWIG_Surf_WRAP_H_
#define SWIG_Surf_WRAP_H_

class SwigDirector_Plugin : public Plugin, public Swig::Director {

public:
    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);
    SwigDirector_Plugin(JNIEnv *jenv);
    virtual ~SwigDirector_Plugin();
    virtual void cpuCreatedCallback(Cpu *cpu);
    virtual void cpuDestructedCallback(Cpu *cpu);
    virtual void cpuStateChangedCallback(Cpu *cpu, e_surf_resource_state_t arg1, e_surf_resource_state_t arg2);
    virtual void cpuActionStateChangedCallback(CpuAction *action, e_surf_action_state_t arg1, e_surf_action_state_t arg2);
    virtual void networkLinkCreatedCallback(NetworkLink *link);
    virtual void networkLinkDestructedCallback(NetworkLink *link);
    virtual void networkLinkStateChangedCallback(NetworkLink *link, e_surf_resource_state_t arg1, e_surf_resource_state_t arg2);
    virtual void networkActionStateChangedCallback(NetworkAction *action, e_surf_action_state_t old, e_surf_action_state_t cur);
    virtual void networkCommunicateCallback(NetworkAction *action, RoutingEdge *src, RoutingEdge *dst, double size, double rate);
public:
    bool swig_overrides(int n) {
      return (n < 9 ? swig_override[n] : false);
    }
protected:
    bool swig_override[9];
};

class SwigDirector_CpuModel : public CpuModel, public Swig::Director {

public:
    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);
    SwigDirector_CpuModel(JNIEnv *jenv, char const *name);
    virtual double shareResources(double now);
    virtual double shareResourcesLazy(double now);
    virtual double shareResourcesFull(double now);
    virtual void updateActionsState(double now, double delta);
    virtual void updateActionsStateLazy(double now, double delta);
    virtual void updateActionsStateFull(double now, double delta);
    virtual ActionList *getRunningActionSet();
    virtual void addTraces();
    virtual ~SwigDirector_CpuModel();
    virtual Cpu *createCpu(char const *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties);
public:
    bool swig_overrides(int n) {
      return (n < 9 ? swig_override[n] : false);
    }
protected:
    bool swig_override[9];
};

class SwigDirector_Cpu : public Cpu, public Swig::Director {

public:
    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);
    SwigDirector_Cpu(JNIEnv *jenv, Model *model, char const *name, s_xbt_dict *props, lmm_constraint *constraint, int core, double powerPeak, double powerScale);
    SwigDirector_Cpu(JNIEnv *jenv, Model *model, char const *name, s_xbt_dict *props, int core, double powerPeak, double powerScale);
    virtual bool isUsed();
    virtual e_surf_resource_state_t getState();
    virtual void updateState(tmgr_trace_event *event_type, double value, double date);
    virtual ~SwigDirector_Cpu();
    virtual double getCurrentPowerPeak();
    virtual CpuAction *execute(double size);
    virtual CpuAction *sleep(double duration);
    virtual int getCore();
    virtual double getSpeed(double load);
    virtual double getAvailableSpeed();
    virtual double getPowerPeakAt(int pstate_index);
    virtual int getNbPstates();
    virtual void setPowerPeakAt(int pstate_index);
public:
    bool swig_overrides(int n) {
      return (n < 12 ? swig_override[n] : false);
    }
protected:
    bool swig_override[12];
};

class SwigDirector_CpuAction : public CpuAction, public Swig::Director {

public:
    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);
    SwigDirector_CpuAction(JNIEnv *jenv, Model *model, double cost, bool failed);
    virtual ~SwigDirector_CpuAction();
    virtual double getRemains();
    virtual void setPriority(double priority);
    virtual void setState(e_surf_action_state_t state);
public:
    bool swig_overrides(int n) {
      return (n < 3 ? swig_override[n] : false);
    }
protected:
    bool swig_override[3];
};


#endif
