SpikeScheduler Class Reference

Abstract class on which all spike schedulers are built. More...

#include <SpikeScheduler.h>

Inheritance diagram for SpikeScheduler:

Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~SpikeScheduler ()
 Constructor.
virtual void scheduleSpike (local_objectid_t senderid, float offsetFraction, engineid_t engine=0)=0
 Function to be called if an object wants to send a spike.
virtual void deliverSpikes (SpikeReceiverList &listActiveSynapses, engineid_t engine, double time, int stepOffset=0)=0
 Function to be called to deliver all incoming spikes to their corresponding targets.
virtual void reset ()=0
 Must be called if simulation is reset.
virtual void advance (engineid_t engine=0)=0
 Inform the spike scheduler that the engine has moved to the next timestep.
virtual void nextCycle ()=0
 Inform the spike scheduler that the engine has moved to the next cycle (several steps = minDelay).


Detailed Description

Abstract class on which all spike schedulers are built.

Definition at line 8 of file SpikeScheduler.h.


Constructor & Destructor Documentation

virtual SpikeScheduler::~SpikeScheduler (  )  [inline, virtual]

Constructor.

Destructor

Definition at line 16 of file SpikeScheduler.h.


Member Function Documentation

virtual void SpikeScheduler::scheduleSpike ( local_objectid_t  senderid,
float  offsetFraction,
engineid_t  engine = 0 
) [pure virtual]

Function to be called if an object wants to send a spike.

Parameters:
senderid engine local ID of the spike generating sim element
offsetFraction fraction of the time step at which the spike occured.
engine node local ID of the calling simulation engine
The exact time ts of a spike is ts = t + offsetFraction * dt where t is the current simulation time (time at begin of a step) and dt is the simulation step width.

Implemented in DistributedSpikeScheduler, MultiThreadSpikeScheduler, and SingleThreadSpikeScheduler.

Referenced by DistributedSpikeScheduler::scheduleSpike(), and SpikeOutputPort::setSpikeByOffsetFraction().

virtual void SpikeScheduler::deliverSpikes ( SpikeReceiverList listActiveSynapses,
engineid_t  engine,
double  time,
int  stepOffset = 0 
) [pure virtual]

Function to be called to deliver all incoming spikes to their corresponding targets.

Parameters:
listActiveSynapses If a call to the spike handler function returns true the corresponding object is appended to this list.
engine ID of the calling engine
time The current simulation time
stepOffset Actually the spikes scheduled for currentStep + stepOffset are delivered

Implemented in DistributedSpikeScheduler, MultiThreadSpikeScheduler, and SingleThreadSpikeScheduler.

Referenced by SingleThreadSimEngine::advance(), and DistributedSpikeScheduler::deliverSpikes().

virtual void SpikeScheduler::reset (  )  [pure virtual]

Must be called if simulation is reset.

Parameters:
maxDelay Maximum synaptic delay (in time steps) which the spike scheduler can handle during the following simulation
minDelay Minimum synaptic delay (in time steps)

Implemented in DistributedSpikeScheduler, MultiThreadSpikeScheduler, and SingleThreadSpikeScheduler.

Referenced by DistributedSpikeScheduler::reset().

virtual void SpikeScheduler::advance ( engineid_t  engine = 0  )  [pure virtual]

Inform the spike scheduler that the engine has moved to the next timestep.

Implemented in DistributedSpikeScheduler, MultiThreadSpikeScheduler, and SingleThreadSpikeScheduler.

Referenced by SingleThreadSimEngine::advance(), and DistributedSpikeScheduler::advance().

virtual void SpikeScheduler::nextCycle (  )  [pure virtual]

Inform the spike scheduler that the engine has moved to the next cycle (several steps = minDelay).

Implemented in DistributedSpikeScheduler, MultiThreadSpikeScheduler, and SingleThreadSpikeScheduler.

Referenced by SingleThreadSimEngine::advanceOneFullCycle(), MultiThreadSimEngine::finalizeCycle(), and DistributedSpikeScheduler::nextCycle().


The documentation for this class was generated from the following file:

Generated on Wed Jul 9 16:34:55 2008 for PCSIM by  doxygen 1.5.5