00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_UTIL_CONCURRENT_SYNCHRONIZABLEIMPL_H_
00019 #define _DECAF_INTERNAL_UTIL_CONCURRENT_SYNCHRONIZABLEIMPL_H_
00020
00021 #include <decaf/util/Config.h>
00022 #include <decaf/util/concurrent/Synchronizable.h>
00023 #include <decaf/util/concurrent/Mutex.h>
00024
00025 namespace decaf {
00026 namespace internal {
00027 namespace util {
00028 namespace concurrent {
00029
00036 class DECAF_API SynchronizableImpl : public decaf::util::concurrent::Synchronizable {
00037 private:
00038
00039 decaf::util::concurrent::Mutex mutex;
00040
00041 public:
00042
00043 SynchronizableImpl();
00044 virtual ~SynchronizableImpl();
00045
00046 virtual void lock();
00047
00048 virtual bool tryLock();
00049
00050 virtual void unlock();
00051
00052 virtual void wait();
00053
00054 virtual void wait( long long millisecs );
00055
00056 virtual void wait( long long millisecs, int nanos );
00057
00058 virtual void notify();
00059
00060 virtual void notifyAll();
00061
00062 };
00063
00064 }}}}
00065
00066 #endif