diff --git a/examples/netstack/fetchurl.rkt b/examples/netstack/fetchurl.rkt index a88c12f..daa470b 100644 --- a/examples/netstack/fetchurl.rkt +++ b/examples/netstack/fetchurl.rkt @@ -1,22 +1,18 @@ -#lang syndicate/monolithic +#lang syndicate/actor -(require syndicate/drivers/timer) -(require "demo-config.rkt") -(require "ethernet.rkt") -(require "arp.rkt") (require "ip.rkt") (require "tcp.rkt") (require "udp.rkt") ;;(log-events-and-actions? #t) -(spawn-timer-driver) -(spawn-ethernet-driver) -(spawn-arp-driver) +(require/activate syndicate/drivers/timer) +(require/activate "ethernet.rkt") +(require/activate "arp.rkt") (spawn-ip-driver) (spawn-tcp-driver) (spawn-udp-driver) -(spawn-demo-config) +(require/activate "demo-config.rkt") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -24,25 +20,14 @@ (define local-handle (tcp-handle 'httpclient)) (define remote-handle (tcp-address "129.10.115.92" 80)) - (spawn (lambda (e seen-peer?) - (match e - [(scn g) - (define peer-present? (trie-non-empty? g)) - (if (and (not peer-present?) seen-peer?) - (begin (printf "URL fetcher exiting.\n") - (quit)) - (transition (or seen-peer? peer-present?) - (message - (tcp-channel - local-handle - remote-handle - #"GET / HTTP/1.0\r\nHost: stockholm.ccs.neu.edu\r\n\r\n"))))] - [(message (tcp-channel _ _ bs)) + (actor (react + (assert (advertise (tcp-channel local-handle remote-handle _))) + (on (asserted (advertise (tcp-channel remote-handle local-handle _))) + (send! (tcp-channel local-handle + remote-handle + #"GET / HTTP/1.0\r\nHost: stockholm.ccs.neu.edu\r\n\r\n"))) + (stop-when (retracted (advertise (tcp-channel remote-handle local-handle _))) + (printf "URL fetcher exiting.\n")) + (on (message (tcp-channel remote-handle local-handle $bs)) (printf "----------------------------------------\n~a\n" bs) - (printf "----------------------------------------\n") - #f] - [_ #f])) - #f - (scn/union (advertisement (tcp-channel local-handle remote-handle ?)) - (subscription (tcp-channel remote-handle local-handle ?)) - (subscription (advertise (tcp-channel remote-handle local-handle ?)))))) + (printf "----------------------------------------\n")))))