luvcraft/lobby.lisp
in-package#:luvcraft
defmethodstart-luvcraft-lobby
sessionluvcraft-session
let
client
or
luvcraft-session-lobby-clientsession
setf
luvcraft-session-lobby-clientsession
luv.lobby:make-lobby-client:client-id-prefix"luvcraft"
start-lobby-client is idempotent and also restarts a stopped client.
defmethodstop-luvcraft-lobby
sessionluvcraft-session
let
nilclient
luvcraft-session-lobby-clientsession
whenclient
Retain the reference if bounded cooperative shutdown fails so an interactive retry can still reach the worker.
setf
luvcraft-session-lobby-clientsession
nildefgeneric start-luvcraft-lobby
(session)Start SESSION's optional background lobby service and return it.
define-arithmetic-operator or
Logical disjunction of tests and raw truth values.
defun make-lobby-client
(&key (name (default-lobby-participant-name))
(client-id-prefix "luv")
(transport (make-instance 'mqtt-lobby-transport)))defun start-lobby-client
(client)defun stop-lobby-client
(client &key (timeout 3/4))Request cooperative stop and wait at most TIMEOUT seconds. No transport operation occurs on the caller. Repeated stops are idempotent.
Luvcraft ownership of the shared application lobby radio.