#include "Timeline.h"
Timeline::Timeline()
{
}
Timeline::~Timeline()
{
for (int i = 0; i< MAX_DELTA_T; i++)
{
delete [] messagesForCells[i];
}
delete [] messagesForCells;
}
void Timeline::tick(int current_tick)
{ int location = current_tick%MAX_DELTA_T;
for(int i = 0;i < number_of_cells;i++)
{
messagesForCells[location][i]=NULL;
}
}
void Timeline::build (int no_cells, int maxDelta)
{
int i;
MAX_DELTA_T = maxDelta+1;
number_of_cells = no_cells;
messagesForCells = new Message** [MAX_DELTA_T];
for (i=0; i < MAX_DELTA_T; i++)
{
messagesForCells[i] = new Message* [no_cells];
for(int j = 0; j < no_cells; j++)
{
messagesForCells[i][j] = NULL;
}
}
}
Message* Timeline::getMailbox(int current_tick,int cell_no)
{
return messagesForCells[current_tick%MAX_DELTA_T][cell_no];
}
void Timeline::queueMessage(int current_tick, int delta_t, int cell, Message *mess)
{
int time_index = (current_tick+delta_t)%MAX_DELTA_T;
Message *tmp = messagesForCells[time_index][cell];
mess->Next = tmp;
messagesForCells[time_index][cell] = mess;
}