Jack2 1.9.6

JackWinProcessSync.h

00001 /*
00002  Copyright (C) 2004-2008 Grame
00003  
00004  This program is free software; you can redistribute it and/or modify
00005  it under the terms of the GNU Lesser General Public License as published by
00006  the Free Software Foundation; either version 2.1 of the License, or
00007  (at your option) any later version.
00008  
00009  This program is distributed in the hope that it will be useful,
00010  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  GNU Lesser General Public License for more details.
00013  
00014  You should have received a copy of the GNU Lesser General Public License
00015  along with this program; if not, write to the Free Software
00016  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017  
00018  */
00019 
00020 
00021 #ifndef __JackWinProcessSync__
00022 #define __JackWinProcessSync__
00023 
00024 #include "JackWinMutex.h"
00025 
00026 namespace Jack
00027 {
00028 
00033 class JackWinProcessSync : public JackWinMutex
00034 {
00035 
00036     private:
00037 
00038         HANDLE fEvent;
00039 
00040     public:
00041 
00042         JackWinProcessSync():JackWinMutex()
00043         {
00044             fEvent = (HANDLE)CreateEvent(NULL, FALSE, FALSE, NULL);
00045         }
00046         ~JackWinProcessSync()
00047         {
00048             CloseHandle(fEvent);
00049         }
00050         
00051         bool TimedWait(long usec);
00052         bool LockedTimedWait(long usec);
00053         
00054         void Wait();
00055         void LockedWait();
00056          
00057         void Signal();
00058         void LockedSignal();
00059          
00060         void SignalAll();
00061         void LockedSignalAll();
00062 };
00063 
00064 } // end of namespace
00065 
00066 #endif
00067