00001 #ifndef PLResetKernelSpikeResponse_H_
00002 #define PLResetKernelSpikeResponse_H_
00003
00004 #include "EvSimObject.h"
00005 #include "DirectEventSender.h"
00006 #include "SharedArray.h"
00007 #include "SharedArrayTypes.h"
00008 #include "KernelSpikeResponseBase.h"
00009 #include "EvSimObjectTypeUtils.h"
00010
00012
00023 class PLResetKernelSpikeResponse : public KernelSpikeResponseBase {
00024
00025 EV_SIM_OBJECT( PLResetKernelSpikeResponse )
00026
00027 public:
00029
00032 PLResetKernelSpikeResponse() {};
00033
00035
00039 PLResetKernelSpikeResponse(const SharedArray<double> &resp_shape_amplitudes,
00040 const SharedArray<double> &resp_shape_timepoints)
00041 : KernelSpikeResponseBase(resp_shape_amplitudes, resp_shape_timepoints)
00042 {}
00043
00044 virtual ~PLResetKernelSpikeResponse() {};
00045
00046 virtual void eventHit(SimContext & sim_info, Time time, port_id_t port);
00047
00048 virtual void updateState(SimContext &sim_info, Time time, update_id_t upd_id);
00049
00050 virtual double getSlope() { return slope; };
00051
00052 virtual void reset(SimContext &sim_ctxt)
00053 {
00054 KernelSpikeResponseBase::reset( sim_ctxt );
00055 slope = 0;
00056 cur_time = 0;
00057 };
00058
00059 protected:
00060 double slope;
00061 Time cur_time;
00062 };
00063
00064 #endif
00065