SingleThreadSpikeScheduler Class Reference

Class implementing the SpikeScheduler abstract class for the single threaded case. More...

#include <SingleThreadSpikeScheduler.h>

Inheritance diagram for SingleThreadSpikeScheduler:

Inheritance graph
[legend]
Collaboration diagram for SingleThreadSpikeScheduler:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 SingleThreadSpikeScheduler (LocalDelayMap &dm, SpikeTargetGroupPool &srg, PropagatedSpikeBuffer &sb, SimParameter &sp)
 SingleThreadSpikeScheduler (const SingleThreadSpikeScheduler &src)
SingleThreadSpikeScheduleroperator= (const SingleThreadSpikeScheduler &src)
virtual ~SingleThreadSpikeScheduler ()
virtual void scheduleSpike (local_objectid_t senderid, float offsetFraction, engineid_t engine=0)
 Function to be called if an object wants to send a spike.
virtual void deliverSpikes (SpikeReceiverList &listActiveSynapses, engineid_t engine, double simTime, int stepOffset=0)
 Function to be called to deliver all incoming spikes to their corresponding targets.
virtual void reset ()
 Must be called if simulation is reset.
virtual void advance (engineid_t engine=0)
 Inform the spike scheduler that the engine has moved to the next timestep.
virtual void nextCycle ()
 Inform the spike scheduler that the engine has moved to the next cycle (several steps = minDelay).

Protected Attributes

SimParametersimParam
LocalDelayMapdelayMap
SpikeTargetGroupPooltgtGrpPool
PropagatedSpikeBufferspikeBuffer


Detailed Description

Class implementing the SpikeScheduler abstract class for the single threaded case.

Definition at line 11 of file SingleThreadSpikeScheduler.h.


Constructor & Destructor Documentation

SingleThreadSpikeScheduler::SingleThreadSpikeScheduler ( LocalDelayMap dm,
SpikeTargetGroupPool srg,
PropagatedSpikeBuffer sb,
SimParameter sp 
) [inline]

Definition at line 15 of file SingleThreadSpikeScheduler.h.

SingleThreadSpikeScheduler::SingleThreadSpikeScheduler ( const SingleThreadSpikeScheduler src  )  [inline]

Definition at line 19 of file SingleThreadSpikeScheduler.h.

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

Definition at line 33 of file SingleThreadSpikeScheduler.h.


Member Function Documentation

SingleThreadSpikeScheduler& SingleThreadSpikeScheduler::operator= ( const SingleThreadSpikeScheduler src  )  [inline]

Definition at line 24 of file SingleThreadSpikeScheduler.h.

References delayMap, simParam, spikeBuffer, and tgtGrpPool.

void SingleThreadSpikeScheduler::scheduleSpike ( local_objectid_t  senderid,
float  offsetFraction,
engineid_t  engine = 0 
) [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.

Implements SpikeScheduler.

Definition at line 9 of file SingleThreadSpikeScheduler.cpp.

References LocalDelayMap::beginDelays(), delayMap, LocalDelayMap::endDelays(), PropagatedSpikeBuffer::scheduleSpikeTargetGroup(), and spikeBuffer.

Here is the call graph for this function:

void SingleThreadSpikeScheduler::deliverSpikes ( SpikeReceiverList listActiveSynapses,
engineid_t  engine,
double  time,
int  stepOffset = 0 
) [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

Implements SpikeScheduler.

Definition at line 22 of file SingleThreadSpikeScheduler.cpp.

References SpikeTargetGroupPool::beginSpikeTargetGroup(), PropagatedSpikeBuffer::beginSpikeTargetGroups(), SpikeEvent::delta, SimParameter::dt, SpikeTargetGroupPool::endSpikeTargetGroup(), PropagatedSpikeBuffer::endSpikeTargetGroups(), SimObject::getChainedObject(), Time::in_sec(), simParam, spikeBuffer, SPIKEHITFLAG_ACTIVATE, tgtGrpPool, and SimObject::toBeActivated().

Here is the call graph for this function:

virtual void SingleThreadSpikeScheduler::reset (  )  [inline, 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)

Implements SpikeScheduler.

Definition at line 39 of file SingleThreadSpikeScheduler.h.

References SimParameter::dt, Time::in_steps(), SimParameter::maxDelay, SimParameter::minDelay, PropagatedSpikeBuffer::reset(), simParam, and spikeBuffer.

Referenced by SingleThreadNetwork::_reset_().

Here is the call graph for this function:

virtual void SingleThreadSpikeScheduler::advance ( engineid_t  engine = 0  )  [inline, virtual]

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

Implements SpikeScheduler.

Definition at line 44 of file SingleThreadSpikeScheduler.h.

References PropagatedSpikeBuffer::nextTimeStep(), and spikeBuffer.

Here is the call graph for this function:

virtual void SingleThreadSpikeScheduler::nextCycle (  )  [inline, virtual]

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

Implements SpikeScheduler.

Definition at line 49 of file SingleThreadSpikeScheduler.h.


Member Data Documentation

Definition at line 53 of file SingleThreadSpikeScheduler.h.

Referenced by deliverSpikes(), operator=(), and reset().

Definition at line 54 of file SingleThreadSpikeScheduler.h.

Referenced by operator=(), and scheduleSpike().

Definition at line 55 of file SingleThreadSpikeScheduler.h.

Referenced by deliverSpikes(), and operator=().

Definition at line 56 of file SingleThreadSpikeScheduler.h.

Referenced by advance(), deliverSpikes(), operator=(), reset(), and scheduleSpike().


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

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