view TaskManager/kernel/schedule/TaskGroup.h @ 499:eacbcdb23986

still fixing...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 11 Oct 2009 15:42:00 +0900
parents 0b933bef0328
children
line wrap: on
line source

#ifndef INCLUDED_TASK_GROUP
#define INCLUDED_TASK_GROUP

#include "base.h"
#include "Task.h"

class TaskGroup {
public:

    struct groupQueue {
	struct groupQueue *next;
	TaskPtr task;
    } *group;

    TaskGroup(): group(NULL) {}

    BASE_NEW_DELETE(TaskGroup);

    // この command を引き渡すだけのためのオブジェクトらしい

    unsigned int command;

    /**
     * 待つ Task を追加
     */
    void add(TaskPtr add_task);

    /**
     * 終了した Task を group から削除
     */
    void remove(TaskPtr delete_task);

    /**
     * 空 (待つタスクが無い) の時が、この TaskGroup が持つ、
     * PPE に送るべきコマンドを返す。
     * まだ待つべきタスクがある場合は 0 を返す
     */
    unsigned int status();
};

typedef TaskGroup* TaskGroupPtr;

#endif