My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
semaphor.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
3  *
4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5  *
6  * Copyright 2000, 2010 Oracle and/or its affiliates.
7  *
8  * OpenOffice.org - a multi-platform office productivity suite
9  *
10  * This file is part of OpenOffice.org.
11  *
12  * OpenOffice.org is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU Lesser General Public License version 3
14  * only, as published by the Free Software Foundation.
15  *
16  * OpenOffice.org is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License version 3 for more details
20  * (a copy is included in the LICENSE file that accompanied this code).
21  *
22  * You should have received a copy of the GNU Lesser General Public License
23  * version 3 along with OpenOffice.org. If not, see
24  * <http://www.openoffice.org/license.html>
25  * for a copy of the LGPLv3 License.
26  *
27  ************************************************************************/
28 
29 #ifndef _OSL_SEMAPHORE_HXX_
30 #define _OSL_SEMAPHORE_HXX_
31 
32 #ifdef __cplusplus
33 
34 #include <osl/semaphor.h>
35 
36 
37 namespace osl
38 {
44  class Semaphore {
45 
46  public:
47 
55  Semaphore(sal_uInt32 initialCount)
56  {
57  semaphore = osl_createSemaphore(initialCount);
58  }
59 
64  {
65  osl_destroySemaphore(semaphore);
66  }
67 
73  {
74  return osl_acquireSemaphore(semaphore);
75  }
76 
83  {
84  return osl_tryToAcquireSemaphore(semaphore);
85  }
86 
91  {
92  return osl_releaseSemaphore(semaphore);
93  }
94 
95  private:
96  oslSemaphore semaphore;
97 
104  Semaphore(const Semaphore&);
105 
113 
117  Semaphore& operator= (const Semaphore&);
118 
122  Semaphore& operator= (oslSemaphore);
123  };
124 }
125 
126 #endif /* __cplusplus */
127 #endif /* _OSL_SEMAPHORE_HXX_ */
128 
129 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */