#include #include #include "customer.h" #include "queue.h" #include //#include "customer.h" void Queue_Init(queue* q, int Size) { q->pcust = (Customer*) malloc(sizeof(Customer) * Size); q->size = Size; q->count = 0; q->end= 0; q->start = 0; } int Queue_Add(queue* q, Customer c) { int i = q->end; int r = (((double) rand())/((double)RAND_MAX + (double)1) * 2); sleep(r); q->end++; Customer* ind = &q->pcust[i]; ind->id = c.id; ind->delay = c.delay; ind->type = c.type; if(q->end == q->size) q->end = 0; q->count++; assert(q->count <= q->size); return 1; } Customer Queue_Remove(queue* q) { int i = q->start; int r = (((double) rand())/((double)RAND_MAX + (double)1) * 3) + 2; sleep(r); q->start++; Customer ret = q->pcust[i]; if(q->start == q->size) q->start = 0; q->count--; assert(q->count >= 0); return ret; } int Get_Count(queue* q) { assert(q->count >= 0); return q->count; }