view TaskManager/kernel/schedule/SchedTaskBase.h @ 708:56487849ea2d

cleean up SchedTasks.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Dec 2009 10:49:30 +0900
parents 8611780d479f
children f725c6455d19
line wrap: on
line source

#ifndef INCLUDED_SCHED_TASK_BASE
#define INCLUDED_SCHED_TASK_BASE

#include "base.h"
#include "Scheduler.h"

class Scheduler;

class SchedTaskBase {
public:
    /* constructor */
    SchedTaskBase(void) {}
    virtual ~SchedTaskBase(void) {}

    BASE_NEW_DELETE(SchedTaskBase);

    // noaction in default
    virtual void load(void)  {}
    virtual void read(void)  {}
    virtual void exec(void)  {}
    virtual void write(void) {}

    /* functions */
    virtual SchedTaskBase* next(Scheduler *, SchedTaskBase*) {return 0;}

    /* variables */

    // Task を実行するスケジューラ自身
    Scheduler *scheduler;

#ifndef SIMPLE_TASK
    TaskPtr task;
#else
    SimpleTaskPtr task;
#endif

    // 現在スケジューラが実行している TaskList と、このタスクに対応する Task
    TaskListPtr list;
    // Task の、Tasklist での位置。(task = &list[cur_index-1])
    int cur_index;


};

#endif