semaphore.h

00001 /*
00002  * semaphore.h
00003  * This file is part of dbPager Classes Library (DCL)
00004  *
00005  * Copyright (c) 2009 Dennis Prochko <wolfsoft@mail.ru>
00006  *
00007  * DCL is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation version 3.
00010  *
00011  * DCL is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with DCL; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor,
00019  * Boston, MA  02110-1301  USA
00020  */
00021 
00022 #ifndef _SEMAPHORE_H_
00023 #define _SEMAPHORE_H_
00024 
00025 #include <dcl/exception.h>
00026 
00027 namespace dbp {
00028 
00030 
00033 class semaphore_exception: public dbp::exception {
00034 public:
00035         semaphore_exception(const std::string &msg = "") throw():
00036           dbp::exception(msg) { }
00037 };
00038 
00039 class semaphore_int {
00040 public:
00041         virtual ~semaphore_int() { }
00042         virtual void lock() = 0;
00043         virtual void unlock() = 0;
00044 };
00045 
00047 
00051 class semaphore: public semaphore_int {
00052 public:
00054         semaphore();
00056         virtual ~semaphore();
00058 
00064         virtual void lock();
00066 
00071         virtual void unlock();
00072 private:
00073         semaphore_int *pimpl;
00074 };
00075 
00076 } //namespace
00077 
00078 #endif /*_SEMAPHORE_H_*/
00079 

 
Support This Project
SourceForge.net Logo