メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

# dkcTaskEngine.h

説明を見る。

    00001
    00061 #ifndef DKUTIL_C_TASK_ENGINE_H
    00062 #define DKUTIL_C_TASK_ENGINE_H
    00063
    00064
    00065 #include <stdio.h>
    00066 #include <string.h>
    00067 #include "dkcOSIndependent.h"
    00068
    00069 /*
    00070
    00071
    00072 */
    00074 #define dkcdTASK_NUM 256
    00075
    00080
    00081 typedef BYTE TASK_COUNT_T;
    00082
    00083
    00085 typedef struct dkc_TaskEngine{
    00087     BYTE *mTaskPool[dkcdTASK_NUM];
    00089     BYTE *mTaskWorkPool[dkcdTASK_NUM];
    00091     size_t mTaskWorkSize;
    00093     TASK_COUNT_T mNowPriority;
    00094 }DKC_TASK_ENGINE;
    00095
    00097 typedef struct dkc_Task{
    00099     BYTE *work;
    00101     void (*proc)(DKC_TASK_ENGINE *,struct dkc_Task *);
    00102 }DKC_TASK;
    00103
    00104
    00105 typedef void (*DKC_TASK_PROC)(DKC_TASK_ENGINE *,DKC_TASK *);
    00106
    00107
    00108
    00109
    00110
    00111
    00112 DKC_EXTERN DKC_TASK_ENGINE *dkcAllocTaskEngine(size_t taskworksize);
    00113
    00114 DKC_EXTERN int dkcFreeTaskEngine(DKC_TASK_ENGINE **);
    00123
    00124 DKC_EXTERN void dkcTaskEngineInit(DKC_TASK_ENGINE *p,DKC_TASK *TaskPool[dkcdTASK_NUM],BYTE *TaskWorkPool[dkcdTASK_NUM]);
    00125
    00127 DKC_EXTERN int dkcTaskEngineSet(DKC_TASK_ENGINE *p,TASK_COUNT_T prio,DKC_TASK_PROC proc);
    00129 DKC_EXTERN int dkcTaskEngineKill(DKC_TASK_ENGINE *p,TASK_COUNT_T prio);
    00131 DKC_EXTERN int dkcTaskEngineIteration(DKC_TASK_ENGINE *p);
    00132
    00134 DKC_EXTERN BOOL dkcTaskEngineEmpty(DKC_TASK_ENGINE *p,TASK_COUNT_T prio);
    00135
    00136
    00137 #if !defined(   DKUTIL_C_TASK_ENGINE_C ) &&  defined(USE_DKC_INDEPENDENT_INCLUDE)
    00138 #   include "dkcTaskEngine.c"
    00139 #endif
    00140
    00141
    00142
    00143 #endif //end of include once