clean up formatting of rpc-server in unmaintained

Doug Coleman 2009-05-30 19:16:23 -05:00
parent 8b2e7b72db
commit 9db1c993cb
1 changed files with 25 additions and 17 deletions

View File

@ -2,36 +2,44 @@ USING: accessors assocs continuations effects io
io.encodings.binary io.servers.connection kernel io.encodings.binary io.servers.connection kernel
memoize namespaces parser sets sequences serialize memoize namespaces parser sets sequences serialize
threads vocabs vocabs.parser words ; threads vocabs vocabs.parser words ;
IN: modules.rpc-server IN: modules.rpc-server
SYMBOL: serving-vocabs V{ } clone serving-vocabs set-global SYMBOL: serving-vocabs V{ } clone serving-vocabs set-global
: do-rpc ( args word -- bytes ) : do-rpc ( args word -- bytes )
[ execute ] curry with-datastack object>bytes ; inline [ execute ] curry with-datastack object>bytes ; inline
MEMO: mem-do-rpc ( args word -- bytes ) do-rpc ; inline MEMO: mem-do-rpc ( args word -- bytes ) do-rpc ; inline
: process ( vocabspec -- ) vocab-words [ deserialize ] dip deserialize : process ( vocabspec -- )
swap at "executer" get execute( args word -- bytes ) write flush ; vocab-words [ deserialize ] dip deserialize
swap at "executer" get execute( args word -- bytes ) write flush ;
: (serve) ( -- ) deserialize dup serving-vocabs get-global index : (serve) ( -- )
[ process ] [ drop ] if ; deserialize dup serving-vocabs get-global index
[ process ] [ drop ] if ;
: start-serving-vocabs ( -- ) [ : start-serving-vocabs ( -- )
<threaded-server> 5000 >>insecure binary >>encoding [ (serve) ] >>handler [
start-server ] in-thread ; binary <threaded-server>
5000 >>insecure
[ (serve) ] >>handler
start-server
] in-thread ;
: (service) ( -- ) serving-vocabs get-global empty? [ start-serving-vocabs ] when : (service) ( -- )
current-vocab serving-vocabs get-global adjoin serving-vocabs get-global empty? [ start-serving-vocabs ] when
"get-words" create-in current-vocab serving-vocabs get-global adjoin
in get [ vocab vocab-words [ stack-effect ] { } assoc-map-as ] curry "get-words" create-in
(( -- words )) define-inline ; in get [ vocab vocab-words [ stack-effect ] { } assoc-map-as ] curry
(( -- words )) define-inline ;
SYNTAX: service \ do-rpc "executer" set (service) ; SYNTAX: service \ do-rpc "executer" set (service) ;
SYNTAX: mem-service \ mem-do-rpc "executer" set (service) ; SYNTAX: mem-service \ mem-do-rpc "executer" set (service) ;
load-vocab-hook [ load-vocab-hook [
[ dup words>> values [
\ mem-do-rpc "memoize" word-prop [ delete-at ] curry each ] dup words>> values
append ] change-global \ mem-do-rpc "memoize" word-prop [ delete-at ] curry each
] append
] change-global