Home | C-Bits Package Documentation | Project Page |
00001 /* ==================================================================== 00002 * The CBITS Software License, Version 1.0 00003 * 00004 * Copyright (c) 2002-2003 Bruce Lowery 00005 * All rights reserved 00006 * 00007 * Redistribution and use of this software, in source and binary forms, 00008 * with or without modification, are permitted provided that the above 00009 * copyright notice, this paragraph, and the following paragraph are 00010 * retained in each source code file. 00011 * 00012 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00013 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00014 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00015 * DISCLAIMED. IN NO EVENT SHALL BRUCE LOWERY OR OTHER CONTRIBUTORS 00016 * TO THE CBITS LIBRARY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00017 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00018 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00019 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00020 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00021 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00022 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00023 * SUCH DAMAGE. 00024 * ==================================================================== 00025 */ 00026 #ifndef __CALLBACK_TIMER_PTHREAD_H__ 00027 #define __CALLBACK_TIMER_PTHREAD_H__ 00028 00029 #include <cbits/CallbackTimer.h> 00030 00031 #ifdef USE_PTHREADS 00032 #include <pthread.h> 00033 #endif 00034 00035 #ifdef BUILD_DLL 00036 #define EXPORT __declspec(dllexport) 00037 #else 00038 #define EXPORT 00039 #endif 00040 00041 namespace cbits 00042 { 00043 00048 class EXPORT CallbackTimer_PTHREAD : public virtual CallbackTimer 00049 { 00050 00051 public: 00052 CallbackTimer_PTHREAD 00053 ( 00054 const Type t, 00055 const long tm, 00056 CallbackTimerListener& cl 00057 ); 00058 00059 00063 virtual ~CallbackTimer_PTHREAD(); 00064 00065 00066 protected: 00067 00073 virtual const bool impl_lock_obj() const; 00074 00081 virtual const bool impl_unlock_obj() const; 00082 00090 virtual const bool impl_wait( const long msec ); 00091 00098 virtual const bool impl_signal(); 00099 00100 private: 00101 #ifdef USE_PTHREADS 00102 00103 mutable pthread_mutex_t _lock; 00104 00106 pthread_mutex_t _cvar_lock; 00107 00108 /* Condition variable used to signal that the timer has expired. */ 00109 pthread_cond_t _cvar; 00110 #endif 00111 }; 00112 00113 }; 00114 00115 #endif 00116 00117 /* 00118 * $Id: CallbackTimer_PTHREAD.h,v 1.5 2002/10/08 14:59:21 brulow Exp $ 00119 * 00120 * History: (Add nothing manually below) 00121 * ----------------------------------------------------------------------- 00122 * 00123 * $Log: CallbackTimer_PTHREAD.h,v $ 00124 * Revision 1.5 2002/10/08 14:59:21 brulow 00125 * Improve comments 00126 * 00127 * Revision 1.4 2002/10/07 21:07:40 brulow 00128 * Add/improve documentation 00129 * 00130 * Revision 1.3 2002/10/07 02:55:01 brulow 00131 * Add SignalObject to thread pkg 00132 * 00133 * 00134 */
|
|