Dolda2000 GitWeb
/
doldaconnect.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f4473d0
)
Changed dc-handle-fn and the new dc-handle-msg to one function dc-util-handle.
author
Fredrik Tolf
<fredrik@dolda2000.com>
Tue, 13 Nov 2007 16:07:39 +0000
(17:07 +0100)
committer
Fredrik Tolf
<fredrik@dolda2000.com>
Tue, 13 Nov 2007 16:07:39 +0000
(17:07 +0100)
lib/guile/dolcon/util.scm
patch
|
blob
|
blame
|
history
diff --git
a/lib/guile/dolcon/util.scm
b/lib/guile/dolcon/util.scm
index
5680338
..
30b25c1
100644
(file)
--- a/
lib/guile/dolcon/util.scm
+++ b/
lib/guile/dolcon/util.scm
@@
-21,6
+21,7
@@
(define fnetnodes '())
(define loop-procs '())
(define fn-procs '())
(define fnetnodes '())
(define loop-procs '())
(define fn-procs '())
+(define msg-procs '())
(define-public dc-fn-update
(lambda ()
(define-public dc-fn-update
(lambda ()
@@
-71,7
+72,7
@@
(set! fn-procs (cons (list event proc)
fn-procs))))
(set! fn-procs (cons (list event proc)
fn-procs))))
-(define
-public
dc-handle-fn
+(define dc-handle-fn
(lambda ()
(dc-fn-update)
(let* ((notify (lambda (event data) (for-each (lambda (o) (if (eq? event (car o)) ((cadr o) data))) fn-procs)))
(lambda ()
(dc-fn-update)
(let* ((notify (lambda (event data) (for-each (lambda (o) (if (eq? event (car o)) ((cadr o) data))) fn-procs)))
@@
-103,6
+104,26
@@
(notify 'dstr (cdr nform))
(set! fnetnodes (delq nform fnetnodes))))))))
(notify 'dstr (cdr nform))
(set! fnetnodes (delq nform fnetnodes))))))))
+(define-public dc-msgproc-reg
+ (lambda (proc)
+ (set! msg-procs (cons proc msg-procs))))
+
+(define dc-handle-msg
+ (lambda ()
+ (dc-loop-reg ".notify" 640 (lambda (r er)
+ (let ((sender (cadadr (assq 'resp er)))
+ (message (cddadr (assq 'resp er))))
+ (for-each (lambda (o) (o sender message))
+ msg-procs))))))
+
+(define-public dc-util-handle
+ (lambda what
+ (for-each (lambda (o)
+ (case o
+ ((fn) (dc-handle-fn))
+ ((msg) (dc-handle-msg))))
+ what)))
+
(define-public dc-loop-reg
(lambda (cmd code proc)
(set! loop-procs (cons (cons (cons cmd code) proc)
(define-public dc-loop-reg
(lambda (cmd code proc)
(set! loop-procs (cons (cons (cons cmd code) proc)