00001 #ifndef BIASWAKESLEEPPLASTICITYMECHANISM_H_
00002 #define BIASWAKESLEEPPLASTICITYMECHANISM_H_
00003
00004 #include "EvSimObject.h"
00005 #include "EvSimObjectTypeUtils.h"
00006
00007 class BiasWakeSleepPlasticityMechanism : public EvSimObject {
00008
00009 EV_SIM_OBJECT( BiasWakeSleepPlasticityMechanism )
00010
00011 public:
00012 BiasWakeSleepPlasticityMechanism(float eta = 1e-5,
00013 short sign = 1,
00014 bool isActive = true,
00015 float eta_ratio = 1) {
00016 this->eta = eta;
00017 this->eta_ratio = eta_ratio;
00018 this->isActive = isActive;
00019 this->sign = sign;
00020 }
00021
00022 float eta;
00023
00024 float eta_ratio;
00025
00026 bool isActive;
00027
00028 short sign;
00029
00030 virtual ~BiasWakeSleepPlasticityMechanism();
00031
00032 virtual void postMountAsMountedObj(EvSimNetwork &net, EvSimObject::ID self, EvSimObject::ID mountpoint);
00033
00034 virtual void reset(SimContext &sim_ctxt);
00035
00036 virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00037
00038 protected:
00039 float *bias_ptr;
00040 };
00041
00042 #endif