UDK 3.2.7 C/C++ API Reference
|
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 /************************************************************************* 00003 * 00004 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 00005 * 00006 * Copyright 2000, 2010 Oracle and/or its affiliates. 00007 * 00008 * OpenOffice.org - a multi-platform office productivity suite 00009 * 00010 * This file is part of OpenOffice.org. 00011 * 00012 * OpenOffice.org is free software: you can redistribute it and/or modify 00013 * it under the terms of the GNU Lesser General Public License version 3 00014 * only, as published by the Free Software Foundation. 00015 * 00016 * OpenOffice.org is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Lesser General Public License version 3 for more details 00020 * (a copy is included in the LICENSE file that accompanied this code). 00021 * 00022 * You should have received a copy of the GNU Lesser General Public License 00023 * version 3 along with OpenOffice.org. If not, see 00024 * <http://www.openoffice.org/license.html> 00025 * for a copy of the LGPLv3 License. 00026 * 00027 ************************************************************************/ 00028 00029 #ifndef _OSL_SEMAPHORE_HXX_ 00030 #define _OSL_SEMAPHORE_HXX_ 00031 00032 #ifdef __cplusplus 00033 00034 #include <osl/semaphor.h> 00035 00036 00037 namespace osl 00038 { 00044 class Semaphore { 00045 00046 public: 00047 00055 Semaphore(sal_uInt32 initialCount) 00056 { 00057 semaphore = osl_createSemaphore(initialCount); 00058 } 00059 00063 ~Semaphore() 00064 { 00065 osl_destroySemaphore(semaphore); 00066 } 00067 00072 sal_Bool acquire() 00073 { 00074 return osl_acquireSemaphore(semaphore); 00075 } 00076 00082 sal_Bool tryToAcquire() 00083 { 00084 return osl_tryToAcquireSemaphore(semaphore); 00085 } 00086 00090 sal_Bool release() 00091 { 00092 return osl_releaseSemaphore(semaphore); 00093 } 00094 00095 private: 00096 oslSemaphore semaphore; 00097 00104 Semaphore(const Semaphore&); 00105 00112 Semaphore(oslSemaphore Semaphore); 00113 00117 Semaphore& operator= (const Semaphore&); 00118 00122 Semaphore& operator= (oslSemaphore); 00123 }; 00124 } 00125 00126 #endif /* __cplusplus */ 00127 #endif /* _OSL_SEMAPHORE_HXX_ */ 00128 00129 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */