changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > core / lisp/lib/net/srv.lisp

revision 405: 1816f9c53453
parent 381: 386d51cf61ca
child 435: 849bbe48e32d
     1.1--- a/lisp/lib/net/srv.lisp	Mon Jun 03 22:08:03 2024 -0400
     1.2+++ b/lisp/lib/net/srv.lisp	Tue Jun 04 18:53:40 2024 -0400
     1.3@@ -14,7 +14,7 @@
     1.4 #|
     1.5 (srv:start (srv:file-server)) ;; start a simple HTTP file server in current directory with all default values
     1.6 
     1.7-(srv:define-web-service my-homepage :port 8080 :auth (auth settings ...) :routes (routes ...) &more ...)
     1.8+(srv:define-service my-homepage :port 8080 :auth (auth settings ...) :routes (routes ...) &more ...)
     1.9 (with-ws (ws 'my-homepage)
    1.10   (srv:start ws))
    1.11 |#
    1.12@@ -26,3 +26,18 @@
    1.13 ;;; Code:
    1.14 (in-package :net/srv)
    1.15 
    1.16+(defmacro define-service (name &rest initargs)
    1.17+  "Define a subclass of NET/SRV:SERVICE."
    1.18+  `(defclass ,name ,@initargs))
    1.19+
    1.20+(defgeneric start-service (self)
    1.21+  (:documentation "Start a service."))
    1.22+
    1.23+(defgeneric stop-service (self)
    1.24+  (:documentation "Stop a service."))
    1.25+
    1.26+(defgeneric restart-service (self)
    1.27+  (:documentation "Restart a service.")
    1.28+  (:method ((self t))
    1.29+    (stop-service self)
    1.30+    (start-service self)))