jvmti_rs/wrapper/event/
handler.rs1use crate::event::*;
2
3#[derive(Clone, Copy)]
4pub struct EventHandlers {
5 pub class_prepare: EventClassPrepareFn,
6 pub breakpoint: EventBreakpointFn,
7 pub class_file_load_hook: EventClassFileLoadHookFn,
8 pub class_load: EventClassLoadFn,
9 pub compiled_method_load: CompiledMethodLoadFn,
10 pub compiled_method_unload: CompiledMethodUnloadFn,
11 pub data_dump_request: DataDumpRequestFn,
12 pub dynamic_code_generated: DynamicCodeGeneratedFn,
13 pub exception: ExceptionFn,
14 pub exception_catch: ExceptionCatchFn,
15 pub field_access: FieldAccessFn,
16 pub field_modification: FieldModificationFn,
17 pub frame_pop: FramePopFn,
18 pub garbage_collection_finish: GarbageCollectionFinishFn,
19 pub garbage_collection_start: GarbageCollectionStartFn,
20 pub method_entry: MethodEntryFn,
21 pub method_exit: MethodExitFn,
22 pub monitor_contended_enter: MonitorContendedEnterFn,
23 pub monitor_contended_entered: MonitorContendedEnteredFn,
24 pub monitor_wait: MonitorWaitFn,
25 pub monitor_waited: MonitorWaitedFn,
26 pub native_method_bind: NativeMethodBindFn,
27 pub object_free: ObjectFreeFn,
28 pub resource_exhausted: ResourceExhaustedFn,
29 pub single_step: SingleStepFn,
30 pub thread_end: ThreadEndFn,
31 pub thread_start: ThreadStartFn,
32 pub vm_death: VmDeathFn,
33 pub vm_init: VmInitFn,
34 pub vm_object_alloc: VmObjectAllocFn,
35 pub vm_start: VmStartFn,
36}
37
38impl EventHandlers {
39 pub fn new() -> EventHandlers {
40 empty_event_handlers!()
41 }
42
43 pub fn set_breakpoint(&mut self, event: EventBreakpointFn) { self.breakpoint = event }
44 pub fn set_class_file_load_hook(&mut self, event: EventClassFileLoadHookFn) { self.class_file_load_hook = event }
45 pub fn set_class_load(&mut self, event: EventClassLoadFn) { self.class_load = event }
46 pub fn set_class_prepare(&mut self, event: EventClassPrepareFn) { self.class_prepare = event }
47 pub fn set_compiled_method_load(&mut self, event: CompiledMethodLoadFn) { self.compiled_method_load = event }
48 pub fn set_compiled_method_unload(&mut self, event: CompiledMethodUnloadFn) { self.compiled_method_unload = event }
49 pub fn set_data_dump_request(&mut self, event: DataDumpRequestFn) { self.data_dump_request = event }
50 pub fn set_dynamic_code_generated(&mut self, event: DynamicCodeGeneratedFn) { self.dynamic_code_generated = event }
51 pub fn set_exception(&mut self, event: ExceptionFn) { self.exception = event }
52 pub fn set_exception_catch(&mut self, event: ExceptionCatchFn) { self.exception_catch = event }
53 pub fn set_field_access(&mut self, event: FieldAccessFn) { self.field_access = event }
54 pub fn set_field_modification(&mut self, event: FieldModificationFn) { self.field_modification = event }
55 pub fn set_frame_pop(&mut self, event: FramePopFn) { self.frame_pop = event }
56 pub fn set_garbage_collection_finish(&mut self, event: GarbageCollectionFinishFn) { self.garbage_collection_finish = event }
57 pub fn set_garbage_collection_start(&mut self, event: GarbageCollectionStartFn) { self.garbage_collection_start = event }
58 pub fn set_method_entry(&mut self, event: MethodEntryFn) { self.method_entry = event }
59 pub fn set_method_exit(&mut self, event: MethodExitFn) { self.method_exit = event }
60 pub fn set_monitor_contended_enter(&mut self, event: MonitorContendedEnterFn) { self.monitor_contended_enter = event }
61 pub fn set_monitor_contended_entered(&mut self, event: MonitorContendedEnteredFn) { self.monitor_contended_entered = event }
62 pub fn set_monitor_wait(&mut self, event: MonitorWaitFn) { self.monitor_wait = event }
63 pub fn set_monitor_waited(&mut self, event: MonitorWaitedFn) { self.monitor_waited = event }
64 pub fn set_native_method_bind(&mut self, event: NativeMethodBindFn) { self.native_method_bind = event }
65 pub fn set_object_free(&mut self, event: ObjectFreeFn) { self.object_free = event }
66 pub fn set_resource_exhausted(&mut self, event: ResourceExhaustedFn) { self.resource_exhausted = event }
67 pub fn set_single_step(&mut self, event: SingleStepFn) { self.single_step = event }
68 pub fn set_thread_end(&mut self, event: ThreadEndFn) { self.thread_end = event }
69 pub fn set_thread_start(&mut self, event: ThreadStartFn) { self.thread_start = event }
70 pub fn set_vm_death(&mut self, event: VmDeathFn) { self.vm_death = event }
71 pub fn set_vm_init(&mut self, event: VmInitFn) { self.vm_init = event }
72 pub fn set_vm_object_alloc(&mut self, event: VmObjectAllocFn) { self.vm_object_alloc = event }
73 pub fn set_vm_start(&mut self, event: VmStartFn) { self.vm_start = event }
74}