The lichat-serverlib Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The lichat-serverlib Reference Manual

This is the lichat-serverlib Reference Manual, version 1.0.0, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:05:15 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

About Lichat-Serverlib

This is an implementation of the server-side protocol part of the Lichat protocol. It provides an extensible, transport-agnostic implementation that can be used to base a functional server on. All that the real server needs to take care of is the underlying connection establishment and reading.

You do not need this library if you are looking to implement a client. You don't need it if you're looking to implement a server either, but it will take care of a large part of the implementation tasks for you if you do use it.

Implementing an Overarching Server

In order to implement an actual server, you will want to do the following:

For a simple illustrative example, see the lichat-tcp-server.

Also See


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 lichat-serverlib

Maintainer

Nicolas Hafner <shinmera@tymoon.eu>

Author

Nicolas Hafner <shinmera@tymoon.eu>

Home Page

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

License

Artistic

Description

Tools to help build a server using the lichat protocol.

Version

1.0.0

Dependencies
Source

lichat-serverlib.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

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


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 lichat-serverlib.asd

Location

lichat-serverlib.asd

Systems

lichat-serverlib (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 lichat-serverlib/package.lisp

Parent

lichat-serverlib (system)

Location

package.lisp

Packages

lichat-serverlib


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 lichat-serverlib/server-objects.lisp

Dependency

package.lisp (file)

Parent

lichat-serverlib (system)

Location

server-objects.lisp

Exported Definitions
Internal Definitions

make-ring (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 lichat-serverlib/server-operations.lisp

Dependency

server-objects.lisp (file)

Parent

lichat-serverlib (system)

Location

server-operations.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 lichat-serverlib/connection-maintenance.lisp

Dependency

server-operations.lisp (file)

Parent

lichat-serverlib (system)

Location

connection-maintenance.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 lichat-serverlib/update-handlers.lisp

Dependency

connection-maintenance.lisp (file)

Parent

lichat-serverlib (system)

Location

update-handlers.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 lichat-serverlib/emotes.lisp

Dependency

update-handlers.lisp (file)

Parent

lichat-serverlib (system)

Location

emotes.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.8 lichat-serverlib/documentation.lisp

Dependency

emotes.lisp (file)

Parent

lichat-serverlib (system)

Location

documentation.lisp


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 lichat-serverlib

Source

package.lisp (file)

Nickname

org.shirakumo.lichat.serverlib

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

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

lichat-serverlib

Source

emotes.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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 (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Compiler macros

Compiler Macro: send! CONNECTION TYPE-ISH &rest INITARGS
Package

lichat-serverlib

Source

connection-maintenance.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Functions

Function: add-emote PATHNAME
Package

lichat-serverlib

Source

emotes.lisp (file)

Function: add-emotes DIRECTORY
Package

lichat-serverlib

Source

emotes.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Function: emote NAME
Function: (setf emote) EMOTE NAME
Package

lichat-serverlib

Source

emotes.lisp (file)

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 (file)

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 (file)

Function: prep-perms REGISTRANT PERMS

Prepare the list of permissions rule for the registrant.

Package

lichat-serverlib

Source

server-operations.lisp (file)

Function: remove-emote NAME
Package

lichat-serverlib

Source

emotes.lisp (file)

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 (file)

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 (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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 (file)

Generic Function: allowed-content-types OBJECT
Generic Function: (setf allowed-content-types) NEW-VALUE OBJECT
Package

lichat-serverlib

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

automatically generated reader method

Source

server-objects.lisp (file)

Method: (setf allowed-content-types) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: backlog OBJECT
Generic Function: (setf backlog) NEW-VALUE OBJECT
Package

lichat-serverlib

Methods
Method: backlog (BACKLOGGED-CHANNEL backlogged-channel)

automatically generated reader method

Source

server-objects.lisp (file)

Method: (setf backlog) NEW-VALUE (BACKLOGGED-CHANNEL backlogged-channel)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: channels OBJECT

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

See SERVER

Package

lichat-serverlib

Writer

(setf channels) (generic function)

Methods
Method: channels (SERVER server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf channels) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

channels (generic function)

Methods
Method: (setf channels) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: check-connection-timeout CONNECTION
Package

lichat-serverlib

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

connection-maintenance.lisp (file)

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 (file)

Generic Function: default-read-limit OBJECT
Generic Function: (setf default-read-limit) NEW-VALUE OBJECT
Package

lichat-serverlib

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

automatically generated reader method

Source

server-objects.lisp (file)

Method: (setf default-read-limit) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: 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
Method: failure-args (CONDITION failure-condition)
Source

connection-maintenance.lisp (file)

Generic Function: 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
Method: failure-type (CONDITION failure-condition)
Source

connection-maintenance.lisp (file)

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

Writer

(setf find-channel) (generic function)

Methods
Method: find-channel NAME (SERVER server)
Source

server-objects.lisp (file)

Generic Function: (setf find-channel) CHANNEL NAME SERVER
Package

lichat-serverlib

Reader

find-channel (generic function)

Methods
Method: (setf find-channel) CHANNEL NAME (SERVER server)
Source

server-objects.lisp (file)

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

Writer

(setf find-profile) (generic function)

Methods
Method: find-profile NAME (SERVER server)
Source

server-objects.lisp (file)

Generic Function: (setf find-profile) PROFILE NAME SERVER
Package

lichat-serverlib

Reader

find-profile (generic function)

Methods
Method: (setf find-profile) PROFILE NAME (SERVER server)
Source

server-objects.lisp (file)

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

Writer

(setf find-user) (generic function)

Methods
Method: find-user NAME (SERVER server)
Source

server-objects.lisp (file)

Generic Function: (setf find-user) USER NAME SERVER
Package

lichat-serverlib

Reader

find-user (generic function)

Methods
Method: (setf find-user) USER NAME (SERVER server)
Source

server-objects.lisp (file)

Generic Function: flood-frame OBJECT

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

See FLOOD-PROTECTED-SERVER

Package

lichat-serverlib

Writer

(setf flood-frame) (generic function)

Methods
Method: flood-frame (FLOOD-PROTECTED-SERVER flood-protected-server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf flood-frame) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

flood-frame (generic function)

Methods
Method: (setf flood-frame) NEW-VALUE (FLOOD-PROTECTED-SERVER flood-protected-server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: 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

Writer

(setf flood-limit) (generic function)

Methods
Method: flood-limit (FLOOD-PROTECTED-SERVER flood-protected-server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf flood-limit) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

flood-limit (generic function)

Methods
Method: (setf flood-limit) NEW-VALUE (FLOOD-PROTECTED-SERVER flood-protected-server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: frame-count OBJECT

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

See FLOOD-PROTECTED-CONNECTION

Package

lichat-serverlib

Writer

(setf frame-count) (generic function)

Methods
Method: frame-count (FLOOD-PROTECTED-CONNECTION flood-protected-connection)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf frame-count) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

frame-count (generic function)

Methods
Method: (setf frame-count) NEW-VALUE (FLOOD-PROTECTED-CONNECTION flood-protected-connection)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: 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

Writer

(setf idle-timeout) (generic function)

Methods
Method: idle-timeout (SERVER server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf idle-timeout) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

idle-timeout (generic function)

Methods
Method: (setf idle-timeout) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

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 (file)

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 (CHANNEL backlogged-channel) (USER user) &optional ID after
Source

server-operations.lisp (file)

Method: join (CHANNEL channel) (USER user) &optional ID
Source

server-operations.lisp (file)

Generic Function: join-times OBJECT
Generic Function: (setf join-times) NEW-VALUE OBJECT
Package

lichat-serverlib

Methods
Method: join-times (BACKLOGGED-CHANNEL backlogged-channel)

automatically generated reader method

Source

server-objects.lisp (file)

Method: (setf join-times) NEW-VALUE (BACKLOGGED-CHANNEL backlogged-channel)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: last-frame OBJECT

Accessor to the last frame number the connection handled.

See FLOOD-PROTECTED-CONNECTION

Package

lichat-serverlib

Writer

(setf last-frame) (generic function)

Methods
Method: last-frame (FLOOD-PROTECTED-CONNECTION flood-protected-connection)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf last-frame) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

last-frame (generic function)

Methods
Method: (setf last-frame) NEW-VALUE (FLOOD-PROTECTED-CONNECTION flood-protected-connection)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: last-update OBJECT

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

See CONNECTION

Package

lichat-serverlib

Writer

(setf last-update) (generic function)

Methods
Method: last-update (CONNECTION connection)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf last-update) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

last-update (generic function)

Methods
Method: (setf last-update) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

server-objects.lisp (file)

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 (CHANNEL backlogged-channel) (USER user) &key ID NOTIFY-SELF after
Source

server-operations.lisp (file)

Method: leave (CHANNEL channel) (USER user) &key ID NOTIFY-SELF
Source

server-operations.lisp (file)

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 (file)

Generic Function: list-profiles SERVER
Package

lichat-serverlib

Methods
Method: list-profiles (SERVER server)
Source

server-objects.lisp (file)

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 (file)

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 (file)

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 (file)

Method: make-connection (SERVER server) &rest INITARGS
Source

server-objects.lisp (file)

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 (file)

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 (file)

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 (file)

Method: pass-flood-gate (CONNECTION connection) UPDATE
Source

connection-maintenance.lisp (file)

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 (file)

Method: process (CONNECTION connection) (UPDATE data)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE backfill)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE user-info)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE register)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE permissions)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE pull)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE kick)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE create)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE users)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE channels)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE leave)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE join)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE message)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE pong)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE ping)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE disconnect)
Source

update-handlers.lisp (file)

Method: process (CONNECTION connection) (UPDATE connect)
Source

update-handlers.lisp (file)

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

connection-maintenance.lisp (file)

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

connection-maintenance.lisp (file)

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

connection-maintenance.lisp (file)

Generic Function: profiles OBJECT

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

See SERVER

Package

lichat-serverlib

Writer

(setf profiles) (generic function)

Methods
Method: profiles (SERVER server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf profiles) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

profiles (generic function)

Methods
Method: (setf profiles) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: read-limit OBJECT
Generic Function: (setf read-limit) NEW-VALUE OBJECT
Package

lichat-serverlib

Methods
Method: read-limit (CONNECTION connection)

automatically generated reader method

Source

server-objects.lisp (file)

Method: (setf read-limit) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

server-objects.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Generic Function: salt OBJECT

Accessor to the password hashing salt.

See SERVER

Package

lichat-serverlib

Writer

(setf salt) (generic function)

Methods
Method: salt (SERVER server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf salt) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

salt (generic function)

Methods
Method: (setf salt) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)

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 wire-object) (USER user)
Source

connection-maintenance.lisp (file)

Method: send (OBJECT wire-object) (CHANNEL channel)
Source

connection-maintenance.lisp (file)

Method: send (OBJECT update) (CHANNEL backlogged-channel) after
Source

connection-maintenance.lisp (file)

Method: send (OBJECT wire-object) (CONNECTION connection) before
Source

connection-maintenance.lisp (file)

Generic Function: server OBJECT

Accessor to the connection’s server.

See CONNECTION

Package

lichat-serverlib

Writer

(setf server) (generic function)

Methods
Method: server (CONNECTION connection)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf server) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

server (generic function)

Methods
Method: (setf server) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

server-objects.lisp (file)

Method: (setf server) SERVER (CONNECTION connection) after
Source

server-objects.lisp (file)

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 (file)

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 (file)

Generic Function: timeout OBJECT

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

See TIMEOUTABLE

Package

lichat-serverlib

Writer

(setf timeout) (generic function)

Methods
Method: timeout (TIMEOUTABLE timeoutable)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf timeout) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

timeout (generic function)

Methods
Method: (setf timeout) NEW-VALUE (TIMEOUTABLE timeoutable)

automatically generated writer method

Source

server-objects.lisp (file)

Generic Function: users OBJECT

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

See SERVER

Package

lichat-serverlib

Writer

(setf users) (generic function)

Methods
Method: users (SERVER server)

automatically generated reader method

Source

server-objects.lisp (file)

Generic Function: (setf users) NEW-VALUE OBJECT
Package

lichat-serverlib

Reader

users (generic function)

Methods
Method: (setf users) NEW-VALUE (SERVER server)

automatically generated writer method

Source

server-objects.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.6 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 (file)

Direct superclasses

error (condition)

Direct subclasses

severe-failure-condition (condition)

Direct methods
Direct slots
Slot: failure-type
Initargs

:type

Readers

failure-type (generic function)

Slot: failure-args
Initargs

:args

Readers

failure-args (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.7 Classes

Class: backlogged-channel ()
Package

lichat-serverlib

Source

server-objects.lisp (file)

Direct superclasses

channel (class)

Direct methods
Direct slots
Slot: backlog
Initform

(lichat-serverlib::make-ring 100)

Readers

backlog (generic function)

Writers

(setf backlog) (generic function)

Slot: join-times
Initform

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

Readers

join-times (generic function)

Writers

(setf join-times) (generic function)

Class: channel ()

A server-side channel object.

See LICHAT-PROTOCOL:CHANNEL See TIMEOUTABLE

Package

lichat-serverlib

Source

server-objects.lisp (file)

Direct superclasses
Direct subclasses

backlogged-channel (class)

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 (file)

Direct superclasses

connection (class)

Direct subclasses

flood-protected-connection (class)

Direct methods
Direct slots
Slot: server
Initargs

:server

Readers

server (generic function)

Writers

(setf server) (generic function)

Slot: last-update
Initform

(get-universal-time)

Readers

last-update (generic function)

Writers

(setf last-update) (generic function)

Slot: read-limit
Initargs

:read-limit

Readers

read-limit (generic function)

Writers

(setf read-limit) (generic function)

Direct Default Initargs
InitargValue
:servernil
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 (file)

Direct superclasses

connection (class)

Direct methods
Direct slots
Slot: last-frame
Initform

0

Readers

last-frame (generic function)

Writers

(setf last-frame) (generic function)

Slot: frame-count
Initform

0

Readers

frame-count (generic function)

Writers

(setf frame-count) (generic function)

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 (file)

Direct superclasses

server (class)

Direct methods
Direct slots
Slot: flood-frame
Initargs

:flood-frame

Readers

flood-frame (generic function)

Writers

(setf flood-frame) (generic function)

Slot: flood-limit
Initargs

:flood-limit

Readers

flood-limit (generic function)

Writers

(setf flood-limit) (generic function)

Direct Default Initargs
InitargValue
:flood-frame30
:flood-limit40
Class: profile ()

A server-side profile object

See LICHAT-PROTOCOL:PROFILE See TIMEOUTABLE

Package

lichat-serverlib

Source

server-objects.lisp (file)

Direct superclasses
Class: server ()

An object representation of the server.

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

Package

lichat-serverlib

Source

server-objects.lisp (file)

Direct superclasses

user (class)

Direct subclasses

flood-protected-server (class)

Direct methods
Direct slots
Slot: users
Initform

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

Readers

users (generic function)

Writers

(setf users) (generic function)

Slot: profiles
Initform

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

Readers

profiles (generic function)

Writers

(setf profiles) (generic function)

Slot: channels
Initform

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

Readers

channels (generic function)

Writers

(setf channels) (generic function)

Slot: salt
Initargs

:salt

Readers

salt (generic function)

Writers

(setf salt) (generic function)

Slot: idle-timeout
Initargs

:idle-timeout

Readers

idle-timeout (generic function)

Writers

(setf idle-timeout) (generic function)

Slot: allowed-content-types
Initargs

:allowed-content-types

Readers

allowed-content-types (generic function)

Writers

(setf allowed-content-types) (generic function)

Slot: default-read-limit
Initargs

:default-read-limit

Readers

default-read-limit (generic function)

Writers

(setf default-read-limit) (generic function)

Direct Default Initargs
InitargValue
:salt""
:idle-timeout120
:allowed-content-typesnil
:default-read-limitnil
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 (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: timeout
Initargs

:timeout

Readers

timeout (generic function)

Writers

(setf timeout) (generic function)

Class: user ()

A server-side user object

See LICHAT-PROTOCOL:USER

Package

lichat-serverlib

Source

server-objects.lisp (file)

Direct superclasses

user (class)

Direct subclasses

server (class)

Direct methods

Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *emotes*
Package

lichat-serverlib

Source

emotes.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Functions

Function: coerce-emote EMOTE
Package

lichat-serverlib

Source

emotes.lisp (file)

Function: coerce-emote-data DATA
Package

lichat-serverlib

Source

emotes.lisp (file)

Function: fail!! TYPE-ISH &rest INITARGS
Package

lichat-serverlib

Source

connection-maintenance.lisp (file)

Function: make-ring SIZE
Package

lichat-serverlib

Source

server-objects.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Conditions

Condition: severe-failure-condition ()
Package

lichat-serverlib

Source

connection-maintenance.lisp (file)

Direct superclasses

failure-condition (condition)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L  
Index Entry  Section

F
File, Lisp, lichat-serverlib.asd: The lichat-serverlib<dot>asd file
File, Lisp, lichat-serverlib/connection-maintenance.lisp: The lichat-serverlib/connection-maintenance<dot>lisp file
File, Lisp, lichat-serverlib/documentation.lisp: The lichat-serverlib/documentation<dot>lisp file
File, Lisp, lichat-serverlib/emotes.lisp: The lichat-serverlib/emotes<dot>lisp file
File, Lisp, lichat-serverlib/package.lisp: The lichat-serverlib/package<dot>lisp file
File, Lisp, lichat-serverlib/server-objects.lisp: The lichat-serverlib/server-objects<dot>lisp file
File, Lisp, lichat-serverlib/server-operations.lisp: The lichat-serverlib/server-operations<dot>lisp file
File, Lisp, lichat-serverlib/update-handlers.lisp: The lichat-serverlib/update-handlers<dot>lisp file

L
lichat-serverlib.asd: The lichat-serverlib<dot>asd file
lichat-serverlib/connection-maintenance.lisp: The lichat-serverlib/connection-maintenance<dot>lisp file
lichat-serverlib/documentation.lisp: The lichat-serverlib/documentation<dot>lisp file
lichat-serverlib/emotes.lisp: The lichat-serverlib/emotes<dot>lisp file
lichat-serverlib/package.lisp: The lichat-serverlib/package<dot>lisp file
lichat-serverlib/server-objects.lisp: The lichat-serverlib/server-objects<dot>lisp file
lichat-serverlib/server-operations.lisp: The lichat-serverlib/server-operations<dot>lisp file
lichat-serverlib/update-handlers.lisp: The lichat-serverlib/update-handlers<dot>lisp file
Lisp File, lichat-serverlib.asd: The lichat-serverlib<dot>asd file
Lisp File, lichat-serverlib/connection-maintenance.lisp: The lichat-serverlib/connection-maintenance<dot>lisp file
Lisp File, lichat-serverlib/documentation.lisp: The lichat-serverlib/documentation<dot>lisp file
Lisp File, lichat-serverlib/emotes.lisp: The lichat-serverlib/emotes<dot>lisp file
Lisp File, lichat-serverlib/package.lisp: The lichat-serverlib/package<dot>lisp file
Lisp File, lichat-serverlib/server-objects.lisp: The lichat-serverlib/server-objects<dot>lisp file
Lisp File, lichat-serverlib/server-operations.lisp: The lichat-serverlib/server-operations<dot>lisp file
Lisp File, lichat-serverlib/update-handlers.lisp: The lichat-serverlib/update-handlers<dot>lisp file

Jump to:   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

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): Exported generic functions
(setf allowed-content-types): Exported generic functions
(setf backlog): Exported generic functions
(setf backlog): Exported generic functions
(setf channels): Exported generic functions
(setf channels): Exported generic functions
(setf default-read-limit): Exported generic functions
(setf default-read-limit): Exported generic functions
(setf emote): Exported functions
(setf find-channel): Exported generic functions
(setf find-channel): Exported generic functions
(setf find-profile): Exported generic functions
(setf find-profile): Exported generic functions
(setf find-user): Exported generic functions
(setf find-user): Exported generic functions
(setf flood-frame): Exported generic functions
(setf flood-frame): Exported generic functions
(setf flood-limit): Exported generic functions
(setf flood-limit): Exported generic functions
(setf frame-count): Exported generic functions
(setf frame-count): Exported generic functions
(setf idle-timeout): Exported generic functions
(setf idle-timeout): Exported generic functions
(setf join-times): Exported generic functions
(setf join-times): Exported generic functions
(setf last-frame): Exported generic functions
(setf last-frame): Exported generic functions
(setf last-update): Exported generic functions
(setf last-update): Exported generic functions
(setf profiles): Exported generic functions
(setf profiles): Exported generic functions
(setf read-limit): Exported generic functions
(setf read-limit): Exported generic functions
(setf salt): Exported generic functions
(setf salt): Exported generic functions
(setf server): Exported generic functions
(setf server): Exported generic functions
(setf server): Exported generic functions
(setf timeout): Exported generic functions
(setf timeout): Exported generic functions
(setf users): Exported generic functions
(setf users): Exported generic functions

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

B
backlog: Exported generic functions
backlog: Exported generic functions

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

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

E
emote: Exported functions

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

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

I
idle-timeout: Exported generic functions
idle-timeout: Exported generic functions
init-connection: Exported generic functions
init-connection: Exported generic functions

J
join: Exported generic functions
join: Exported generic functions
join: Exported generic functions
join-times: Exported generic functions
join-times: Exported generic functions

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

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

P
pass-flood-gate: Exported generic functions
pass-flood-gate: Exported generic functions
pass-flood-gate: Exported generic functions
permitted: Exported functions
prep-perms: Exported functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
process: Exported generic functions
profiles: Exported generic functions
profiles: Exported generic functions

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

S
salt: Exported generic functions
salt: Exported generic functions
send: Exported generic functions
send: Exported generic functions
send: Exported generic functions
send: Exported generic functions
send: Exported generic functions
send!: Exported compiler macros
send!: Exported functions
server: Exported generic functions
server: Exported generic functions
start-timeout: Exported generic functions
start-timeout: Exported generic functions

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

U
users: Exported generic functions
users: Exported generic functions

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

Next: , Previous: , Up: Indexes   [Contents][Index]

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*: Exported special variables
*emotes*: Internal special variables

A
allowed-content-types: Exported classes

B
backlog: Exported classes

C
channels: Exported classes

D
default-read-limit: Exported classes

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

I
idle-timeout: Exported classes

J
join-times: Exported classes

L
last-frame: Exported classes
last-update: Exported classes

P
profiles: Exported classes

R
read-limit: Exported classes

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

T
timeout: Exported classes

U
users: Exported classes

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

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

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

B
backlogged-channel: Exported classes

C
channel: Exported classes
Class, backlogged-channel: Exported classes
Class, channel: Exported classes
Class, connection: Exported classes
Class, flood-protected-connection: Exported classes
Class, flood-protected-server: Exported classes
Class, profile: Exported classes
Class, server: Exported classes
Class, timeoutable: Exported classes
Class, user: Exported classes
Condition, failure-condition: Exported conditions
Condition, severe-failure-condition: Internal conditions
connection: Exported classes

F
failure-condition: Exported conditions
flood-protected-connection: Exported classes
flood-protected-server: Exported classes

L
lichat-serverlib: The lichat-serverlib system
lichat-serverlib: The lichat-serverlib package

P
Package, lichat-serverlib: The lichat-serverlib package
profile: Exported classes

S
server: Exported classes
severe-failure-condition: Internal conditions
System, lichat-serverlib: The lichat-serverlib system

T
timeoutable: Exported classes

U
user: Exported classes

Jump to:   B   C   F   L   P   S   T   U