gio/auto/
network_service.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use gio_sys;
6use glib::object::Cast;
7use glib::object::IsA;
8use glib::signal::connect_raw;
9use glib::signal::SignalHandlerId;
10use glib::translate::*;
11use glib::GString;
12use glib_sys;
13use std::boxed::Box as Box_;
14use std::fmt;
15use std::mem::transmute;
16use SocketConnectable;
17
18glib_wrapper! {
19    pub struct NetworkService(Object<gio_sys::GNetworkService, gio_sys::GNetworkServiceClass, NetworkServiceClass>) @implements SocketConnectable;
20
21    match fn {
22        get_type => || gio_sys::g_network_service_get_type(),
23    }
24}
25
26impl NetworkService {
27    pub fn new(service: &str, protocol: &str, domain: &str) -> NetworkService {
28        unsafe {
29            from_glib_full(gio_sys::g_network_service_new(
30                service.to_glib_none().0,
31                protocol.to_glib_none().0,
32                domain.to_glib_none().0,
33            ))
34        }
35    }
36}
37
38pub const NONE_NETWORK_SERVICE: Option<&NetworkService> = None;
39
40pub trait NetworkServiceExt: 'static {
41    fn get_domain(&self) -> Option<GString>;
42
43    fn get_protocol(&self) -> Option<GString>;
44
45    fn get_scheme(&self) -> Option<GString>;
46
47    fn get_service(&self) -> Option<GString>;
48
49    fn set_scheme(&self, scheme: &str);
50
51    fn connect_property_scheme_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
52}
53
54impl<O: IsA<NetworkService>> NetworkServiceExt for O {
55    fn get_domain(&self) -> Option<GString> {
56        unsafe {
57            from_glib_none(gio_sys::g_network_service_get_domain(
58                self.as_ref().to_glib_none().0,
59            ))
60        }
61    }
62
63    fn get_protocol(&self) -> Option<GString> {
64        unsafe {
65            from_glib_none(gio_sys::g_network_service_get_protocol(
66                self.as_ref().to_glib_none().0,
67            ))
68        }
69    }
70
71    fn get_scheme(&self) -> Option<GString> {
72        unsafe {
73            from_glib_none(gio_sys::g_network_service_get_scheme(
74                self.as_ref().to_glib_none().0,
75            ))
76        }
77    }
78
79    fn get_service(&self) -> Option<GString> {
80        unsafe {
81            from_glib_none(gio_sys::g_network_service_get_service(
82                self.as_ref().to_glib_none().0,
83            ))
84        }
85    }
86
87    fn set_scheme(&self, scheme: &str) {
88        unsafe {
89            gio_sys::g_network_service_set_scheme(
90                self.as_ref().to_glib_none().0,
91                scheme.to_glib_none().0,
92            );
93        }
94    }
95
96    fn connect_property_scheme_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
97        unsafe extern "C" fn notify_scheme_trampoline<P, F: Fn(&P) + 'static>(
98            this: *mut gio_sys::GNetworkService,
99            _param_spec: glib_sys::gpointer,
100            f: glib_sys::gpointer,
101        ) where
102            P: IsA<NetworkService>,
103        {
104            let f: &F = &*(f as *const F);
105            f(&NetworkService::from_glib_borrow(this).unsafe_cast())
106        }
107        unsafe {
108            let f: Box_<F> = Box_::new(f);
109            connect_raw(
110                self.as_ptr() as *mut _,
111                b"notify::scheme\0".as_ptr() as *const _,
112                Some(transmute(notify_scheme_trampoline::<Self, F> as usize)),
113                Box_::into_raw(f),
114            )
115        }
116    }
117}
118
119impl fmt::Display for NetworkService {
120    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
121        write!(f, "NetworkService")
122    }
123}