/***************************************************************************
* NeuronModelPropagationDelayStructure.h *
* ------------------- *
* copyright : (C) 2015 by Francisco Naveros *
* email : fnaveros@ugr.es *
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef NEURONMODELPROPAGATIONDELAYSTRUCTURE_H_
#define NEURONMODELPROPAGATIONDELAYSTRUCTURE_H_
class Neuron;
class Interconnection;
/*!
* \file NeuronmodelPropagationDelayStructure.h
*
* \author Francisco Naveros
* \date February 2015
*
* This file declares a class which define the propagation delay structure for each individual neuron. This
* structure will be used to groupe the propagation event of different neurons in one single event.
*/
class NeuronModelPropagationDelayStructure{
double ** delays;
int ** eventSize;
int *AllocatedSize;
int *size;
public:
/*!
* \brief Default constructor without parameters.
*/
NeuronModelPropagationDelayStructure();
/*!
* \brief Default destructor.
*/
~NeuronModelPropagationDelayStructure();
void IncludeNewDelay(int queueIndex, double newDelay);
int GetAllocatedSize(int queueIndex);
int GetSize(int queueIndex);
double GetDelayAt(int queueIndex, int index);
double * GetDelays(int queueIndex);
int GetEventSize(int queueIndex, int index);
void IncrementEventSize(int queueIndex, int index);
private:
void FillEventSize(int queueIndex);
};
#endif /*NEURONMODELPROPAGATIONDELAYSTRUCTURE_H_*/