Samchon Framework for CPP
1.0.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
UniqueAcquire.cpp
1
#include <samchon/library/UniqueAcquire.hpp>
2
#include <samchon/library/Semaphore.hpp>
3
4
using namespace
samchon::library
;
5
6
/* -----------------------------------------------------------
7
CONSTRUCTORS
8
----------------------------------------------------------- */
9
UniqueAcquire::UniqueAcquire
(
Semaphore
&semaphore,
bool
doLock)
10
{
11
if
(doLock ==
true
)
12
semaphore.
acquire
();
13
14
this->semaphore = &
semaphore
;
15
this->
isLocked
= doLock;
16
}
17
UniqueAcquire::UniqueAcquire
(
UniqueAcquire
&&obj)
18
{
19
//MOVE
20
this->
semaphore
= obj.semaphore;
21
this->
isLocked
= obj.isLocked;
22
23
//TRUNCATE
24
obj.semaphore =
nullptr
;
25
obj.isLocked =
nullptr
;
26
}
27
UniqueAcquire::~UniqueAcquire
()
28
{
29
if
(
isLocked
==
true
)
30
semaphore
->
release
();
31
}
32
33
/* -----------------------------------------------------------
34
LOCKERS
35
----------------------------------------------------------- */
36
void
UniqueAcquire::acquire
()
37
{
38
if
(
isLocked
==
true
)
39
return
;
40
41
semaphore
->
acquire
();
42
isLocked
=
true
;
43
}
44
void
UniqueAcquire::release
()
45
{
46
if
(
isLocked
==
false
)
47
return
;
48
49
semaphore
->
release
();
50
isLocked
=
false
;
51
}
samchon::library::UniqueAcquire::isLocked
bool isLocked
Whether the semaphore was acquired by the UniqueLock.
Definition:
UniqueAcquire.hpp:52
samchon::library::UniqueAcquire::acquire
void acquire()
Acquire admission.
Definition:
UniqueAcquire.cpp:36
samchon::library
Package of libraries.
Definition:
library.hpp:84
samchon::library::UniqueAcquire::UniqueAcquire
UniqueAcquire(Semaphore &, bool=true)
Construct from semaphore.
Definition:
UniqueAcquire.cpp:9
samchon::library::UniqueAcquire::release
void release()
Release an admission.
Definition:
UniqueAcquire.cpp:44
samchon::library::Semaphore::release
void release()
Release an admission.
Definition:
Semaphore.cpp:75
samchon::library::Semaphore::acquire
void acquire()
Acquire admission.
Definition:
Semaphore.cpp:50
samchon::library::UniqueAcquire
Unique acquire from a Semaphore.
Definition:
UniqueAcquire.hpp:41
samchon::library::UniqueAcquire::~UniqueAcquire
~UniqueAcquire()
Default Destructor.
Definition:
UniqueAcquire.cpp:27
samchon::library::UniqueAcquire::semaphore
Semaphore * semaphore
Managed semaphore.
Definition:
UniqueAcquire.hpp:47
samchon::library::Semaphore
A semaphore.
Definition:
Semaphore.hpp:51
cpp
samchon
protocol
UniqueAcquire.cpp
Generated by
1.8.11