PaCO++  0.05
paco_omni.h
Go to the documentation of this file.
00001 #include "paco_thread.h"
00002 #include <omnithread.h>
00003 
00004 class paco_omni_thread : public paco_thread
00005 {
00006  public:
00007   paco_omni_thread();
00008   virtual ~paco_omni_thread();
00009   
00010   virtual void detach() {thread->exit();}
00011   omni_thread * thread;
00012 };
00013 
00014 class paco_omni_mutex : public paco_mutex
00015 {
00016  public:
00017   paco_omni_mutex();
00018   ~paco_omni_mutex();
00019 
00020   void lock();
00021   void unlock();
00022 
00023   omni_mutex * mutex;
00024 };
00025 
00026 class paco_omni_condition : public paco_condition
00027 {
00028  public:
00029   paco_omni_condition(paco_omni_mutex* m);
00030   ~paco_omni_condition();
00031 
00032   void wait();
00033   void signal();
00034 
00035  private:
00036   omni_condition * condition;
00037 };
00038 
00039 class paco_omni_fabrique : public paco_fabrique_thread {
00040 
00041 public:
00042 
00043   paco_mutex* paco_create_mutex();
00044   paco_condition* paco_create_condition(paco_mutex * mutex);
00045   paco_thread * paco_create_thread(void* (*fn)(void*), void* arg = NULL);
00046   paco_thread * paco_create_thread(void (*fn)(void*), void* arg = NULL);
00047 };