CoreLinux++  0.4.32
CoreLinuxGuardGroup.hpp
1 #if !defined(__CORELINUXGUARDGROUP_HPP)
2 #define __CORELINUXGUARDGROUP_HPP
3 
4 /*
5  CoreLinux++
6  Copyright (C) 1999,2000 CoreLinux Consortium
7 
8  The CoreLinux++ Library is free software; you can redistribute it and/or
9  modify it under the terms of the GNU Library General Public License as
10  published by the Free Software Foundation; either version 2 of the
11  License, or (at your option) any later version.
12 
13  The CoreLinux++ Library Library is distributed in the hope that it will
14  be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Library General Public License for more details.
17 
18  You should have received a copy of the GNU Library General Public
19  License along with the GNU C Library; see the file COPYING.LIB. If not,
20  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  Boston, MA 02111-1307, USA.
22 */
23 
24 #if !defined(__COMMON_HPP)
25 #include <Common.hpp>
26 #endif
27 
28 #if !defined(__SEMAPHOREGROUP_HPP)
29 #include <SemaphoreGroup.hpp>
30 #endif
31 
32 namespace corelinux
33 {
34  DECLARE_CLASS( CoreLinuxGuardGroup );
35 
42  {
43  public:
44 
55  CoreLinuxGuardGroup( Short )
57 
59 
60  virtual ~CoreLinuxGuardGroup( void );
61 
62  //
63  // Accessors
64  //
65 
66  //
67  // Factory methods
68  //
69 
77  throw( SemaphoreException ) ;
78 
97  (
98  SemaphoreIdentifierRef aIdentifier,
100  bool Recursive = false,
101  bool Balking = false
102  ) throw( SemaphoreException ) ;
103 
122  (
123  std::string aName,
125  bool Recursive=false,
126  bool Balking = false
127  ) throw( SemaphoreException ) ;
128 
129 
140  virtual void destroySemaphore( AbstractSemaphorePtr )
141  throw( SemaphoreException ) ;
142  protected:
143 
144  //
145  // Constructors
146  //
148 
149  CoreLinuxGuardGroup( void ) throw( Assertion );
150 
152 
154  throw( Assertion );
155 
156  //
157  // Operator overloads
158  //
159 
161 
163  throw( Assertion );
164 
165  //
166  // Directed Factory methods
167  //
168 
169 
170  private:
171 
173 
174  AbstractSemaphorePtr *theUsedMap;
175  };
176 }
177 
178 #endif // if !defined(__CORELINUXGUARDGROUP_HPP)
179 
180 /*
181  Common rcs information do not modify
182  $Author: frankc $
183  $Revision: 1.2 $
184  $Date: 2000/06/02 11:51:52 $
185  $Locker: $
186 */
187 
188 
189 
virtual ~CoreLinuxGuardGroup(void)
Virtual destructor.
Definition: CoreLinuxGuardGroup.cpp:54
virtual AbstractSemaphorePtr createSemaphore(void)
Create a default GuardSemaphore.
Definition: CoreLinuxGuardGroup.cpp:71
CoreLinuxGuardGroupRef operator=(CoreLinuxGuardGroupCref)
Assignment operator not allowed.
A CoreLinuxGuardGroup is an extension to the SemaphoreGroup for creating semaphores for the CoreLinux...
Definition: CoreLinuxGuardGroup.hpp:41
Forward reference the various common classes.
Definition: AbstractAllocator.hpp:32
CreateDisposition
Creation dispositions for various system utilities.
Definition: AccessRights.hpp:63
ScalarIdentifier provides a templated interface for declaring CoreLinux Identifiers for simple scalar...
Definition: ScalarIdentifiers.hpp:37
A AbstractSemaphore supports the protocol that processes and/or threads agree to follow for the purpo...
Definition: AbstractSemaphore.hpp:85
SemaphoreException is the base exception type for Semaphore.
Definition: SemaphoreException.hpp:39
Assertion is-a Exception created when an assertion fails.
Definition: Assertion.hpp:423
Will create or open.
Definition: AccessRights.hpp:67
virtual void destroySemaphore(AbstractSemaphorePtr)
Destroys a created GuardSemaphore.
Definition: CoreLinuxGuardGroup.cpp:193
CoreLinuxGuardGroup(void)
Default constructor not allowed.
A SemaphoreGroup is an extension to the Linux semaphore set.
Definition: SemaphoreGroup.hpp:62

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium