1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
use Buffer;
use Device;
use DomDocument;
use DomNode;
use GcFeatureNode;
use GcInvalidatorNode;
use GcNode;
use RegisterCachePolicy;
use aravis_sys;
use glib::object::Cast;
use glib::object::IsA;
use glib::translate::*;
use std::fmt;
glib_wrapper! {
pub struct Gc(Object<aravis_sys::ArvGc, aravis_sys::ArvGcClass, GcClass>) @extends DomDocument, DomNode;
match fn {
get_type => || aravis_sys::arv_gc_get_type(),
}
}
impl Gc {
pub fn p_value_indexed_node_new() -> Gc {
assert_initialized_main_thread!();
unsafe {
GcNode::from_glib_full(aravis_sys::arv_gc_p_value_indexed_node_new()).unsafe_cast()
}
}
pub fn invalidator_has_changed<P: IsA<GcInvalidatorNode>>(self_: &P) -> bool {
skip_assert_initialized!();
unsafe {
from_glib(aravis_sys::arv_gc_invalidator_has_changed(self_.as_ref().to_glib_none().0))
}
}
}
pub const NONE_GC: Option<&Gc> = None;
pub trait GcExt: 'static {
fn get_buffer(&self) -> Option<Buffer>;
fn get_device(&self) -> Option<Device>;
fn get_node(&self, name: &str) -> Option<GcNode>;
fn get_register_cache_policy(&self) -> RegisterCachePolicy;
fn register_feature_node<P: IsA<GcFeatureNode>>(&self, node: &P);
fn set_buffer<P: IsA<Buffer>>(&self, buffer: &P);
fn set_register_cache_policy(&self, policy: RegisterCachePolicy);
}
impl<O: IsA<Gc>> GcExt for O {
fn get_buffer(&self) -> Option<Buffer> {
unsafe {
from_glib_none(aravis_sys::arv_gc_get_buffer(self.as_ref().to_glib_none().0))
}
}
fn get_device(&self) -> Option<Device> {
unsafe {
from_glib_none(aravis_sys::arv_gc_get_device(self.as_ref().to_glib_none().0))
}
}
fn get_node(&self, name: &str) -> Option<GcNode> {
unsafe {
from_glib_none(aravis_sys::arv_gc_get_node(self.as_ref().to_glib_none().0, name.to_glib_none().0))
}
}
fn get_register_cache_policy(&self) -> RegisterCachePolicy {
unsafe {
from_glib(aravis_sys::arv_gc_get_register_cache_policy(self.as_ref().to_glib_none().0))
}
}
fn register_feature_node<P: IsA<GcFeatureNode>>(&self, node: &P) {
unsafe {
aravis_sys::arv_gc_register_feature_node(self.as_ref().to_glib_none().0, node.as_ref().to_glib_none().0);
}
}
fn set_buffer<P: IsA<Buffer>>(&self, buffer: &P) {
unsafe {
aravis_sys::arv_gc_set_buffer(self.as_ref().to_glib_none().0, buffer.as_ref().to_glib_none().0);
}
}
fn set_register_cache_policy(&self, policy: RegisterCachePolicy) {
unsafe {
aravis_sys::arv_gc_set_register_cache_policy(self.as_ref().to_glib_none().0, policy.to_glib());
}
}
}
impl fmt::Display for Gc {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Gc")
}
}