00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00016 #ifndef __DERS__TASK_HPP__
00017 #define __DERS__TASK_HPP__
00018 
00019 #include <ders/config.hpp>
00020 #include <vector>
00021 #include <ders/data_queue.hpp>
00022 
00023 namespace ders {  
00024 
00025 typedef std::vector<data_queue*> dq_vec;
00026 
00030 class task_opers : virtual public destroyable {
00031  public:
00032       virtual void invoke(void (*fun)(void*), void* arg)=0;
00033 };
00034 
00038 class task : virtual public destroyable {
00039  public:
00040       virtual void* proc_arg() { return 0; }
00041       virtual void proc(mem_pool& mp, const dq_vec& dqv, void* arg, task_opers&
00042         to)=0;
00043 };
00044 
00045 }  
00046 
00047 #endif  // __DERS__TASK_HPP__
00048