23 lines
909 B
Racket
23 lines
909 B
Racket
#lang imperative-syndicate
|
|
|
|
(require "../client.rkt")
|
|
(require "../wire-protocol.rkt")
|
|
(require "../internal-protocol.rkt")
|
|
(require "../protocol.rkt")
|
|
|
|
(require imperative-syndicate/protocol/credit)
|
|
|
|
(require/activate imperative-syndicate/distributed/server)
|
|
|
|
(spawn #:name 'loopback-client-factory
|
|
(during/spawn (server-connection ($ address (server-loopback-connection $scope)))
|
|
#:name address
|
|
(assert (server-poa address))
|
|
(on (message (message-server->poa address $p)) (send! (server-packet address p)))
|
|
(define !! (make-flow-controlled-sender message-poa->server address))
|
|
(on (asserted (observe (message-poa->server address _)))
|
|
(react
|
|
(generic-client-session-facet address
|
|
scope
|
|
(lambda (x) (!! (message-poa->server address x))))))))
|