acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
sync_io_error.h
1// Created by camilo on 2022-10-21 23:41 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
5class CLASS_DECL_ACME sync_io_error
6{
7 public:
8
9
10 ::i32 m_iGenerateBefore;
11 ::i32 m_iErrorBefore;
12 ::i32 * m_piError;
13
14
15 sync_io_error(::i32 * piError = nullptr)
16 {
17 m_iGenerateBefore = get_generate_sync_io_error();
18 m_iErrorBefore = get_sync_io_error();
19 set_sync_io_error(0);
20 set_generate_sync_io_error(1);
21 m_piError = piError;
22 }
23
24 ~sync_io_error()
25 {
26 if (m_piError != nullptr)
27 {
28 *m_piError = get_sync_io_error();
29 }
30 set_generate_sync_io_error(m_iGenerateBefore);
31 set_sync_io_error(m_iErrorBefore);
32 }
33
34 bool none() const { return get_sync_io_error() == 0; }
35
36
37 explicit operator bool() const { return get_sync_io_error() != 0; }
38
39};
40
41