view TaskManager/kernel/ppe/TaskQueueInfo.h @ 480:46464727d825

TaskQueueInfo initiaization...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 05 Oct 2009 12:24:07 +0900
parents 5bda98b0b56d
children 9522c376a9fe
line wrap: on
line source

#ifndef INCLUDED_TASK_QUEUE_INFO
#define INCLUDED_TASK_QUEUE_INFO

#include "Task.h"
#include "TaskQueue.h"

class TaskQueueInfo : public TaskQueue {
public:
    /* constructor */
    TaskQueueInfo();
    ~TaskQueueInfo();

    /* functions */
    int init(int num);
    TaskQueuePtr create(Task *task);
    void free(TaskQueuePtr queue);

    void addFirst(TaskQueue* e);
    void addLast(TaskQueue* e);
    TaskQueue* getFirst();
    TaskQueue* getLast();
    int remove(TaskQueue* e);
    TaskQueue* poll();
    void moveToFirst(TaskQueue* e); // or use();
    TaskQueue* get(int index);
    TaskQueue* find(Task *task);
    int empty();
 
private:
    /* variables */
    TaskQueue* taskQueuePool;
    TaskQueue* freeTaskQueue;

    TaskQueue* first;
    TaskQueue* last;


    /* functions */
    int extend_pool(int num);
    void destroy();  
};

#endif