view include/TaskManager/TaskManagerImpl.h @ 80:1c648675c2bd

*** empty log message ***
author gongo
date Wed, 20 Feb 2008 10:56:37 +0900
parents 83b57e03d3ef
children 504899860e66
line wrap: on
line source

#ifndef INCLUDED_TASK_MANAGER_IMPL
#define INCLUDED_TASK_MANAGER_IMPL

#ifndef INCLUDED_MAIL_MANAGER
#  include "MailManager.h"
#endif

#ifndef INCLUDED_MAIN_SCHEDULER
#  include "MainScheduler.h"
#endif

#ifndef INCLUDED_BUFFER_MANAGER
#  include "BufferManager.h"
#endif

class TaskManagerImpl {
public:
    /* constructor */
    TaskManagerImpl(int num = 1);
    virtual ~TaskManagerImpl(void);

    /* variables */
    int machineNum;

    MailManager *mailManager;
    MainScheduler *scheduler;
    BufferManager *bufferManager;

    /* functions */
    virtual void init(void);
    void run(void);
    virtual MailQueuePtr mail_check(MailQueuePtr mail_list);
    
    HTaskPtr create_task(int cmd, int siz, DmaBuffer *in_addr,
			 DmaBuffer *out_addr, void (*func)(void));
    //HTaskPtr create_task(int cmd, int siz, unsigned int in_addr,
    //unsigned int out_addr, void (*func)(void));
    void set_task_depend(HTaskPtr master, HTaskPtr slave);
    virtual TaskListPtr set_task(void);
    virtual void spawn_task(HTaskPtr);
    void set_task_cpu(HTaskPtr, CPU_TYPE);

    // Fixme
    // アライメントとか、インスタンス用の new 使える奴とか、etc...
    DmaBuffer* allocate(int size);
};
#endif