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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use gio_sys; use glib::object::IsA; use glib::translate::*; use glib::StaticType; use glib::Value; use gobject_sys; use std::fmt; use SocketAddress; use SocketConnectable; use UnixSocketAddressType; glib_wrapper! { /// Support for UNIX-domain (also known as local) sockets. /// /// UNIX domain sockets are generally visible in the filesystem. /// However, some systems support abstract socket names which are not /// visible in the filesystem and not affected by the filesystem /// permissions, visibility, etc. Currently this is only supported /// under Linux. If you attempt to use abstract sockets on other /// systems, function calls may return `IOErrorEnum::NotSupported` /// errors. You can use `UnixSocketAddress::abstract_names_supported` /// to see if abstract names are supported. /// /// Note that `<gio/gunixsocketaddress.h>` belongs to the UNIX-specific GIO /// interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file /// when using it. /// /// # Implements /// /// [`UnixSocketAddressExt`](trait.UnixSocketAddressExt.html), [`SocketAddressExt`](trait.SocketAddressExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`SocketConnectableExt`](trait.SocketConnectableExt.html), [`UnixSocketAddressExtManual`](prelude/trait.UnixSocketAddressExtManual.html) pub struct UnixSocketAddress(Object<gio_sys::GUnixSocketAddress, gio_sys::GUnixSocketAddressClass, UnixSocketAddressClass>) @extends SocketAddress, @implements SocketConnectable; match fn { get_type => || gio_sys::g_unix_socket_address_get_type(), } } impl UnixSocketAddress { //pub fn new_abstract(path: /*Unimplemented*/&CArray TypeId { ns_id: 0, id: 10 }) -> UnixSocketAddress { // unsafe { TODO: call gio_sys:g_unix_socket_address_new_abstract() } //} //pub fn new_with_type(path: /*Unimplemented*/&CArray TypeId { ns_id: 0, id: 10 }, type_: UnixSocketAddressType) -> UnixSocketAddress { // unsafe { TODO: call gio_sys:g_unix_socket_address_new_with_type() } //} /// Checks if abstract UNIX domain socket names are supported. /// /// # Returns /// /// `true` if supported, `false` otherwise pub fn abstract_names_supported() -> bool { unsafe { from_glib(gio_sys::g_unix_socket_address_abstract_names_supported()) } } } unsafe impl Send for UnixSocketAddress {} unsafe impl Sync for UnixSocketAddress {} pub const NONE_UNIX_SOCKET_ADDRESS: Option<&UnixSocketAddress> = None; /// Trait containing all `UnixSocketAddress` methods. /// /// # Implementors /// /// [`UnixSocketAddress`](struct.UnixSocketAddress.html) pub trait UnixSocketAddressExt: 'static { /// Gets `self`'s type. /// /// # Returns /// /// a `UnixSocketAddressType` fn get_address_type(&self) -> UnixSocketAddressType; /// Tests if `self` is abstract. /// /// # Deprecated /// /// Use `UnixSocketAddressExt::get_address_type` /// /// # Returns /// /// `true` if the address is abstract, `false` otherwise fn get_is_abstract(&self) -> bool; /// Gets the length of `self`'s path. /// /// For details, see `UnixSocketAddress::get_path`. /// /// # Returns /// /// the length of the path fn get_path_len(&self) -> usize; /// Whether or not this is an abstract address /// /// # Deprecated /// /// Use `UnixSocketAddress:address-type`, which /// distinguishes between zero-padded and non-zero-padded /// abstract addresses. fn get_property_abstract(&self) -> bool; //fn get_property_path_as_array(&self) -> /*Ignored*/Option<glib::ByteArray>; } impl<O: IsA<UnixSocketAddress>> UnixSocketAddressExt for O { fn get_address_type(&self) -> UnixSocketAddressType { unsafe { from_glib(gio_sys::g_unix_socket_address_get_address_type( self.as_ref().to_glib_none().0, )) } } fn get_is_abstract(&self) -> bool { unsafe { from_glib(gio_sys::g_unix_socket_address_get_is_abstract( self.as_ref().to_glib_none().0, )) } } fn get_path_len(&self) -> usize { unsafe { gio_sys::g_unix_socket_address_get_path_len(self.as_ref().to_glib_none().0) } } fn get_property_abstract(&self) -> bool { unsafe { let mut value = Value::from_type(<bool as StaticType>::static_type()); gobject_sys::g_object_get_property( self.to_glib_none().0 as *mut gobject_sys::GObject, b"abstract\0".as_ptr() as *const _, value.to_glib_none_mut().0, ); value .get() .expect("Return Value for property `abstract` getter") .unwrap() } } //fn get_property_path_as_array(&self) -> /*Ignored*/Option<glib::ByteArray> { // unsafe { // let mut value = Value::from_type(</*Unknown type*/ as StaticType>::static_type()); // gobject_sys::g_object_get_property(self.to_glib_none().0 as *mut gobject_sys::GObject, b"path-as-array\0".as_ptr() as *const _, value.to_glib_none_mut().0); // value.get().expect("Return Value for property `path-as-array` getter") // } //} } impl fmt::Display for UnixSocketAddress { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "UnixSocketAddress") } }