This file is indexed.

/usr/include/corelinux/EventSemaphoreGroup.hpp is in libcorelinux-dev 0.4.32-7.4ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
#if   !defined(__EVENTSEMAPHOREGROUP_HPP)
#define __EVENTSEMAPHOREGROUP_HPP

/*
  CoreLinux++ 
  Copyright (C) 1999,2000 CoreLinux Consortium
  
   The CoreLinux++ Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   The CoreLinux++ Library Library is distributed in the hope that it will 
   be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  
*/

#if   !defined(__COMMON_HPP)
#include <Common.hpp>
#endif

#if   !defined(__SEMAPHOREGROUP_HPP)
#include <SemaphoreGroup.hpp>
#endif

namespace corelinux
{
   DECLARE_CLASS( EventSemaphoreGroup );

   /**
   A EventSemaphoreGroup is an extension to the SemaphoreGroup for creating
   only EventSemaphore types. Default behavior for creating semaphores via
   the SemaphoreGroup interface is to create a Event and autolock it.
   There is no option for not autolocking it.
   */

   class EventSemaphoreGroup : public SemaphoreGroup
   {
   public:
               /**
                  Default constructor creates a private group semaphores
                  with access for OWNER_ALL. Maximum limit of listeners
                  will be set to "infinity"
                  @param aSemCount Number of semaphores in group
                  @param aRightSet access control for group 
                  @exception Assertion if aSemCount < 1 
                  @exception SemaphoreException if kernel group create
                  call fails.  
                  @see AccessRights
               */
                                       
               EventSemaphoreGroup
                  ( 
                     Short aSemCount, 
                     Int aRightSet = OWNER_ALL 
                  ) throw(Assertion,SemaphoreException);

               /**
                  Constructor to open or create a semaphore group with a
                  specific identifier. Maximum limit of listeners will
                  be set to "infinity".
                  @param  aSemCount Number of semaphores in group, this
                  only has meaning used if failOnExist = true
                  @param aGID valid group identifier either through a
                  system call or via another ipc mechanism
                  @param aRightSet Specifies access control for group 
                  @param dist indicates how to treat the conditions that
                  the group may meet in the request:
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @exception Assertion if aCount < 1 
                  @exception SemaphoreException for described states
               */

               EventSemaphoreGroup
                  (
                     Short aSemCount,
                     SemaphoreGroupIdentifierCref aGID,
                     Int aRightSet,
                     CreateDisposition disp=FAIL_IF_EXISTS
                  ) throw(Assertion,SemaphoreException);

               /**
                  Constructor to open or create a semaphore group by
                  name.  Maximum limit of listeners is set to "infinity"

                  @param  aSemCount Short Number of semaphores in group,
                  this only has meaning used if failOnExist = true
                  @param aName pointer to Group name
                  @param aRightSet specifies access control for group 
                  @param disp indicates how to treat the conditions that
                  the group may meet in the request:
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care 
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @exception Assertion if aCount < 1 or aCount > system
                  defined maximum for group 
                  @exception SemaphoreException for described states
               */

               EventSemaphoreGroup
                  (
                     Short aSemCount,
                     CharCptr aName,
                     Int aRightSet,
                     CreateDisposition disp=FAIL_IF_EXISTS
                  ) throw(Assertion,SemaphoreException);


               /// Virtual destructor

      virtual  ~EventSemaphoreGroup( void );

                     //
                     // Accessors
                     //

                     //
                     // Factory methods
                     //

               /**
                  Create a default EventSemaphore
                  @return AbstractSemaphore aSem - pointer to created
                  semaphore 
                  @exception SemaphoreException if no sems left in group
               */
                  
      virtual  AbstractSemaphorePtr createSemaphore( void )
                  throw( SemaphoreException ) ;

               /**
                  Create an EventSemaphore and set the maximum number of
                  listeners allowed on this semaphore.
                  @param aLimit maximum number of listeners 
                  @return AbstractSemaphore aSem - pointer to created
                  semaphore
                  @exception SemaphoreException if no sems left in group
               */

      virtual  AbstractSemaphorePtr createSemaphore( Counter aLimit )
                  throw( SemaphoreException ) ;

               /**
                  Create or open (use) a specific EventSemphore 
                  @param aIdentifier identifies which semphore id to
                  create or attempt to use
                  @param disp indicates how to treat the conditions that
                  the group may meet in the request:
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care 
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @param Recursive to allow same thread multiple locks 
                  @param Recursive allow lock to recurse
                  @param Balking to allow the semaphore to balk
                  @return AbstractSemaphore aSem - pointer to created or
                  opened semaphore
                  @exception SemaphoreException if the disposition
                  disagrees with the semaphore state, or if it is a
                  erroneous identifier
               */

      virtual  AbstractSemaphorePtr createSemaphore
                  ( 
                     SemaphoreIdentifierRef aIdentifier,
                     CreateDisposition disp = CREATE_OR_REUSE,
                     bool Recursive = false, 
                     bool Balking = false 
                  ) throw( SemaphoreException ) ;

               /**
                  Create or open (use) a specific EventSemphore and set
                  the maximum number of listeners to the specified
                  count.

                  @param aIdentifier identifies which semphore id to
                  create or attempt to use
                  @param aLimit maximum number of listeners for
                  EventSemaphore 
                  @param disp indicates how to treat the conditions that
                  the group may meet in the request:
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care 
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @param Recursive to allow same thread multiple locks 
                  @param Balking to allow the semaphore to balk
                  @return AbstractSemaphore aSem - pointer to created or
                  opened semaphore
                  @exception SemaphoreException if the disposition
                  disagrees with the semaphore state, or if it is a
                  erroneous identifier
               */

      virtual  AbstractSemaphorePtr createSemaphore
                  ( 
                     SemaphoreIdentifierRef aIdentifier,
                     Counter aLimit, 
                     CreateDisposition disp = CREATE_OR_REUSE,
                     bool Recursive = false, 
                     bool Balking = false 
                  ) throw( SemaphoreException );

               /**
                  Create or open (use) a specific EventSemaphore
                  identified by its name
                  @param aName identifies which semphore id to create or
                  attempt to use
                  @param disp indicates how to treat the conditions that
                  the group may meet in the request:
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care 
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @param Recursive to allow same thread multiple locks 
                  @param Balking to allow the semaphore to balk
                  @return AbstractSemaphore aSem - pointer to created or
                  opened semaphore
                  @exception SemaphoreException if the disposition
                  disagrees with the semaphore state, or if it is a
                  erroneous identifier
               */

      virtual  AbstractSemaphorePtr createSemaphore
                  ( 
                     std::string aName,
                     CreateDisposition disp = CREATE_OR_REUSE,
                     bool Recursive=false, 
                     bool Balking = false 
                  ) throw( SemaphoreException ) ;

               /**
                  Create or open (use) a specific EventSemaphore @param
                  aName identifies which semphore id to create or
                  attempt to use
                  @param aLimit maximum number of listeners for
                  EventSemaphore
                  @param disp indicates how to treat the conditions that
                  the group may meet in the request: 
                     @arg CREATE_OR_REUSE indicates that the caller doesn't
                     care 
                     @arg FAIL_IF_EXISTS indicates the attempt was for a
                     create
                     @arg FAIL_IF_NOTEXISTS indicates the attempt was for a
                     open 
                  @param Recursive to allow same thread multiple locks 
                  @param Balking to allow the semaphore to balk
                  @return AbstractSemaphore aSem - pointer to created or
                  opened semaphore
                  @exception SemaphoreException if the disposition
                  disagrees with the semaphore state, or if it is a
                  erroneous identifier
               */

      virtual  AbstractSemaphorePtr createSemaphore
                  (
                     std::string aName,
                     Counter aLimit, 
                     CreateDisposition disp = CREATE_OR_REUSE,
                     bool Recursive=false, 
                     bool Balking = false 
                  ) throw( SemaphoreException ) ;


               /**
                  Destroys a previously created EventSemaphore 
                  @param aPtr pointer of semaphore to destroy 
                  @exception SemaphoreException if semaphore does not
                  belong to this group or if already destroyed.
               */

      virtual  void  destroySemaphore( AbstractSemaphorePtr aPtr )
                        throw( SemaphoreException ) ;

   protected:

      //
      // Constructors
      //
               /// Default constructor not allowed

               EventSemaphoreGroup( void ) throw( Assertion );

               /// Copy constructor not allowed

               EventSemaphoreGroup( EventSemaphoreGroupCref ) 
                  throw( Assertion );

      //
      // Operator overloadings
      //

               // Assignment operator not allowed

               EventSemaphoreGroupRef operator=( EventSemaphoreGroupCref )
                  throw( Assertion );

      //
      // EventGroup methods
      //

               // Protected method for resolving event between CSA and local

               AbstractSemaphorePtr resolveSemaphore
                  (
                     SemaphoreIdentifierRef  aIdentifier,
                     Short                   aSemId,
                     CreateDisposition       aDisp,
                     bool                    aRecurse, 
                     bool                    aBalk,
                     Counter                 aMaxValue = 1
                  ) throw( SemaphoreException ) ;

   private:

      /// Local share counts

      SemaphoreShares   theUsedMap;

   };
}

#endif // if !defined(__EVENTSEMAPHOREGROUP_HPP)

/*
   Common rcs information do not modify
   $Author: dulimart $
   $Revision: 1.6 $
   $Date: 2000/11/13 15:20:25 $
   $Locker:  $
*/