Page Speed Optimization Libraries
1.5.27.2
|
00001 // Copyright 2011 Google Inc. 00016 00017 #ifndef NET_INSTAWEB_UTIL_PUBLIC_CONDVAR_H_ 00018 #define NET_INSTAWEB_UTIL_PUBLIC_CONDVAR_H_ 00019 00020 #include "net/instaweb/util/public/basictypes.h" 00021 #include "net/instaweb/util/public/thread_system.h" 00022 00023 namespace net_instaweb { 00024 00027 class ThreadSystem::Condvar { 00028 public: 00029 Condvar() { } 00030 virtual ~Condvar(); 00031 00033 virtual CondvarCapableMutex* mutex() const = 0; 00034 00042 virtual void Signal() = 0; 00043 00046 virtual void Broadcast() = 0; 00047 00060 virtual void Wait() = 0; 00061 00064 virtual void TimedWait(int64 timeout_ms) = 0; 00065 00066 private: 00067 DISALLOW_COPY_AND_ASSIGN(Condvar); 00068 }; 00069 00070 } 00071 00072 #endif ///< NET_INSTAWEB_UTIL_PUBLIC_CONDVAR_H_