; Author: Yasir M. Arsanukaev <yarsanukaev AT gmail DOT com> ; License: The 2-clause BSD license. See LICENSE for details. #lang racket (require "encodes.rkt") (require "errors.rkt") (require "transport.rkt") (require racket/mpair) (provide call cast from-uri) (define (action kind transport m f a) (let* ((bert-request (encode-scheme-request (vector kind m f a))) (bert-response (recvt (sendt transport bert-request)))) (decode-bert-response bert-response))) (define call ((curry action) 'call)) (define cast ((curry action) 'cast)) ; Sample call ; (call (from-uri "bert://192.168.32.40:9999") 'nat 'add (list 5 9))