10#define myExErr_1(code) exErr(errCode::code, getReport())
11#define myExErr_2(me, code) exErr(me, errCode::code, getReport())
12#define myExErr_3(me, code, a1) exErr(me, errCode::code, getReport(), a1)
13#define myExErr_4(me, code, a1, a2) exErr(me, errCode::code, getReport(), a1, a2)
14#define myExErr_5(me, code, a1, a2, a3) exErr(me, errCode::code, getReport(), a1, a2, a3)
15#define myExErr(...) BY_OVERLOAD(myExErr, __VA_ARGS__)
17#define myExWarn_1(code) exErr(errCode::code, getReport())
18#define myExWarn_2(me, code) exErr(me, errCode::code, getReport())
19#define myExWarn_3(me, code, a1) exErr(me, errCode::code, getReport(), a1)
20#define myExWarn_4(me, code, a1, a2) exErr(me, errCode::code, getReport(), a1, a2)
21#define myExWarn_5(me, code, a1, a2, a3) exErr(me, errCode::code, getReport(), a1, a2, a3)
22#define myExWarn(...) BY_OVERLOAD(myExWarn, __VA_ARGS__)
24#define BY_WORKER_GUARD(msg) \
25 BY_I("▶ '%s' %s@%s: " msg, i, me.getType(), &me); \
30 BY_I("◀ '%s' %s@%s: " msg, i, me.getType(), &me); \
58 template <
typename R,
typename T>
class tworker:
public typeProvidable,
public clonable {
60 template <
typename R1,
typename T1>
friend struct workerAdapter;
72 DEFAULT = DUMP_ON_EX | GUARD | INTERNAL | LOG_ON_END
88 me& addFlag(
nint flag);
89 me& delFlag(
nint clear);
93 me& setTask(
const T&
root);
94 me& setTask(
const T* it)
BY_SIDE_FUNC(it, setTask(*it), *
this);
122 virtual R _onWork() = 0;
126 void _onEndErrReport(
const errReport& rpt)
const;
Base class for error hierarchy
Definition baseErr.hpp:48
Error report collector
Definition errReport.hpp:24
Base worker template for processing tasks
Definition tworker.hpp:58
virtual void _prepare()
Protected virtual method for preparation before starting the work.
virtual void _onEndWork()
Protected virtual method called after the work is completed.