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
// 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::translate::*; use glib::GString; 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` or /// `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`'s /// `SocketConnectable` interface and not need to worry about /// `SrvTarget` at all. #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct SrvTarget(Boxed<gio_sys::GSrvTarget>); match fn { copy => |ptr| gio_sys::g_srv_target_copy(mut_override(ptr)), free => |ptr| gio_sys::g_srv_target_free(ptr), get_type => || gio_sys::g_srv_target_get_type(), } } impl SrvTarget { /// Creates a new `SrvTarget` with the given parameters. /// /// You should not need to use this; normally `GSrvTargets` are /// created by `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`. pub fn new(hostname: &str, port: u16, priority: u16, weight: u16) -> SrvTarget { unsafe { from_glib_full(gio_sys::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 pub fn get_hostname(&mut self) -> Option<GString> { unsafe { from_glib_none(gio_sys::g_srv_target_get_hostname( self.to_glib_none_mut().0, )) } } /// Gets `self`'s port /// /// # Returns /// /// `self`'s port pub fn get_port(&mut self) -> u16 { unsafe { gio_sys::g_srv_target_get_port(self.to_glib_none_mut().0) } } /// Gets `self`'s priority. You should not need to look at this; /// `Resolver` already sorts the targets according to the algorithm in /// RFC 2782. /// /// # Returns /// /// `self`'s priority pub fn get_priority(&mut self) -> u16 { unsafe { gio_sys::g_srv_target_get_priority(self.to_glib_none_mut().0) } } /// Gets `self`'s weight. You should not need to look at this; /// `Resolver` already sorts the targets according to the algorithm in /// RFC 2782. /// /// # Returns /// /// `self`'s weight pub fn get_weight(&mut self) -> u16 { unsafe { gio_sys::g_srv_target_get_weight(self.to_glib_none_mut().0) } } //pub fn list_sort(targets: /*Unimplemented*/&[&Fundamental: Pointer]) -> /*Unimplemented*/Vec<Fundamental: Pointer> { // unsafe { TODO: call gio_sys:g_srv_target_list_sort() } //} }