SimObject.h File Reference

#include "SpikeEvent.h"
#include "SimObjectCloneFactory.h"
#include "ScalarField.h"
#include "FieldRegistry.h"
#include "SimObjectInformation.h"
#include "AdvancePhase.h"
#include "AdvanceInfo.h"
#include <iostream>
#include <vector>
#include <limits>
#include <boost/shared_ptr.hpp>
#include "RandomEngine.h"

Include dependency graph for SimObject.h:

Go to the source code of this file.

Classes

class  SimObject
 Base class for all objects to simulate. More...
class  SimObject::ID
 Class containing all the id's necessary to uniquely identify a simulation object. More...
class  SimObject::BlockAllocator
 Class for memory management of SimObjects. More...

Defines

#define ADVANCEFLAG_HASSPIKED   1
 Bit mask for the return value of SimObject::advance().
#define ADVANCEFLAG_DEACTIVATE   2
 Bit mask for the return value of SimObject::advance().
#define SPIKEHITFLAG_ACTIVATE   1
 Bit mask for the return value of SimObject::spikeHit().
#define RESETFLAG_ACTIVATE   1
 Bit mask for the return value of SimObject::resez().
#define SIMOBJECT(T, A)
 Macro which must be called for a an implementation of a simulation object.

Typedefs

typedef std::vector< SimObject * > SpikeReceiverList
 Used for the collection of currently active spike driven objects.

Functions

ostream & operator<< (ostream &s, const SimObject::ID &id)
 Output operator for SimObject::ID.


Define Documentation

#define ADVANCEFLAG_DEACTIVATE   2

Bit mask for the return value of SimObject::advance().

ADVANCEFLAG_DEACTIVATE & a->advance() > 0 indicates that the advancable object need not to be advanced during the next time steps.

Definition at line 36 of file SimObject.h.

Referenced by SimpleScalingSpikingSynapse::advance(), GenericDAModulatedSTDPSynapse< BaseSyn >::advance(), EvLifNeuron::advance(), SingleThreadSimEngine::advance(), and FiniteSpikeResponse::advanceReturn().

#define ADVANCEFLAG_HASSPIKED   1

Bit mask for the return value of SimObject::advance().

ADVANCEFLAG_HASSPIKED & a->advance() > 0 indicates that the advancable object produced a spike during the call of advance

Definition at line 30 of file SimObject.h.

Referenced by SpikingInputNeuron::advance(), PoissonInputNeuron::advance(), ODESystemBasedSpikingNeuron::advance(), LinearPoissonNeuron::advance(), CbLifNeuron::advance(), LifNeuron::advance(), ExIzhiNeuronBase::advance(), IzhiNeuronBase::advance(), and aEIFNeuronBase::advance().

#define RESETFLAG_ACTIVATE   1

Bit mask for the return value of SimObject::resez().

RESETFLAG_ACTIVATE & a->advance() > 0 indicates that the object should be put into the list of active spike driven objects

Definition at line 48 of file SimObject.h.

Referenced by OUNoiseResponse::reset(), GenericHomeostaticSynapse< GenericDynamicSpikingSynapse< GenericCurrentBasedSpikingSynapse< ExponentialDecaySpikeResponse > > >::reset(), and SingleThreadSimEngine::reset().

#define SIMOBJECT ( T,
 ) 

Value:

private: \
        friend struct A; \
protected: \
        static object_type_t type; \
        friend class SimObjectRegistry; \
        virtual void setObjectTypeID(object_type_t tid) { type = tid; } \
        static SimObjectInformation *simObjectInfo; \
        virtual void setSimObjectInformation( SimObjectInformation *info ) { simObjectInfo = info; }; \
public: \
        virtual SimObjectInformation const*getSimObjectInformation(void) { return simObjectInfo; }; \
public: \
        typedef SimObjectCloneFactory<T> CloneFactory; \
        static T model; \
        virtual SimObject* create(void) const { T* o = new T(*this); o->deepCopy(this); return o; }; \
        virtual SimObject* create(RandomEngine *) const { T* o = new T(*this); o->deepCopy(this); return o; }; \
        virtual object_type_t getObjectTypeID(void) const { return type; }; \
        static object_type_t objectTypeID(void) { return type; }; \
        static void registerField( Field const& f ) { simObjectInfo->getFieldRegistry().registerField(f); }; \
        static void registerFields(void); \
        static void registerSimObject(void); \
Macro which must be called for a an implementation of a simulation object.

Definition at line 60 of file SimObject.h.

#define SPIKEHITFLAG_ACTIVATE   1

Bit mask for the return value of SimObject::spikeHit().

SPIKEHITFLAG_ACTIVATE & a->spikeHit( ... ) > 0 indicates that the spike receiving object should be moved to the active list

Definition at line 42 of file SimObject.h.

Referenced by SingleThreadSpikeScheduler::deliverSpikes(), MultiThreadSpikeScheduler::deliverSpikes(), GenericDAModulatedSTDPSynapse< BaseSyn >::spikeHit(), and FiniteSpikeResponse::spikeHitReturn().


Typedef Documentation

typedef std::vector< SimObject* > SpikeReceiverList

Used for the collection of currently active spike driven objects.

Definition at line 451 of file SimObject.h.


Function Documentation

ostream& operator<< ( ostream &  s,
const SimObject::ID id 
)

Output operator for SimObject::ID.

Definition at line 30 of file SimObject.cpp.


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