Home C-Bits Package Documentation Project Page

Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

CallbackTimer_PTHREAD.h

Go to the documentation of this file.
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  */

Generated by
doxygen
Hosted by
SourceForge