view TaskManager/kernel/ppe/HTaskInfo.h @ 634:0558abba673c

SimpleTask start
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 18 Nov 2009 17:29:14 +0900
parents 4a2c9ff53605
children d433fc37587d
line wrap: on
line source

#ifndef INCLUDED_HTASK_INFO
#define INCLUDED_HTASK_INFO

#include "Task.h"
#include "HTask.h"

class HTaskInfo : public HTask {

public:
    /* constructor */
    HTaskInfo();

    BASE_NEW_DELETE(HTaskInfo);

    /* functions */
    HTaskPtr create(int cmd);
    HTaskPtr create(int cmd, void *rbuf, int rs, void *wbuf, int ws);

    void free_(HTaskPtr queue);

    void addFirst(HTask* e);
    void addLast(HTask* e);
    HTask* getFirst();
    HTask* getLast();
    int remove(HTask* e);
    HTask* poll();
    void moveToFirst(HTask* e); // or use();
    HTask* get(int index);
    HTask* find(HTask *task);
    int empty();
    void freePool() ;

    // Iterator
    HTask* getNext(HTask* q) ;
    int length();

private:
    /* variables */

    static HTaskInfo taskQueuePool;
    HTask* first;
    HTask* last;

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

#endif