jvmti_rs/wrapper/facade/
watched_field.rs

1use 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}