#include class SemPT { public: SemPT( int ); ~SemPT(); int Signal(); int Wait(); private: sem_t * sem; }; class Mutex { public: Mutex(); ~Mutex(); int Lock(); int Unlock(); private: pthread_mutex_t * mutex; }; class Lock { public: Lock(); ~Lock(); int Acquire(); int Release(); pthread_mutex_t * getMutex() { return lock; } private: pthread_mutex_t * lock; }; class Condition { public: Condition(); ~Condition(); int Wait( Lock * conditionLock ); int Signal( Lock * conditionLock ); int Broadcast( Lock * conditionLock ); private: pthread_cond_t * vc; };