aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/world/net/udp.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/world/net/udp.lux53
1 files changed, 26 insertions, 27 deletions
diff --git a/stdlib/source/lux/world/net/udp.lux b/stdlib/source/lux/world/net/udp.lux
index df9244186..44a1354cc 100644
--- a/stdlib/source/lux/world/net/udp.lux
+++ b/stdlib/source/lux/world/net/udp.lux
@@ -45,52 +45,51 @@
[write //.can-write]
[close //.can-close])))))
-(with-expansions [<for-jvm> (as-is (import: java/lang/AutoCloseable
- (close [] #io #try void))
+(with-expansions [<for-jvm> (as-is (import: #long java/lang/String)
- (import: java/io/Flushable
- (flush [] #io #try void))
+ (import: #long java/lang/AutoCloseable
+ (close [] #io #try void))
- (import: java/net/InetAddress
- (#static getAllByName [String] #io #try [InetAddress])
- (getHostAddress [] String))
+ (import: #long java/net/InetAddress
+ (#static getAllByName [java/lang/String] #io #try [java/net/InetAddress])
+ (getHostAddress [] java/lang/String))
- (import: java/net/DatagramPacket
- (new #as new|send [[byte] int int InetAddress int])
+ (import: #long java/net/DatagramPacket
+ (new #as new|send [[byte] int int java/net/InetAddress int])
(new #as new|receive [[byte] int int])
- (getAddress [] InetAddress)
+ (getAddress [] java/net/InetAddress)
(getPort [] int)
(getLength [] int))
- (import: java/net/DatagramSocket
+ (import: #long java/net/DatagramSocket
(new #as new|client [] #io #try)
(new #as new|server [int] #io #try)
- (receive [DatagramPacket] #io #try void)
- (send [DatagramPacket] #io #try void))
+ (receive [java/net/DatagramPacket] #io #try void)
+ (send [java/net/DatagramPacket] #io #try void))
(def: (resolve address)
- (-> //.Address (IO (Error InetAddress)))
+ (-> //.Address (IO (Error java/net/InetAddress)))
(do (error.with io.monad)
- [addresses (InetAddress::getAllByName address)]
- (: (IO (Error InetAddress))
+ [addresses (java/net/InetAddress::getAllByName address)]
+ (: (IO (Error java/net/InetAddress))
(case (array.size addresses)
0 (io.io (ex.throw cannot-resolve-address address))
1 (wrap (maybe.assume (array.read 0 addresses)))
_ (io.io (ex.throw multiple-candidate-addresses address))))))
(def: (udp socket)
- (-> DatagramSocket (UDP IO))
+ (-> java/net/DatagramSocket (UDP IO))
(structure (def: read
(//.can-read
(function (read size)
(let [data (binary.create size)
- packet (DatagramPacket::new|receive data +0 (.int size))]
+ packet (java/net/DatagramPacket::new|receive data +0 (.int size))]
(do (error.with io.monad)
- [_ (DatagramSocket::receive packet socket)
- #let [bytes-read (.nat (DatagramPacket::getLength packet))]]
+ [_ (java/net/DatagramSocket::receive packet socket)
+ #let [bytes-read (.nat (java/net/DatagramPacket::getLength packet))]]
(wrap [bytes-read
- {#//.address (|> packet DatagramPacket::getAddress InetAddress::getHostAddress)
- #//.port (.nat (DatagramPacket::getPort packet))}
+ {#//.address (|> packet java/net/DatagramPacket::getAddress java/net/InetAddress::getHostAddress)
+ #//.port (.nat (java/net/DatagramPacket::getPort packet))}
data]))))))
(def: write
@@ -98,23 +97,23 @@
(function (write [location data])
(do (error.with io.monad)
[address (resolve (get@ #//.address location))]
- (DatagramSocket::send (DatagramPacket::new|send data +0 (.int (binary.size data)) address (.int (get@ #//.port location)))
- socket)))))
+ (java/net/DatagramSocket::send (java/net/DatagramPacket::new|send data +0 (.int (binary.size data)) address (.int (get@ #//.port location)))
+ socket)))))
(def: close
(//.can-close
(function (close _)
- (AutoCloseable::close socket))))))
+ (java/lang/AutoCloseable::close socket))))))
(def: #export client
(IO (Error (UDP IO)))
- (|> (DatagramSocket::new|client)
+ (|> (java/net/DatagramSocket::new|client)
(:: (error.with io.monad) map ..udp)))
(def: #export server
(-> //.Port (IO (Error (UDP IO))))
(|>> .int
- DatagramSocket::new|server
+ java/net/DatagramSocket::new|server
(:: (error.with io.monad) map ..udp)))
)]
(`` (for {(~~ (static @.old))