racketmq-2017/racketmq/hub.rkt

34 lines
1.1 KiB
Racket

#lang syndicate/actor
(require racket/cmdline)
(require racket/set)
(require "private/util.rkt")
(require "protocol.rkt")
(require/activate "config.rkt")
(require/activate "hub/static-content.rkt")
(require/activate "hub/topic-demand.rkt")
(require/activate "hub/local-topic.rkt")
(require/activate "hub/subscription.rkt")
(command-line #:program "racketmq"
#:once-each
["--canonical-host" host port "Specify the canonical host and port for this hub"
(actor #:name (list 'command-line-canonical-host host port)
(assert (config (list 'canonical-host host (string->number port)))))]
#:multi
[("-c" "--config") filename "Specify a configuration file to load"
(spawn-configuration filename)])
(actor #:name 'main
(during (config (list 'canonical-host $h $p))
(assert (canonical-local-host h p))
(assert (local-host h p)))
(during (config (list 'accepted-host $h $p))
(assert (local-host h p)))
(during (local-host $host-name $port)
(assert (vh host-name port))))