acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
wait_for_end_of_sequence.h
1// Created by camilo on 2024-11-19 01:10 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5#include "single_lock.h"
6
7
8class CLASS_DECL_ACME wait_for_end_of_sequence :
9 public single_lock
10{
11public:
12
13
14 ::sequence * m_psequence;
15 ::waiting_call_base * m_pwaitingcallbase;
16
17
18 explicit wait_for_end_of_sequence(manual_reset_happening * phappeningEndOfSequence, ::sequence * psequence, ::waiting_call_base * pwaitingcallbase);
19
20 void on_before_set(const class ::time & wait = ::time::infinity());
21 ::e_status on_set_or_timeout(::e_status estatus);
22 void _wait() { on_before_set(); single_lock::_wait(); on_set_or_timeout(::success); }
23 bool _wait(const class ::time & wait) { on_before_set(wait); return on_set_or_timeout(::single_lock::_wait(wait) ? ::success : ::error_wait_timeout); }
24 ::e_status wait() { on_before_set(); return on_set_or_timeout(single_lock::wait()); }
25 ::e_status wait(const class ::time & wait = ::time::infinity()) { on_before_set(wait); return on_set_or_timeout(single_lock::wait(wait)); }
26 void _lock() { on_before_set(); single_lock::_lock(); on_set_or_timeout(::success); }
27 bool lock(const class ::time & wait = ::time::infinity()) { on_before_set(wait); return on_set_or_timeout(::single_lock::lock(wait) ? ::success : ::error_wait_timeout); }
28
29
30};
31
32
33
34
Definition e_status.h:30
Definition aaa_manual_reset_event.h:26
Definition waiting_call.h:10