jvmti_rs/wrapper/facade/
watched_field.rs1use crate::{objects::*, errors::*, Transform, AdapterTransform, JVMTIFacadeEnv};
2use jni::strings::JNIString;
3use jni_sys::jfieldID;
4
5impl<'a> JVMTIFacadeEnv<'a> {
6 pub fn set_field_access_watch<K, F>(&self, class: K, field: F) -> Result<()>
7 where
8 K: Transform<'a, JClass<'a>>,
9 F: AdapterTransform<jfieldID> {
10 self.jvmti_rust().set_field_access_watch(self.jni_rust(), class, field)
11 }
12
13 pub fn clear_field_access_watch<K, F>(&self, class: K, field: F) -> Result<()>
14 where
15 K: Transform<'a, JClass<'a>>,
16 F: AdapterTransform<jfieldID> {
17 self.jvmti_rust().clear_field_access_watch(self.jni_rust(), class, field)
18 }
19
20 pub fn set_field_modification_watch<K, F>(&self, class: K, field: F) -> Result<()>
21 where
22 K: Transform<'a, JClass<'a>>,
23 F: AdapterTransform<jfieldID> {
24 self.jvmti_rust().set_field_modification_watch(self.jni_rust(), class, field)
25 }
26
27 pub fn clear_field_modification_watch<K, F>(&self, class: K, field: F) -> Result<()>
28 where
29 K: Transform<'a, JClass<'a>>,
30 F: AdapterTransform<jfieldID> {
31 self.jvmti_rust().clear_field_modification_watch(self.jni_rust(), class, field)
32 }
33
34 pub fn set_field_access_watch_s<K, F, V>(&self, class: K, name: F, sig: V) -> Result<()>
35 where
36 K: Into<JNIString>,
37 F: Into<JNIString>,
38 V: Into<JNIString> {
39 self.jvmti_rust().set_field_access_watch_s(self.jni_rust(), class, name, sig)
40 }
41
42 pub fn clear_field_access_watch_s<K, F, V>(&self, class: K, name: F, sig: V) -> Result<()>
43 where
44 K: Into<JNIString>,
45 F: Into<JNIString>,
46 V: Into<JNIString> {
47 self.jvmti_rust().clear_field_access_watch_s(self.jni_rust(), class, name, sig)
48 }
49
50 pub fn set_field_modification_watch_s<K, F, V>(&self, class: K, name: F, sig: V) -> Result<()>
51 where
52 K: Into<JNIString>,
53 F: Into<JNIString>,
54 V: Into<JNIString> {
55 self.jvmti_rust().set_field_modification_watch_s(self.jni_rust(), class, name, sig)
56 }
57
58 pub fn clear_field_modification_watch_s<K, F, V>(&self, class: K, name: F, sig: V) -> Result<()>
59 where
60 K: Into<JNIString>,
61 F: Into<JNIString>,
62 V: Into<JNIString> {
63 self.jvmti_rust().clear_field_modification_watch_s(self.jni_rust(), class, name, sig)
64 }
65}