SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
StateSynchronization.h
Go to the documentation of this file.
1
/*
2
* SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3
* License details at <https://github.com/kashirin-alex/swc-db/#license>
4
*/
5
6
#ifndef swcdb_core_StateSynchronization_h
7
#define swcdb_core_StateSynchronization_h
8
9
10
#include "
swcdb/core/Compat.h
"
11
12
13
namespace
SWC
{
namespace
Core {
14
15
16
class
StateSynchronization
{
17
public
:
18
19
SWC_CAN_INLINE
20
StateSynchronization
() noexcept :
m_mutex
(),
m_cv
(),
m_ack
(false) { }
21
22
~StateSynchronization
() noexcept { }
23
24
SWC_CAN_INLINE
25
void
wait
() {
26
Core::UniqueLock
lock_wait(
m_mutex
);
27
m_cv
.wait(lock_wait, [
this
] {
return
m_ack
; });
28
}
29
30
SWC_CAN_INLINE
31
void
acknowledge
() noexcept {
32
Core::ScopedLock
lock(
m_mutex
);
33
m_ack
=
true
;
34
m_cv
.notify_all();
35
}
36
37
SWC_CAN_INLINE
38
void
reset
() noexcept {
39
m_ack
=
false
;
40
}
41
42
private
:
43
std::mutex
m_mutex
;
44
std::condition_variable
m_cv
;
45
bool
m_ack
;
46
47
};
48
49
50
51
}}
52
53
54
#endif // swcdb_core_StateSynchronization_h
SWC::Core::StateSynchronization::m_mutex
std::mutex m_mutex
Definition:
StateSynchronization.h:43
SWC::Core::StateSynchronization::m_ack
bool m_ack
Definition:
StateSynchronization.h:45
SWC::Core::UniqueLock
Definition:
MutexLock.h:68
SWC::Core::ScopedLock
Definition:
MutexLock.h:41
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition:
Compat.h:102
SWC::Core::StateSynchronization::wait
SWC_CAN_INLINE void wait()
Definition:
StateSynchronization.h:25
SWC
The SWC-DB C++ namespace 'SWC'.
Definition:
main.cc:12
Compat.h
SWC::Core::StateSynchronization::StateSynchronization
SWC_CAN_INLINE StateSynchronization() noexcept
Definition:
StateSynchronization.h:20
SWC::Core::StateSynchronization::reset
SWC_CAN_INLINE void reset() noexcept
Definition:
StateSynchronization.h:38
SWC::Core::StateSynchronization
Definition:
StateSynchronization.h:16
SWC::Core::StateSynchronization::m_cv
std::condition_variable m_cv
Definition:
StateSynchronization.h:44
SWC::Core::StateSynchronization::acknowledge
SWC_CAN_INLINE void acknowledge() noexcept
Definition:
StateSynchronization.h:31
SWC::Core::StateSynchronization::~StateSynchronization
~StateSynchronization() noexcept
Definition:
StateSynchronization.h:22
include
swcdb
core
StateSynchronization.h
Generated on Sat Jun 3 2023 18:00:06 for SWC-DB by
1.8.20