toad_jni/java/net/
inetsocketaddress.rs1use java::Object;
2
3use super::{InetAddress, SocketAddress};
4use crate::java;
5
6pub struct InetSocketAddress(java::lang::Object);
8
9impl InetSocketAddress {
10 pub fn as_socket_address(&self, e: &mut java::Env) -> SocketAddress {
12 self.downcast_ref(e).upcast_to(e)
13 }
14
15 pub fn from_socket_address(e: &mut java::Env, addr: SocketAddress) -> Self {
17 addr.downcast_ref(e).upcast_to(e)
18 }
19
20 pub fn new_wildcard_address(e: &mut java::Env, port: i32) -> Self {
25 static CTOR: java::Constructor<InetSocketAddress, fn(i32)> = java::Constructor::new();
26 CTOR.invoke(e, port)
27 }
28
29 pub fn new_resolved(e: &mut java::Env, host: impl ToString, port: i32) -> Self {
34 static CTOR: java::Constructor<InetSocketAddress, fn(String, i32)> = java::Constructor::new();
35 CTOR.invoke(e, host.to_string(), port)
36 }
37
38 pub fn new(e: &mut java::Env, addr: InetAddress, port: i32) -> Self {
42 static CTOR: java::Constructor<InetSocketAddress, fn(InetAddress, i32)> =
43 java::Constructor::new();
44 CTOR.invoke(e, addr, port)
45 }
46
47 pub fn address(&self, e: &mut java::Env) -> InetAddress {
49 static GET_ADDRESS: java::Method<InetSocketAddress, fn() -> InetAddress> =
50 java::Method::new("getAddress");
51 GET_ADDRESS.invoke(e, self)
52 }
53
54 pub fn port(&self, e: &mut java::Env) -> u16 {
56 static GET_PORT: java::Method<InetSocketAddress, fn() -> i32> = java::Method::new("getPort");
57 GET_PORT.invoke(e, self) as u16
58 }
59
60 pub fn to_std(&self, e: &mut java::Env) -> std::net::SocketAddr {
62 std::net::SocketAddr::new(self.address(e).to_std(e), self.port(e))
63 }
64
65 pub fn to_no_std(&self, e: &mut java::Env) -> no_std_net::SocketAddr {
67 no_std_net::SocketAddr::new(self.address(e).to_no_std(e), self.port(e))
68 }
69
70 pub fn from_std(e: &mut java::Env, addr: std::net::SocketAddr) -> Self {
72 let ip = InetAddress::from_std(e, addr.ip());
73 Self::new(e, ip, addr.port() as i32)
74 }
75
76 pub fn from_no_std(e: &mut java::Env, addr: no_std_net::SocketAddr) -> Self {
78 let ip = InetAddress::from_no_std(e, addr.ip());
79 Self::new(e, ip, addr.port() as i32)
80 }
81}
82
83java::object_newtype!(InetSocketAddress);
84impl java::Class for InetSocketAddress {
85 const PATH: &'static str = "java/net/InetSocketAddress";
86}