Big refactor for 8sync on fibers in progress.
[8sync.git] / 8sync / systems / irc.scm
index fff346177859e9d0125b53d4336f0dd5cc319aae..030f2d3b8b68b4e7c19f778d529478d4357bdef9 100755 (executable)
   (socket #:accessor irc-bot-socket)
   (actions #:allocation #:each-subclass
            #:init-thunk (build-actions
-                         (*init* irc-bot-init)
-                         (*cleanup* irc-bot-cleanup)
                          (main-loop irc-bot-main-loop)
                          (handle-line handle-line)
                          (send-line irc-bot-send-line-action))))
   (or (slot-ref irc-bot 'realname)
       (irc-bot-username irc-bot)))
 
-(define (irc-bot-init irc-bot message)
+(define-method (actor-init! (irc-bot <irc-bot>))
   "Initialize the IRC bot"
   (define socket
     (irc-socket-setup (irc-bot-server irc-bot)
                       (irc-bot-port irc-bot)))
+  (pk 'initing-irc)
   (set! (irc-bot-socket irc-bot) socket)
   (format socket "USER ~a ~a ~a :~a~a"
           (irc-bot-username irc-bot)
 
   (<- (actor-id irc-bot) 'main-loop))
 
-(define (irc-bot-cleanup irc-bot message)
+(define-method (actor-cleanup! (irc-bot <irc-bot>))
   (close (irc-bot-socket irc-bot)))
 
 (define (irc-bot-main-loop irc-bot message)
    ((eof-object? (peek-char socket))
     (close socket)
     'done)
-   ;; ;; Looks like we've been killed somehow... well, stop running
-   ;; ;; then!
-   ;; ((actor-am-i-dead? irc-bot)
-   ;;  (if (not (port-closed? socket))
-   ;;      (close socket))
-   ;;  'done)
-   ;; Otherwise, let's read till the next line!
    (else
     (<- (actor-id irc-bot) 'main-loop))))