acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
extended_status.h
1#pragma once
2
3
4CLASS_DECL_ACME const_char_pointer status_short_description(const ::e_status & estatus);
5
6//
7//namespace extended
8//{
9//
10//
11// class CLASS_DECL_ACME status
12// {
13// public:
14//
15//
16//
17// /// Curitiba, 2 de abril de 2019
18// ///
19// /// m_estatus is light-weight failure/success indication
20// /// Also it is cached information.
21// /// It is required. So if exceptions are added to
22// /// m_pexceptiona, they should reflect just more detailed
23// /// information about a properly filled m_estatus.
24// /// No specific exception or detailed information is really required
25// /// through m_pexceptiona.
26// /// m_estatus indication is enough.
27// /// This way two things are enabled:
28// /// - Success/failure compact indication is easily available (through m_estatus)
29// /// - Simple/frequent failures/exceptions doesn't require the implementator
30// /// to fill and spend resources creating exception data that would be
31// /// rarely queried.
32//
33// ::e_status m_estatus;
34// ::pointer<::exception_array> m_pexceptiona;
35//
36//
37// status();
38// status(::enum_status estatus) ;
39// status(const ::e_status & estatus);
40// status(const std::initializer_list < void >& list_base);
41// status(const status& status);
42// status(status&& status);
43// status(const ::exception& e);
44// status(const std::initializer_list < ::exception >& list_base);
45// ~status();
46//
47//
48// static void set_skip_callstack(::i32 iStack);
49// static ::i32 get_skip_callstack();
50//
51// void set(const ::e_status & estatus);
52//
53// void set(::enum_status estatus);
54//
55// void add(const ::e_status & estatus);
56//
57// void add(::enum_status estatus);
58//
59// void add(const ::exception& e);
60//
61//
62// void add(const std::initializer_list < ::exception >& list_base);
63//
64//
65// void add(const std::initializer_list < void >& list_base);
66//
67// //bool get_exception(::exception& e, const ::e_status & estatus);
68//
69// bool get_exit_status(void& estatus) const;
70// void get_greatest_exception_on_range(enum_status estatusOpenStart, enum_status estatusOpenEnd) const;
71//
72// bool has(const ::e_status & estatus) const;
73//
74//
75// static string get_error_text(const ::e_status & estatus);
76//
77//
78// ::e_status estatus() const
79// {
80//
81// return m_estatus == undefined ? void(::success) : m_estatus;
82// }
83//
84// bool succeeded() const { return ::succeeded(estatus()); }
85//
86// bool failed() const { return !succeeded(); }
87//
88// operator bool() const { return succeeded(); }
89//
90// bool operator !() const { return failed(); }
91//
92// status & operator =(const ::e_status & estatus)
93// {
94//
95// set(estatus);
96//
97// return *this;
98//
99// }
100//
101// status& operator =(::enum_status estatus){return operator =((const void &) estatus);}
102//
103// status& operator =(const status& status)
104// {
105//
106// if (this != &status)
107// {
108//
109// m_estatus = status.m_estatus;
110// m_pexceptiona = status.m_pexceptiona;
111//
112// }
113//
114// return *this;
115//
116// }
117//
118//
119// status& operator =(status&& status)
120// {
121//
122// m_estatus = status.m_estatus;
123// m_pexceptiona = ::transfer(status.m_pexceptiona);
124//
125// return *this;
126//
127// }
128//
129//
130// void clear() { m_pexceptiona.release(); m_estatus = undefined; }
131//
132//
133// void add(const status& status);
134//
135// void set_error(const ::e_status & estatus);
136//
137//
138// };
139//
140//
141//
142//} // namespace extended
143
144
145//using exception_pointer = ::exception::exception_pointer;
146
147template < typename EXCEPTION >
148inline ::pointer<EXCEPTION>__move_throw_exception(EXCEPTION * pexceptionNew);
149
150CLASS_DECL_ACME ::pointer<::exception>__trace_context_move_throw_exception(::particle * pparticle, ::exception * pexceptionNew);
151
152
153
154
155
156
157
158//#define rp(T) ::transport < T >
159
160
161using unexpected_situation = ::exception;
162
163
164
165
Definition particle.h:95