The lichat-serverlib Reference Manual

This is the lichat-serverlib Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 05:40:28 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 lichat-serverlib

Tools to help build a server using the lichat protocol.

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://Shirakumo.github.io/lichat-serverlib/

Source Control

(GIT https://github.com/Shirakumo/lichat-serverlib.git)

Bug Tracker

https://github.com/Shirakumo/lichat-serverlib/issues

License

zlib

Version

1.0.0

Dependencies
  • lichat-protocol (system).
  • crypto-shortcuts (system).
  • trivial-mimes (system).
  • documentation-utils (system).
Source

lichat-serverlib.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 lichat-serverlib/lichat-serverlib.asd

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

ASDF Systems

lichat-serverlib.


3.1.2 lichat-serverlib/package.lisp

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Packages

lichat-serverlib.


3.1.3 lichat-serverlib/server-objects.lisp

Dependency

package.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Public Interface
Internals

3.1.4 lichat-serverlib/server-operations.lisp

Dependency

server-objects.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Public Interface

3.1.5 lichat-serverlib/connection-maintenance.lisp

Dependency

server-operations.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Public Interface
Internals

3.1.6 lichat-serverlib/update-handlers.lisp

Dependency

connection-maintenance.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Public Interface

3.1.7 lichat-serverlib/emotes.lisp

Dependency

update-handlers.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).

Public Interface
Internals

3.1.8 lichat-serverlib/documentation.lisp

Dependency

emotes.lisp (file).

Source

lichat-serverlib.asd.

Parent Component

lichat-serverlib (system).


4 Packages

Packages are listed by definition order.


4.1 lichat-serverlib

Source

package.lisp.

Nickname

org.shirakumo.lichat.serverlib

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *allowed-emote-content-types*
Package

lichat-serverlib.

Source

emotes.lisp.


5.1.2 Macros

Macro: define-update-handler (type (connection update) &body body)

Easy wrapper to define a handler method for an update on a connection.

UPDATE is coerced to a symbol found in the LICHAT-PROTOCOL package.

This creates a PROCESS method.

See PROCESS

Package

lichat-serverlib.

Source

update-handlers.lisp.


5.1.3 Compiler macros

Compiler Macro: send! (connection type-ish &rest initargs)
Package

lichat-serverlib.

Source

connection-maintenance.lisp.


5.1.4 Ordinary functions

Function: add-emote (pathname)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: add-emotes (directory)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: check-channel (connection update &optional must-be-in)

Checks whether the CHANNEL field is a valid channel.

If the channel does not exist, a FAILURE-CONDITION for a LICHAT-PROTOCOL:NO-SUCH-CHANNEL failure is signalled. If it does exist, but the user is not a part of it, a FAILURE CONDITION for a LICHAT-PROTOCOL:NOT-IN-CHANNEL failure is signalled. Otherwise, the corresponding channel object is returned.

This is in accordance with §5.1.5 §5.4.2 §5.4.3 §5.4.4 §5.4.5

See LICHAT-PROTOCOL:NO-SUCH-CHANNEL
See LICHAT-PROTOCOL:NOT-IN-CHANNEL
See FIND-CHANNEL

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: check-channelname (connection update)

Checks whether the CHANNEL field has a valid, unused name.

If the channel name is malformed, a FAILURE-CONDITION for a LICHAT-PROTOCOL:BAD-NAME failure is signalled. If it is valid, but a channel of that name already exists, a FAILURE- CONDITION for a LICHAT-PROTOCOL:CHANNELNAME-TAKEN failure is signalled.

This is in accordance with §5.1.3 §5.3.2

See LICHAT-PROTOCOL:BAD-NAME
See LICHAT-PROTOCOL:CHANNELNAME-TAKEN
See FIND-CHANNEL
See LICHAT-PROTOCOL:CHANNELNAME-P

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: check-from (connection update)

Checks whether the FROM field matches the update.

If it is not, a FAILURE-CONDITION for a LICHAT-PROTOCOL: USERNAME-MISMATCH failure is signalled. If it is, the corresponding user object is returned.

This is in accordance with §5.1.4

See LICHAT-PROTOCOL:USERNAME-MISMATCH
See FIND-USER

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: check-permitted (connection update &optional channel)

Checks whether the given update is permitted.

If it is not, a FAILURE-CONDITION for a LICHAT-PROTOCOL: INSUFFICIENT-PERMISSIONS failure is signalled.

This is in accordance with §5.1.7

See PERMITTED
See LICHAT-PROTOCOL:INSUFFICIENT-PERMISSIONS

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: check-target (connection update)

Checks whether the TARGET field is a valid user.

If it is not, a FAILURE-CONDITION for a LICHAT-PROTOCOL: NO-SUCH-USER failure is signalled. If it is, the corresponding user object is returned.

This is in accordance with §5.1.6

See LICHAT-PROTOCOL:NO-SUCH-USER
See FIND-USER

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: coerce-channelname (name-ish)

Attempt to coerce the name-ish to a channel name.

Valid types are: LICHAT-PROTOCOL:CHANNEL-UPDATE LICHAT-PROTOCOL:CHANNEL
STRING

Package

lichat-serverlib.

Source

server-objects.lisp.

Function: coerce-username (name-ish)

Attempt to coerce the name-ish to a user name.

Valid types are:
LICHAT-PROTOCOL:UPDATE LICHAT-PROTOCOL:USER
STRING

Package

lichat-serverlib.

Source

server-objects.lisp.

Function: emote (name)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: (setf emote) (name)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: fail! (type-ish &rest initargs)

Signal a FAILURE-CONDITION that carries the designated failure and sends it off to the client.

See FAILURE-CONDITION

Package

lichat-serverlib.

Source

connection-maintenance.lisp.

Function: permitted (action channel user)

Returns true if the action on the channel by the user is permitted.

Action should be the class-name of an update.

See RULE-PERMITTED
See LICHAT-PROTOCOL:PERMISSIONS

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: prep-perms (registrant perms)

Prepare the list of permissions rule for the registrant.

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: remove-emote (name)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: rule-permitted (rule name)

Checks whether the given rule allows the user of the given name access.

The rule evaluation is implemented according to §2.5

Package

lichat-serverlib.

Source

server-operations.lisp.

Function: send! (connection type-ish &rest initargs)

Convenience function to send an update to a connection.

Specifically, this will:
* Coerce the type-ish to a protocol type by looking the symbol up in the lichat-protocol package.
* Add the :FROM initarg if it does not yet exist by using the connection’s server’s name.

See SEND

Package

lichat-serverlib.

Source

connection-maintenance.lisp.


5.1.5 Generic functions

Generic Function: alive-p (timeoutable)

Returns T if the object is still considered to be alive.

Package

lichat-serverlib.

Methods
Method: alive-p ((timeoutable timeoutable))
Source

server-objects.lisp.

Generic Reader: allowed-content-types (object)
Package

lichat-serverlib.

Methods
Reader Method: allowed-content-types ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

allowed-content-types.

Generic Writer: (setf allowed-content-types) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf allowed-content-types) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

allowed-content-types.

Generic Reader: backlog (object)
Package

lichat-serverlib.

Methods
Reader Method: backlog ((backlogged-channel backlogged-channel))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

backlog.

Generic Writer: (setf backlog) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf backlog) ((backlogged-channel backlogged-channel))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

backlog.

Generic Reader: channels (object)

Accessor to the hash-table of channels that exist on the server.

See SERVER

Package

lichat-serverlib.

Methods
Reader Method: channels ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

channels.

Generic Writer: (setf channels) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf channels) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

channels.

Generic Function: check-connection-timeout (connection)
Package

lichat-serverlib.

Methods
Method: check-connection-timeout ((connection connection))
Source

connection-maintenance.lisp.

Generic Function: create (registrant name server)

Creates an appropriate channel object for the registrant on the server.

If NAME is NIL, a random ID with an @ prefix is chosen
that does not already exist on the server.
If NAME is STRING= to the name of the server, a primary
channel is created.
Otherwise a regular channel is created.

This is in accordance to §2.4

Note that this will /not/ check whether a channel of the
given name already exists and will instead just replace
it.

See PREP-PERMS
See LICHAT-PROTOCOL:CREATE
See MAKE-CHANNEL
See FIND-CHANNEL
See LICHAT-PROTOCOL:*DEFAULT-ANONYMOUS-CHANNEL-PERMISSIONS*
See LICHAT-PROTOCOL:*DEFAULT-PRIMARY-CHANNEL-PERMISSIONS*
See LICHAT-PROTOCOL:*DEFAULT-REGULAR-CHANNEL-PERMISSIONS*

Package

lichat-serverlib.

Methods
Method: create (registrant name (server server))
Source

server-operations.lisp.

Generic Reader: default-read-limit (object)
Package

lichat-serverlib.

Methods
Reader Method: default-read-limit ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

default-read-limit.

Generic Writer: (setf default-read-limit) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf default-read-limit) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

default-read-limit.

Generic Reader: failure-args (condition)

The initargs of the failure update that should be constructed to relay this error to the client.

See FAILURE-CONDITION

Package

lichat-serverlib.

Methods
Reader Method: failure-args ((condition failure-condition))
Source

connection-maintenance.lisp.

Target Slot

failure-args.

Generic Reader: failure-type (condition)

The type of the failure update that should be constructed to relay this error to the client.

See FAILURE-CONDITION

Package

lichat-serverlib.

Methods
Reader Method: failure-type ((condition failure-condition))
Source

connection-maintenance.lisp.

Target Slot

failure-type.

Generic Function: find-channel (name server)

Accesses a channel by the given name-ish on the server.

See COERCE-CHANNELNAME
See CHANNELS
See REMOVE-CHANNEL

Package

lichat-serverlib.

Methods
Method: find-channel (name (server server))
Source

server-objects.lisp.

Generic Function: (setf find-channel) (name server)
Package

lichat-serverlib.

Methods
Method: (setf find-channel) (name (server server))
Source

server-objects.lisp.

Generic Function: find-profile (name server)

Accesses a profile by the given name-ish on the server.

See COERCE-USERNAME
See PROFILES
See REMOVE-PROFILE

Package

lichat-serverlib.

Methods
Method: find-profile ((name string) (server server))
Source

server-objects.lisp.

Method: find-profile (name (server server))
Source

server-objects.lisp.

Generic Function: (setf find-profile) (name server)
Package

lichat-serverlib.

Methods
Method: (setf find-profile) (name (server server))
Source

server-objects.lisp.

Generic Function: find-user (name server)

Accesses a user by the given name-ish on the server.

See COERCE-USERNAME
See USERS
See REMOVE-USER

Package

lichat-serverlib.

Methods
Method: find-user (name (server server))
Source

server-objects.lisp.

Generic Function: (setf find-user) (name server)
Package

lichat-serverlib.

Methods
Method: (setf find-user) (name (server server))
Source

server-objects.lisp.

Generic Reader: flood-frame (object)

Accessor to the number of seconds for which a flood frame lasts.

See FLOOD-PROTECTED-SERVER

Package

lichat-serverlib.

Methods
Reader Method: flood-frame ((flood-protected-server flood-protected-server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

flood-frame.

Generic Writer: (setf flood-frame) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf flood-frame) ((flood-protected-server flood-protected-server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

flood-frame.

Generic Reader: flood-limit (object)

Accessor to the number of updates that can be received within a frame before the connection is limited.

See FLOOD-PROTECTED-SERVER

Package

lichat-serverlib.

Methods
Reader Method: flood-limit ((flood-protected-server flood-protected-server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

flood-limit.

Generic Writer: (setf flood-limit) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf flood-limit) ((flood-protected-server flood-protected-server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

flood-limit.

Generic Reader: frame-count (object)

Accessor to the number of updates that were processed within the last frame.

See FLOOD-PROTECTED-CONNECTION

Package

lichat-serverlib.

Methods
Reader Method: frame-count ((flood-protected-connection flood-protected-connection))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

frame-count.

Generic Writer: (setf frame-count) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf frame-count) ((flood-protected-connection flood-protected-connection))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

frame-count.

Generic Reader: idle-timeout (object)

Accessor to the number of seconds a connection can be idle before it is considered timed out.

See SERVER

Package

lichat-serverlib.

Methods
Reader Method: idle-timeout ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

idle-timeout.

Generic Writer: (setf idle-timeout) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf idle-timeout) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

idle-timeout.

Generic Function: init-connection (connection update)

Registers the connection on the server and prepares it for use.

This corresponds to §4.1.8 to §4.1.12 with the additional act that a related profile’s timeout is reset, if such a profile is found.

See RESET-TIMEOUT

Package

lichat-serverlib.

Methods
Method: init-connection ((connection connection) update)
Source

server-operations.lisp.

Generic Function: join (channel user &optional id)

Join a user to a channel.

Note that this will /not/ check whether the user is already in the channel or not and will just join them regardless.

A JOIN update is sent to all channel inhabitants, with the given ID, or a fresh one if none is given.

The channel’s timeout is reset.

See LICHAT-PROTOCOL:JOIN
See LICHAT-PROTOCOL:NEXT-ID
See RESET-TIMEOUT

Package

lichat-serverlib.

Methods
Method: join :after ((channel backlogged-channel) (user user) &optional id)
Source

server-operations.lisp.

Method: join ((channel channel) (user user) &optional id)
Source

server-operations.lisp.

Generic Reader: join-times (object)
Package

lichat-serverlib.

Methods
Reader Method: join-times ((backlogged-channel backlogged-channel))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

join-times.

Generic Writer: (setf join-times) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf join-times) ((backlogged-channel backlogged-channel))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

join-times.

Generic Reader: last-frame (object)

Accessor to the last frame number the connection handled.

See FLOOD-PROTECTED-CONNECTION

Package

lichat-serverlib.

Methods
Reader Method: last-frame ((flood-protected-connection flood-protected-connection))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

last-frame.

Generic Writer: (setf last-frame) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf last-frame) ((flood-protected-connection flood-protected-connection))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

last-frame.

Generic Reader: last-update (object)

Accessor to the universal-time of when the last update was processed on the connection.

See CONNECTION

Package

lichat-serverlib.

Methods
Reader Method: last-update ((connection connection))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

last-update.

Generic Writer: (setf last-update) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf last-update) ((connection connection))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

last-update.

Generic Function: leave (channel user &key id notify-self)

Leave a user from a channel.

Note that this will /not/ check whether the user actually is in the channel or not and will just leave them regardless.

A LEAVE update is sent to all channel inhabitants, with the given ID, or a fresh one if none is given.

If no users remain, the channel’s timeout is started.

If NOTIFY-SELF is NIL, the LEAVE update is sent to every channel inhabitant other than the user leaving. Otherwise, the update is sent to everyone including the one leaving.

See LICHAT-PROTOCOL:LEAVE
See LICHAT-PROTOCOL:NEXT-ID
See START-TIMEOUT

Package

lichat-serverlib.

Methods
Method: leave :after ((channel backlogged-channel) (user user) &key id notify-self)
Source

server-operations.lisp.

Method: leave ((channel channel) (user user) &key id notify-self)
Source

server-operations.lisp.

Generic Function: list-channels (server)

Return a fresh list of all known channel objects for the server.

See CHANNEL

Package

lichat-serverlib.

Methods
Method: list-channels ((server server))
Source

server-objects.lisp.

Generic Function: list-profiles (server)
Package

lichat-serverlib.

Methods
Method: list-profiles ((server server))
Source

server-objects.lisp.

Generic Function: list-users (server)

Return a fresh list of all known profile objects for the server.

See PROFILE

Package

lichat-serverlib.

Methods
Method: list-users ((server server))
Source

server-objects.lisp.

Generic Function: make-channel (server &rest initargs)

Construct an appropriate channel object for the server.

See CHANNEL

Package

lichat-serverlib.

Methods
Method: make-channel ((server server) &rest initargs)
Source

server-objects.lisp.

Generic Function: make-connection (server &rest initargs)

Construct an appropriate connection object for the server.

See CONNECTION

Package

lichat-serverlib.

Methods
Method: make-connection ((server flood-protected-server) &rest initargs)
Source

server-objects.lisp.

Method: make-connection ((server server) &rest initargs)
Source

server-objects.lisp.

Generic Function: make-profile (server &rest initargs)

Construct an appropriate user object for the server.

See PROFILE

Package

lichat-serverlib.

Methods
Method: make-profile ((server server) &rest initargs)
Source

server-objects.lisp.

Generic Function: make-user (server &rest initargs)

Construct an appropriate user object for the server.

See USER

Package

lichat-serverlib.

Methods
Method: make-user ((server server) &rest initargs)
Source

server-objects.lisp.

Generic Function: pass-flood-gate (connection update)

Updates flood information for the connection and returns whether the connection is fine or not.

See FLOOD-PROTECTED-CONNECTION
See PROCESS

Package

lichat-serverlib.

Methods
Method: pass-flood-gate ((connection flood-protected-connection) (update update))
Source

connection-maintenance.lisp.

Method: pass-flood-gate ((connection connection) update)
Source

connection-maintenance.lisp.

Generic Reader: password (object)
Package

lichat-serverlib.

Methods
Reader Method: password ((simple-profile simple-profile))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

password.

Generic Writer: (setf password) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf password) ((profile simple-profile))
Source

server-objects.lisp.

Target Slot

password.

Generic Function: password-valid-p (profile password)
Package

lichat-serverlib.

Source

server-objects.lisp.

Methods
Method: password-valid-p ((profile simple-profile) password)
Generic Function: process (connection stream)

Process an update source on a connection.

Sources that are accepted:
* STREAM – An update is read from the stream and sent off to PROCESS again.
* LICHAT-PROTOCOL:UPDATE – The update is handled accordingly.

If an error of type FAILURE-CONDITION is signalled during the evaluation of non-around methods, the encapsulated failure update is sent to the connection. If an error of type LICHAT-PROTOCOL: PROTOCOL-CONDITION is signalled during the evaluation of non-around methods, an update of type LICHAT-PROTOCOL:FAILURE is sent to the connection.

A CONTINUE restart is established around the method that can be used to respond with a generic LICHAT-PROTOCOL:UPDATE-FAILURE and return from the PROCESS method.

This method will also take care to handle flooding and timeout recording for the connection.

The overarching server must establish a restart called CLOSE- CONNECTION around the PROCESS method, or around all calls of it. When this restart is invoked, the server must close the underlying connection.

See LICHAT-PROTOCOL:FROM-WIRE
See LICHAT-PROTOCOL:PROTOCOL-CONDITION
See LICHAT-PROTOCOL:UPDATE-FAILURE
See FAILURE-CONDITION

Package

lichat-serverlib.

Methods
Method: process ((connection connection) (update emotes))
Source

emotes.lisp.

Method: process ((connection connection) (update data))
Source

update-handlers.lisp.

Method: process ((connection connection) (update backfill))
Source

update-handlers.lisp.

Method: process ((connection connection) (update user-info))
Source

update-handlers.lisp.

Method: process ((connection connection) (update register))
Source

update-handlers.lisp.

Method: process ((connection connection) (update permissions))
Source

update-handlers.lisp.

Method: process ((connection connection) (update pull))
Source

update-handlers.lisp.

Method: process ((connection connection) (update kick))
Source

update-handlers.lisp.

Method: process ((connection connection) (update create))
Source

update-handlers.lisp.

Method: process ((connection connection) (update users))
Source

update-handlers.lisp.

Method: process ((connection connection) (update channels))
Source

update-handlers.lisp.

Method: process ((connection connection) (update leave))
Source

update-handlers.lisp.

Method: process ((connection connection) (update join))
Source

update-handlers.lisp.

Method: process ((connection connection) (update message))
Source

update-handlers.lisp.

Method: process ((connection connection) (update pong))
Source

update-handlers.lisp.

Method: process ((connection connection) (update ping))
Source

update-handlers.lisp.

Method: process ((connection connection) (update disconnect))
Source

update-handlers.lisp.

Method: process ((connection connection) (update connect))
Source

update-handlers.lisp.

Method: process :around ((connection connection) (update update))
Source

connection-maintenance.lisp.

Method: process :around ((connection flood-protected-connection) (update update))
Source

connection-maintenance.lisp.

Method: process ((connection connection) (stream stream))
Source

connection-maintenance.lisp.

Generic Reader: profiles (object)

Accessor to the hash-table of profiles that exist on the server.

See SERVER

Package

lichat-serverlib.

Methods
Reader Method: profiles ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

profiles.

Generic Writer: (setf profiles) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf profiles) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

profiles.

Generic Reader: read-limit (object)
Package

lichat-serverlib.

Methods
Reader Method: read-limit ((connection connection))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

read-limit.

Generic Writer: (setf read-limit) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf read-limit) ((connection connection))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

read-limit.

Generic Function: register (registrant password server)

Register a user profile.

Note that this will /not/ check whether the associated user actually exists on the server or not and will just create the profile regardless.

See FIND-PROFILE
See MAKE-PROFILE
See LICHAT-PROTOCOL:REGISTER

Package

lichat-serverlib.

Methods
Method: register (registrant password server)
Source

server-operations.lisp.

Generic Function: remove-channel (name server)

Removes the channel by the given name from the server.

See COERCE-CHANNELNAME
See CHANNELS
See FIND-CHANNEL

Package

lichat-serverlib.

Methods
Method: remove-channel (name (server server))
Source

server-objects.lisp.

Generic Function: remove-profile (name server)

Removes the profile by the given name-ish from the server.

See COERCE-USERNAME
See PROFILES
See FIND-PROFILE

Package

lichat-serverlib.

Methods
Method: remove-profile (name (server server))
Source

server-objects.lisp.

Generic Function: remove-user (name server)

Removes the user by the given name-ish from the server.

See COERCE-USERNAME
See USERS
See FIND-USER

Package

lichat-serverlib.

Methods
Method: remove-user (name (server server))
Source

server-objects.lisp.

Generic Function: reset-timeout (timeoutable)

Resets the timeout to never occur.

See TIMEOUTABLE

Package

lichat-serverlib.

Methods
Method: reset-timeout ((timeoutable timeoutable))
Source

server-objects.lisp.

Generic Function: send (object connection)

Send an update to a place.

Places that are accepted:
* CONNECTION – Directly sends the update over the wire. Note that the primary method for this must be implemented by the overarching server.
* USER – Relays the update to all connections of the user. * CHANNEL – Relays the update to all users in the channel.

This function has to be called in a regular interval by the overarching server. It will take care of handling connection timeouts and will close the connection in case of one.

See CONNECTION
See USER
See CHANNEL

Package

lichat-serverlib.

Methods
Method: send ((object object) (user user))
Source

connection-maintenance.lisp.

Method: send ((object object) (channel channel))
Source

connection-maintenance.lisp.

Method: send :after ((object update) (channel backlogged-channel))
Source

connection-maintenance.lisp.

Method: send :before ((object object) (connection connection))
Source

connection-maintenance.lisp.

Generic Reader: server (object)

Accessor to the connection’s server.

See CONNECTION

Package

lichat-serverlib.

Methods
Reader Method: server ((connection connection))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

server.

Generic Function: (setf server) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf server) :after ((connection connection))
Source

server-objects.lisp.

Target Slot

server.

Method: (setf server) ((connection connection))

automatically generated writer method

Source

server-objects.lisp.

Generic Function: start-timeout (timeoutable)

Starts the timeout by setting the object’s TIMEOUT slot to the correct time.

See TIMEOUTABLE
See LICHAT-PROTOCOL:LIFETIME

Package

lichat-serverlib.

Methods
Method: start-timeout ((timeoutable timeoutable))
Source

server-objects.lisp.

Generic Function: teardown-connection (connection)

Removes and cleans up the connection on the server.

This corresponds to §4.3.3 to §4.3.4 with the additional act that a related profile’s timeout is started, if such a profile is found.

See START-TIMEOUT

Package

lichat-serverlib.

Methods
Method: teardown-connection ((connection connection))
Source

server-operations.lisp.

Generic Reader: timeout (object)

The universal-time by which the object will be invalidated, if any.

See TIMEOUTABLE

Package

lichat-serverlib.

Methods
Reader Method: timeout ((timeoutable timeoutable))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

timeout.

Generic Writer: (setf timeout) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf timeout) ((timeoutable timeoutable))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

timeout.

Generic Reader: users (object)

Accessor to the hash-table of users that exist on the server.

See SERVER

Package

lichat-serverlib.

Methods
Reader Method: users ((server server))

automatically generated reader method

Source

server-objects.lisp.

Target Slot

users.

Generic Writer: (setf users) (object)
Package

lichat-serverlib.

Methods
Writer Method: (setf users) ((server server))

automatically generated writer method

Source

server-objects.lisp.

Target Slot

users.


5.1.6 Standalone methods

Method: initialize-instance :after ((connection connection) &key server)
Source

server-objects.lisp.

Method: initialize-instance :after ((server server) &key name)
Source

server-objects.lisp.

Method: initialize-instance :after ((profile simple-profile) &key password)
Source

server-objects.lisp.


5.1.7 Conditions

Condition: failure-condition

Wrapper condition to carry a failure update.

See FAILURE-TYPE
See FAILURE-ARGS
See FAIL!

Package

lichat-serverlib.

Source

connection-maintenance.lisp.

Direct superclasses

error.

Direct subclasses

severe-failure-condition.

Direct methods
Direct slots
Slot: failure-type
Initargs

:type

Readers

failure-type.

Writers

This slot is read-only.

Slot: failure-args
Initargs

:args

Readers

failure-args.

Writers

This slot is read-only.


5.1.8 Classes

Class: backlogged-channel
Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

channel.

Direct methods
Direct slots
Slot: backlog
Initform

(lichat-serverlib::make-ring 100)

Readers

backlog.

Writers

(setf backlog).

Slot: join-times
Initform

(make-hash-table :test (quote eq))

Readers

join-times.

Writers

(setf join-times).

Class: channel

A server-side channel object.

See LICHAT-PROTOCOL:CHANNEL See TIMEOUTABLE

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses
Direct subclasses

backlogged-channel.

Direct methods
Class: connection

The representation of a client connection.

See SERVER
See LAST-UPDATE
See LICHAT-PROTOCOL:CONNECTION

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

connection.

Direct subclasses

flood-protected-connection.

Direct methods
Direct Default Initargs
InitargValue
:servernil
Direct slots
Slot: server
Initargs

:server

Readers

server.

Writers

(setf server).

Slot: last-update
Initform

(get-universal-time)

Readers

last-update.

Writers

(setf last-update).

Slot: read-limit
Initargs

:read-limit

Readers

read-limit.

Writers

(setf read-limit).

Class: flood-protected-connection

A connection with basic time-frame flood-protection.

See CONNECTION
See LAST-FRAME
See FRAME-COUNT

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

connection.

Direct methods
Direct slots
Slot: last-frame
Initform

0

Readers

last-frame.

Writers

(setf last-frame).

Slot: frame-count
Initform

0

Readers

frame-count.

Writers

(setf frame-count).

Class: flood-protected-server

A server with basic time-frame flood-protection.

See SERVER
See FLOOD-FRAME
See FLOOD-LIMIT

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

server.

Direct methods
Direct Default Initargs
InitargValue
:flood-frame30
:flood-limit40
Direct slots
Slot: flood-frame
Initargs

:flood-frame

Readers

flood-frame.

Writers

(setf flood-frame).

Slot: flood-limit
Initargs

:flood-limit

Readers

flood-limit.

Writers

(setf flood-limit).

Class: profile

A server-side profile object

See LICHAT-PROTOCOL:PROFILE See TIMEOUTABLE

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses
Direct subclasses

simple-profile.

Class: server

An object representation of the server.

See USER
See USERS
See PROFILES
See CHANNELS
See IDLE-TIMEOUT

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

user.

Direct subclasses

flood-protected-server.

Direct methods
Direct Default Initargs
InitargValue
:idle-timeout120
:allowed-content-typesnil
:default-read-limitnil
Direct slots
Slot: users
Initform

(make-hash-table :test (quote equal))

Readers

users.

Writers

(setf users).

Slot: profiles
Initform

(make-hash-table :test (quote equal))

Readers

profiles.

Writers

(setf profiles).

Slot: channels
Initform

(make-hash-table :test (quote equal))

Readers

channels.

Writers

(setf channels).

Slot: idle-timeout
Initargs

:idle-timeout

Readers

idle-timeout.

Writers

(setf idle-timeout).

Slot: allowed-content-types
Initargs

:allowed-content-types

Readers

allowed-content-types.

Writers

(setf allowed-content-types).

Slot: default-read-limit
Initargs

:default-read-limit

Readers

default-read-limit.

Writers

(setf default-read-limit).

Class: timeoutable

Superclass for objects that can be invalidated through a timeout.

See TIMEOUT
See START-TIMEOUT
See RESET-TIMEOUT
See ALIVE-P

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: timeout
Initargs

:timeout

Readers

timeout.

Writers

(setf timeout).

Class: user

A server-side user object

See LICHAT-PROTOCOL:USER

Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

user.

Direct subclasses

server.

Direct methods

5.2 Internals


5.2.1 Special variables

Special Variable: *emotes*
Package

lichat-serverlib.

Source

emotes.lisp.


5.2.2 Ordinary functions

Function: coerce-emote (emote)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: coerce-emote-data (data)
Package

lichat-serverlib.

Source

emotes.lisp.

Function: fail!! (type-ish &rest initargs)
Package

lichat-serverlib.

Source

connection-maintenance.lisp.

Function: make-ring (size)
Package

lichat-serverlib.

Source

server-objects.lisp.


5.2.3 Conditions

Condition: severe-failure-condition
Package

lichat-serverlib.

Source

connection-maintenance.lisp.

Direct superclasses

failure-condition.


5.2.4 Classes

Class: simple-profile
Package

lichat-serverlib.

Source

server-objects.lisp.

Direct superclasses

profile.

Direct methods
Direct slots
Slot: password
Readers

password.

Writers

(setf password).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   I   J   L   M   P   R   S   T   U  
Index Entry  Section

(
(setf allowed-content-types): Public generic functions
(setf allowed-content-types): Public generic functions
(setf backlog): Public generic functions
(setf backlog): Public generic functions
(setf channels): Public generic functions
(setf channels): Public generic functions
(setf default-read-limit): Public generic functions
(setf default-read-limit): Public generic functions
(setf emote): Public ordinary functions
(setf find-channel): Public generic functions
(setf find-channel): Public generic functions
(setf find-profile): Public generic functions
(setf find-profile): Public generic functions
(setf find-user): Public generic functions
(setf find-user): Public generic functions
(setf flood-frame): Public generic functions
(setf flood-frame): Public generic functions
(setf flood-limit): Public generic functions
(setf flood-limit): Public generic functions
(setf frame-count): Public generic functions
(setf frame-count): Public generic functions
(setf idle-timeout): Public generic functions
(setf idle-timeout): Public generic functions
(setf join-times): Public generic functions
(setf join-times): Public generic functions
(setf last-frame): Public generic functions
(setf last-frame): Public generic functions
(setf last-update): Public generic functions
(setf last-update): Public generic functions
(setf password): Public generic functions
(setf password): Public generic functions
(setf profiles): Public generic functions
(setf profiles): Public generic functions
(setf read-limit): Public generic functions
(setf read-limit): Public generic functions
(setf server): Public generic functions
(setf server): Public generic functions
(setf server): Public generic functions
(setf timeout): Public generic functions
(setf timeout): Public generic functions
(setf users): Public generic functions
(setf users): Public generic functions

A
add-emote: Public ordinary functions
add-emotes: Public ordinary functions
alive-p: Public generic functions
alive-p: Public generic functions
allowed-content-types: Public generic functions
allowed-content-types: Public generic functions

B
backlog: Public generic functions
backlog: Public generic functions

C
channels: Public generic functions
channels: Public generic functions
check-channel: Public ordinary functions
check-channelname: Public ordinary functions
check-connection-timeout: Public generic functions
check-connection-timeout: Public generic functions
check-from: Public ordinary functions
check-permitted: Public ordinary functions
check-target: Public ordinary functions
coerce-channelname: Public ordinary functions
coerce-emote: Private ordinary functions
coerce-emote-data: Private ordinary functions
coerce-username: Public ordinary functions
Compiler Macro, send!: Public compiler macros
create: Public generic functions
create: Public generic functions

D
default-read-limit: Public generic functions
default-read-limit: Public generic functions
define-update-handler: Public macros

E
emote: Public ordinary functions

F
fail!: Public ordinary functions
fail!!: Private ordinary functions
failure-args: Public generic functions
failure-args: Public generic functions
failure-type: Public generic functions
failure-type: Public generic functions
find-channel: Public generic functions
find-channel: Public generic functions
find-profile: Public generic functions
find-profile: Public generic functions
find-profile: Public generic functions
find-user: Public generic functions
find-user: Public generic functions
flood-frame: Public generic functions
flood-frame: Public generic functions
flood-limit: Public generic functions
flood-limit: Public generic functions
frame-count: Public generic functions
frame-count: Public generic functions
Function, (setf emote): Public ordinary functions
Function, add-emote: Public ordinary functions
Function, add-emotes: Public ordinary functions
Function, check-channel: Public ordinary functions
Function, check-channelname: Public ordinary functions
Function, check-from: Public ordinary functions
Function, check-permitted: Public ordinary functions
Function, check-target: Public ordinary functions
Function, coerce-channelname: Public ordinary functions
Function, coerce-emote: Private ordinary functions
Function, coerce-emote-data: Private ordinary functions
Function, coerce-username: Public ordinary functions
Function, emote: Public ordinary functions
Function, fail!: Public ordinary functions
Function, fail!!: Private ordinary functions
Function, make-ring: Private ordinary functions
Function, permitted: Public ordinary functions
Function, prep-perms: Public ordinary functions
Function, remove-emote: Public ordinary functions
Function, rule-permitted: Public ordinary functions
Function, send!: Public ordinary functions

G
Generic Function, (setf allowed-content-types): Public generic functions
Generic Function, (setf backlog): Public generic functions
Generic Function, (setf channels): Public generic functions
Generic Function, (setf default-read-limit): Public generic functions
Generic Function, (setf find-channel): Public generic functions
Generic Function, (setf find-profile): Public generic functions
Generic Function, (setf find-user): Public generic functions
Generic Function, (setf flood-frame): Public generic functions
Generic Function, (setf flood-limit): Public generic functions
Generic Function, (setf frame-count): Public generic functions
Generic Function, (setf idle-timeout): Public generic functions
Generic Function, (setf join-times): Public generic functions
Generic Function, (setf last-frame): Public generic functions
Generic Function, (setf last-update): Public generic functions
Generic Function, (setf password): Public generic functions
Generic Function, (setf profiles): Public generic functions
Generic Function, (setf read-limit): Public generic functions
Generic Function, (setf server): Public generic functions
Generic Function, (setf timeout): Public generic functions
Generic Function, (setf users): Public generic functions
Generic Function, alive-p: Public generic functions
Generic Function, allowed-content-types: Public generic functions
Generic Function, backlog: Public generic functions
Generic Function, channels: Public generic functions
Generic Function, check-connection-timeout: Public generic functions
Generic Function, create: Public generic functions
Generic Function, default-read-limit: Public generic functions
Generic Function, failure-args: Public generic functions
Generic Function, failure-type: Public generic functions
Generic Function, find-channel: Public generic functions
Generic Function, find-profile: Public generic functions
Generic Function, find-user: Public generic functions
Generic Function, flood-frame: Public generic functions
Generic Function, flood-limit: Public generic functions
Generic Function, frame-count: Public generic functions
Generic Function, idle-timeout: Public generic functions
Generic Function, init-connection: Public generic functions
Generic Function, join: Public generic functions
Generic Function, join-times: Public generic functions
Generic Function, last-frame: Public generic functions
Generic Function, last-update: Public generic functions
Generic Function, leave: Public generic functions
Generic Function, list-channels: Public generic functions
Generic Function, list-profiles: Public generic functions
Generic Function, list-users: Public generic functions
Generic Function, make-channel: Public generic functions
Generic Function, make-connection: Public generic functions
Generic Function, make-profile: Public generic functions
Generic Function, make-user: Public generic functions
Generic Function, pass-flood-gate: Public generic functions
Generic Function, password: Public generic functions
Generic Function, password-valid-p: Public generic functions
Generic Function, process: Public generic functions
Generic Function, profiles: Public generic functions
Generic Function, read-limit: Public generic functions
Generic Function, register: Public generic functions
Generic Function, remove-channel: Public generic functions
Generic Function, remove-profile: Public generic functions
Generic Function, remove-user: Public generic functions
Generic Function, reset-timeout: Public generic functions
Generic Function, send: Public generic functions
Generic Function, server: Public generic functions
Generic Function, start-timeout: Public generic functions
Generic Function, teardown-connection: Public generic functions
Generic Function, timeout: Public generic functions
Generic Function, users: Public generic functions

I
idle-timeout: Public generic functions
idle-timeout: Public generic functions
init-connection: Public generic functions
init-connection: Public generic functions
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods

J
join: Public generic functions
join: Public generic functions
join: Public generic functions
join-times: Public generic functions
join-times: Public generic functions

L
last-frame: Public generic functions
last-frame: Public generic functions
last-update: Public generic functions
last-update: Public generic functions
leave: Public generic functions
leave: Public generic functions
leave: Public generic functions
list-channels: Public generic functions
list-channels: Public generic functions
list-profiles: Public generic functions
list-profiles: Public generic functions
list-users: Public generic functions
list-users: Public generic functions

M
Macro, define-update-handler: Public macros
make-channel: Public generic functions
make-channel: Public generic functions
make-connection: Public generic functions
make-connection: Public generic functions
make-connection: Public generic functions
make-profile: Public generic functions
make-profile: Public generic functions
make-ring: Private ordinary functions
make-user: Public generic functions
make-user: Public generic functions
Method, (setf allowed-content-types): Public generic functions
Method, (setf backlog): Public generic functions
Method, (setf channels): Public generic functions
Method, (setf default-read-limit): Public generic functions
Method, (setf find-channel): Public generic functions
Method, (setf find-profile): Public generic functions
Method, (setf find-user): Public generic functions
Method, (setf flood-frame): Public generic functions
Method, (setf flood-limit): Public generic functions
Method, (setf frame-count): Public generic functions
Method, (setf idle-timeout): Public generic functions
Method, (setf join-times): Public generic functions
Method, (setf last-frame): Public generic functions
Method, (setf last-update): Public generic functions
Method, (setf password): Public generic functions
Method, (setf profiles): Public generic functions
Method, (setf read-limit): Public generic functions
Method, (setf server): Public generic functions
Method, (setf server): Public generic functions
Method, (setf timeout): Public generic functions
Method, (setf users): Public generic functions
Method, alive-p: Public generic functions
Method, allowed-content-types: Public generic functions
Method, backlog: Public generic functions
Method, channels: Public generic functions
Method, check-connection-timeout: Public generic functions
Method, create: Public generic functions
Method, default-read-limit: Public generic functions
Method, failure-args: Public generic functions
Method, failure-type: Public generic functions
Method, find-channel: Public generic functions
Method, find-profile: Public generic functions
Method, find-profile: Public generic functions
Method, find-user: Public generic functions
Method, flood-frame: Public generic functions
Method, flood-limit: Public generic functions
Method, frame-count: Public generic functions
Method, idle-timeout: Public generic functions
Method, init-connection: Public generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, join: Public generic functions
Method, join: Public generic functions
Method, join-times: Public generic functions
Method, last-frame: Public generic functions
Method, last-update: Public generic functions
Method, leave: Public generic functions
Method, leave: Public generic functions
Method, list-channels: Public generic functions
Method, list-profiles: Public generic functions
Method, list-users: Public generic functions
Method, make-channel: Public generic functions
Method, make-connection: Public generic functions
Method, make-connection: Public generic functions
Method, make-profile: Public generic functions
Method, make-user: Public generic functions
Method, pass-flood-gate: Public generic functions
Method, pass-flood-gate: Public generic functions
Method, password: Public generic functions
Method, password-valid-p: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, process: Public generic functions
Method, profiles: Public generic functions
Method, read-limit: Public generic functions
Method, register: Public generic functions
Method, remove-channel: Public generic functions
Method, remove-profile: Public generic functions
Method, remove-user: Public generic functions
Method, reset-timeout: Public generic functions
Method, send: Public generic functions
Method, send: Public generic functions
Method, send: Public generic functions
Method, send: Public generic functions
Method, server: Public generic functions
Method, start-timeout: Public generic functions
Method, teardown-connection: Public generic functions
Method, timeout: Public generic functions
Method, users: Public generic functions

P
pass-flood-gate: Public generic functions
pass-flood-gate: Public generic functions
pass-flood-gate: Public generic functions
password: Public generic functions
password: Public generic functions
password-valid-p: Public generic functions
password-valid-p: Public generic functions
permitted: Public ordinary functions
prep-perms: Public ordinary functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
process: Public generic functions
profiles: Public generic functions
profiles: Public generic functions

R
read-limit: Public generic functions
read-limit: Public generic functions
register: Public generic functions
register: Public generic functions
remove-channel: Public generic functions
remove-channel: Public generic functions
remove-emote: Public ordinary functions
remove-profile: Public generic functions
remove-profile: Public generic functions
remove-user: Public generic functions
remove-user: Public generic functions
reset-timeout: Public generic functions
reset-timeout: Public generic functions
rule-permitted: Public ordinary functions

S
send: Public generic functions
send: Public generic functions
send: Public generic functions
send: Public generic functions
send: Public generic functions
send!: Public compiler macros
send!: Public ordinary functions
server: Public generic functions
server: Public generic functions
start-timeout: Public generic functions
start-timeout: Public generic functions

T
teardown-connection: Public generic functions
teardown-connection: Public generic functions
timeout: Public generic functions
timeout: Public generic functions

U
users: Public generic functions
users: Public generic functions


A.3 Variables

Jump to:   *  
A   B   C   D   F   I   J   L   P   R   S   T   U  
Index Entry  Section

*
*allowed-emote-content-types*: Public special variables
*emotes*: Private special variables

A
allowed-content-types: Public classes

B
backlog: Public classes

C
channels: Public classes

D
default-read-limit: Public classes

F
failure-args: Public conditions
failure-type: Public conditions
flood-frame: Public classes
flood-limit: Public classes
frame-count: Public classes

I
idle-timeout: Public classes

J
join-times: Public classes

L
last-frame: Public classes
last-update: Public classes

P
password: Private classes
profiles: Public classes

R
read-limit: Public classes

S
server: Public classes
Slot, allowed-content-types: Public classes
Slot, backlog: Public classes
Slot, channels: Public classes
Slot, default-read-limit: Public classes
Slot, failure-args: Public conditions
Slot, failure-type: Public conditions
Slot, flood-frame: Public classes
Slot, flood-limit: Public classes
Slot, frame-count: Public classes
Slot, idle-timeout: Public classes
Slot, join-times: Public classes
Slot, last-frame: Public classes
Slot, last-update: Public classes
Slot, password: Private classes
Slot, profiles: Public classes
Slot, read-limit: Public classes
Slot, server: Public classes
Slot, timeout: Public classes
Slot, users: Public classes
Special Variable, *allowed-emote-content-types*: Public special variables
Special Variable, *emotes*: Private special variables

T
timeout: Public classes

U
users: Public classes


A.4 Data types

Jump to:   B   C   D   E   F   L   P   S   T   U  
Index Entry  Section

B
backlogged-channel: Public classes

C
channel: Public classes
Class, backlogged-channel: Public classes
Class, channel: Public classes
Class, connection: Public classes
Class, flood-protected-connection: Public classes
Class, flood-protected-server: Public classes
Class, profile: Public classes
Class, server: Public classes
Class, simple-profile: Private classes
Class, timeoutable: Public classes
Class, user: Public classes
Condition, failure-condition: Public conditions
Condition, severe-failure-condition: Private conditions
connection: Public classes
connection-maintenance.lisp: The lichat-serverlib/connection-maintenance․lisp file

D
documentation.lisp: The lichat-serverlib/documentation․lisp file

E
emotes.lisp: The lichat-serverlib/emotes․lisp file

F
failure-condition: Public conditions
File, connection-maintenance.lisp: The lichat-serverlib/connection-maintenance․lisp file
File, documentation.lisp: The lichat-serverlib/documentation․lisp file
File, emotes.lisp: The lichat-serverlib/emotes․lisp file
File, lichat-serverlib.asd: The lichat-serverlib/lichat-serverlib․asd file
File, package.lisp: The lichat-serverlib/package․lisp file
File, server-objects.lisp: The lichat-serverlib/server-objects․lisp file
File, server-operations.lisp: The lichat-serverlib/server-operations․lisp file
File, update-handlers.lisp: The lichat-serverlib/update-handlers․lisp file
flood-protected-connection: Public classes
flood-protected-server: Public classes

L
lichat-serverlib: The lichat-serverlib system
lichat-serverlib: The lichat-serverlib package
lichat-serverlib.asd: The lichat-serverlib/lichat-serverlib․asd file

P
Package, lichat-serverlib: The lichat-serverlib package
package.lisp: The lichat-serverlib/package․lisp file
profile: Public classes

S
server: Public classes
server-objects.lisp: The lichat-serverlib/server-objects․lisp file
server-operations.lisp: The lichat-serverlib/server-operations․lisp file
severe-failure-condition: Private conditions
simple-profile: Private classes
System, lichat-serverlib: The lichat-serverlib system

T
timeoutable: Public classes

U
update-handlers.lisp: The lichat-serverlib/update-handlers․lisp file
user: Public classes