diff options
Diffstat (limited to 'code/core/spike.cpp')
-rw-r--r-- | code/core/spike.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/code/core/spike.cpp b/code/core/spike.cpp new file mode 100644 index 0000000..7b12c18 --- /dev/null +++ b/code/core/spike.cpp @@ -0,0 +1,28 @@ +#include "spike.h" + +static SpikeMUX * SpikeMUX::singleton(id_type num) { + staticSpikeMUX.dst = num; + return &staticSpikeMUX; +} + +// special case for reading a spike from a file +template<> +bool SpikeMUX::reflect<ActionRead>(ActionRead &a) { + bool res = reflect(dst, "dst") + && reflect(time, "time") + && reflect(current, "current") + && (time > s.currentTime); + + if (res) + s.addEvent(new ExternalSpike(time, dst, current)); + + return res; +} + +// general reflection case +template<class Action> +bool SpikeMUX::reflect<Action>(Action &a) { + return reflect(dst, "dst") + && reflect(time, "time") + && reflect(current, "current"); +} |