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
// 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 glib::translate::*; glib::wrapper! { /// SRV (service) records are used by some network protocols to provide /// service-specific aliasing and load-balancing. For example, XMPP /// (Jabber) uses SRV records to locate the XMPP server for a domain; /// rather than connecting directly to "example.com" or assuming a /// specific server hostname like "xmpp.example.com", an XMPP client /// would look up the "xmpp-client" SRV record for "example.com", and /// then connect to whatever host was pointed to by that record. /// /// You can use [`ResolverExt::lookup_service()`][crate::prelude::ResolverExt::lookup_service()] or /// [`ResolverExt::lookup_service_async()`][crate::prelude::ResolverExt::lookup_service_async()] to find the `GSrvTargets` /// for a given service. However, if you are simply planning to connect /// to the remote service, you can use [`NetworkService`][crate::NetworkService]'s /// [`SocketConnectable`][crate::SocketConnectable] interface and not need to worry about /// [`SrvTarget`][crate::SrvTarget] at all. #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct SrvTarget(Boxed<ffi::GSrvTarget>); match fn { copy => |ptr| ffi::g_srv_target_copy(mut_override(ptr)), free => |ptr| ffi::g_srv_target_free(ptr), type_ => || ffi::g_srv_target_get_type(), } } impl SrvTarget { /// Creates a new [`SrvTarget`][crate::SrvTarget] with the given parameters. /// /// You should not need to use this; normally `GSrvTargets` are /// created by [`Resolver`][crate::Resolver]. /// ## `hostname` /// the host that the service is running on /// ## `port` /// the port that the service is running on /// ## `priority` /// the target's priority /// ## `weight` /// the target's weight /// /// # Returns /// /// a new [`SrvTarget`][crate::SrvTarget]. #[doc(alias = "g_srv_target_new")] pub fn new(hostname: &str, port: u16, priority: u16, weight: u16) -> SrvTarget { unsafe { from_glib_full(ffi::g_srv_target_new( hostname.to_glib_none().0, port, priority, weight, )) } } /// Gets `self`'s hostname (in ASCII form; if you are going to present /// this to the user, you should use `g_hostname_is_ascii_encoded()` to /// check if it contains encoded Unicode segments, and use /// `g_hostname_to_unicode()` to convert it if it does.) /// /// # Returns /// /// `self`'s hostname #[doc(alias = "g_srv_target_get_hostname")] #[doc(alias = "get_hostname")] pub fn hostname(&mut self) -> glib::GString { unsafe { from_glib_none(ffi::g_srv_target_get_hostname(self.to_glib_none_mut().0)) } } /// Gets `self`'s port /// /// # Returns /// /// `self`'s port #[doc(alias = "g_srv_target_get_port")] #[doc(alias = "get_port")] pub fn port(&mut self) -> u16 { unsafe { ffi::g_srv_target_get_port(self.to_glib_none_mut().0) } } /// Gets `self`'s priority. You should not need to look at this; /// [`Resolver`][crate::Resolver] already sorts the targets according to the algorithm in /// RFC 2782. /// /// # Returns /// /// `self`'s priority #[doc(alias = "g_srv_target_get_priority")] #[doc(alias = "get_priority")] pub fn priority(&mut self) -> u16 { unsafe { ffi::g_srv_target_get_priority(self.to_glib_none_mut().0) } } /// Gets `self`'s weight. You should not need to look at this; /// [`Resolver`][crate::Resolver] already sorts the targets according to the algorithm in /// RFC 2782. /// /// # Returns /// /// `self`'s weight #[doc(alias = "g_srv_target_get_weight")] #[doc(alias = "get_weight")] pub fn weight(&mut self) -> u16 { unsafe { ffi::g_srv_target_get_weight(self.to_glib_none_mut().0) } } //#[doc(alias = "g_srv_target_list_sort")] //pub fn list_sort(targets: /*Unimplemented*/&[&Fundamental: Pointer]) -> /*Unimplemented*/Vec<Fundamental: Pointer> { // unsafe { TODO: call ffi:g_srv_target_list_sort() } //} }