activemq-cpp-3.6.0
Main Page
Namespaces
Data Structures
Files
File List
Globals
Semaphore.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef _DECAF_UTIL_CONCURRENT_SEMAPHORE_H_
19
#define _DECAF_UTIL_CONCURRENT_SEMAPHORE_H_
20
21
#include <
decaf/util/Config.h
>
22
23
#include <
decaf/lang/exceptions/InterruptedException.h
>
24
#include <
decaf/lang/exceptions/RuntimeException.h
>
25
#include <
decaf/lang/exceptions/IllegalArgumentException.h
>
26
27
#include <
decaf/util/Collection.h
>
28
#include <
decaf/util/concurrent/TimeUnit.h
>
29
30
namespace
decaf {
31
namespace
util {
32
namespace
concurrent {
33
34
class
SemSync;
35
141
class
DECAF_API
Semaphore
{
142
private
:
143
144
SemSync* sync;
145
146
private
:
147
148
Semaphore
(
const
Semaphore
& );
149
Semaphore
& operator= (
const
Semaphore
& );
150
151
public
:
152
159
Semaphore
(
int
permits );
160
169
Semaphore
(
int
permits,
bool
fair );
170
171
virtual
~
Semaphore
();
172
197
void
acquire();
198
216
void
acquireUninterruptibly();
217
236
bool
tryAcquire();
237
274
bool
tryAcquire(
long
long
timeout,
const
TimeUnit
& unit );
275
289
void
release();
290
321
void
acquire(
int
permits );
322
343
void
acquireUninterruptibly(
int
permits );
344
369
bool
tryAcquire(
int
permits );
370
413
bool
tryAcquire(
int
permits,
long
long
timeout,
const
TimeUnit
& unit );
414
431
void
release(
int
permits );
432
440
int
availablePermits()
const
;
441
449
int
drainPermits();
450
454
bool
isFair()
const
;
455
462
std::string toString()
const
;
463
471
int
getQueueLength()
const
;
472
476
bool
hasQueuedThreads()
const
;
477
478
protected
:
479
491
void
reducePermits(
int
reduceBy);
492
500
decaf::util::Collection<decaf::lang::Thread*>
* getQueuedThreads()
const
;
501
502
};
503
504
}}}
505
506
#endif
/* _DECAF_UTIL_CONCURRENT_SEMAPHORE_H_ */
src
main
decaf
util
concurrent
Semaphore.h
Generated on Mon Mar 4 2013 10:25:46 for activemq-cpp-3.6.0 by
1.8.1.2