#ifndef RewardGeneratorAdder_H_
#define RewardGeneratorAdder_H_
#include "SimObject.h"
#include "SpikeSender.h"
class RewardGeneratorAdder : public SimObject, public SingleOutputSpikeSender
{
SIMOBJECT( RewardGeneratorAdder, AdvancePhase::One )
public:
RewardGeneratorAdder();
virtual ~RewardGeneratorAdder();
virtual int reset(double dt);
virtual int advance( AdvanceInfo const& );
virtual int spikeHit( spikeport_t port, SpikeEvent const& spike );
virtual double getAnalogOutput(analog_port_id_t port = 0) const;
virtual void setAnalogInput(double value, analog_port_id_t port = 0);
virtual int nSpikeInputPorts() const;
virtual int nAnalogOutputPorts() const;
virtual int nAnalogInputPorts() const;
virtual PortType outputPortType(port_t p) const;
virtual PortType inputPortType(port_t p) const;
bool isActive;
protected:
double reward;
double rateSum;
};
#endif /*RewardGeneratorAdder_H_*/