[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: email@example.com
- Subject: www(omega) event
- From: firstname.lastname@example.org (Alan Ruttenberg)
- Date: Mon, 23 Jan 1995 08:42:09 GMT
- Organization: MIT Media Laboratory Learning an Common Sense Group
- Sender: email@example.com
In article <firstname.lastname@example.org> email@example.com (Graham Higgins) writes:
I'd like to send a WWW(Omega)sdoc event to MCL.
Before I sink into the morass of AppleEvents and interprocess
communication documentation, has anyone been this way before?
Thanks in anticipation.
Here is an excerpt from an experiment I did a while ago (and then
moved on to other things). It should show what the basics of setting
up the appleevent receiver look like. The sketch is
1) install #'respond-to-http-request as the handler for the appleevent
2) respond-to-http-request takes out the string argument, calls a
routine which tries to respond, and passes something back to
the http server.
3) maybe-handle-framer-query did a look up in a database. If it found
an entry it generated an html description of it. If not it returns nil.
Someone mentioned that this is slow. It is. But I found the delay to
be on the order of seconds, not minutes.
Hope that this helps.
The key :|WWW| needs a (unprintable here) omega.
(ccl::install-appleevent-handler :|WWW| :|srch| #'respond-to-hhtp-request)
(defmethod respond-to-hhtp-request ((a application)
(declare (ignore handlerRefcon))
(let ((query (ccl::ae-get-parameter-char theAppleEvent #$keyDirectObject t)))
(ccl::ae-put-parameter-char reply #$keyDirectObject
(or (maybe-handle-framer-query query)
"Lisp didn't understand what you wanted") t)))
(defun maybe-handle-framer-query (query)
(when (and (char= (char query 0) #\#)
(char= (char query 1) #\/))
(describe-frame-in-html (eval (read-from-string query)) s)
(return-from maybe-handle-framer-query (get-output-stream-string s)))))