view example/task_queue/testQueueInfo.cc @ 822:ba45c7b81d2a

testQueueInfo 100% passed
author game@zeus.cr.ie.u-ryukyu.ac.jp
date Sun, 23 May 2010 17:14:50 +0900
parents e6eea3a208cd
children ab3cd3aeacff
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "QueueInfo.h"
#include "TaskList.h"
#include "Func.h"


// static QueueInfo<TaskList, TaskList>::queuePool;   
static QueueInfo<TaskList> *queuePool = new QueueInfo<TaskList>() ;

void
queueInfoTest(int count)
{

    QueueInfo<TaskList> *q = new QueueInfo<TaskList>(queuePool) ;
    QueueInfo<TaskList> *r = new QueueInfo<TaskList>(queuePool) ;

    int i = 0;
    for (i = 0; i < count; i++) {
	q->addLast(q->create());
    }
    i = 0;
    for(TaskListPtr t=  q->getFirst(); t ;t = q->getNext(t) ) {
	t->length = i++;

    }

    i = 0;
    for(TaskListPtr t=  q->getFirst(); t ;t = q->getNext(t) ) {
	printf(" No. %d %ld\n", i++, t->length);
    }

    printf("First %ld\n", q->getFirst()->length);
    printf("Last %ld\n", q->getLast()->length);

    TaskListPtr t = q->poll();
    printf("Polled %ld\n", t->length);
    q->free_(t);

    printf("Length %d = %d - 1\n", q->length(), count);

    q->moveToFirst(q->get(count-2));

    i = 0;
    for(TaskListPtr t=  q->getFirst(); t ;t = q->getNext(t) ) {
	printf(" No. %d %ld\n", i++, t->length);
    }

    while(!q->empty()){
	r->addFirst(q->poll());
    }

    i = 0;
    for(TaskListPtr t=  r->getFirst(); t ;t = r->getNext(t) ) {
	printf(" No. %d %ld\n", i++, t->length);
    }


}

/* end */