14 using BkptDelegate = std::function<Result<BkptFlagsSet>(
const u32 &)>;
15 using SvcDelegate = std::function<Result<SvcFlagsSet>(
const u32 &)>;
17 explicit Delegates(PreExecDelegate pre_exec_delegate, PostExecDelegate post_exec_delegate,
18 BkptDelegate bkpt_delegate, SvcDelegate svc_delegate)
19 : pre_exec_delegate_(pre_exec_delegate), post_exec_delegate_(post_exec_delegate),
20 bkpt_delegate_(bkpt_delegate), svc_delegate_(svc_delegate) {}
23 ~Delegates() =
default;
24 Delegates(
const Delegates &) =
default;
25 Delegates &operator=(
const Delegates &) =
default;
26 Delegates(Delegates &&) =
default;
27 Delegates &operator=(Delegates &&) =
default;
29 bool IsPreExecSet() {
return pre_exec_delegate_ !=
nullptr; }
30 bool IsPostExecSet() {
return post_exec_delegate_ !=
nullptr; }
31 bool IsBkptSet() {
return bkpt_delegate_ !=
nullptr; }
32 bool IsSvcSet() {
return svc_delegate_ !=
nullptr; }
34 void PreExec(
EmuContext &emu_ctx) { pre_exec_delegate_(emu_ctx); }
36 void PostExec(
EmuContext &emu_ctx) { post_exec_delegate_(emu_ctx); }
42 PreExecDelegate pre_exec_delegate_{
nullptr};
43 PostExecDelegate post_exec_delegate_{
nullptr};
44 BkptDelegate bkpt_delegate_{
nullptr};
45 SvcDelegate svc_delegate_{
nullptr};
Definition emu_context.h:79