The lichat-protocol Reference Manual

This is the lichat-protocol Reference Manual, version 1.5, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:53:39 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 lichat-protocol

The independent protocol part of Lichat.

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

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

Source Control

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

Bug Tracker

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

License

zlib

Version

1.5

Dependencies
  • documentation-utils (system).
  • closer-mop (system).
  • trivial-package-local-nicknames (system).
Source

lichat-protocol.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-protocol/lichat-protocol.asd

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

ASDF Systems

lichat-protocol.


3.1.2 lichat-protocol/package.lisp

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Packages

3.1.3 lichat-protocol/conditions.lisp

Dependency

package.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface
Internals

3.1.4 lichat-protocol/printer.lisp

Dependency

conditions.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface

print-sexpr (function).

Internals

3.1.5 lichat-protocol/reader.lisp

Dependency

printer.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface
Internals

3.1.6 lichat-protocol/typed-slot-class.lisp

Dependency

reader.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface
Internals

3.1.7 lichat-protocol/protocol.lisp

Dependency

typed-slot-class.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface
Internals

3.1.8 lichat-protocol/base-protocols.lisp

Dependency

protocol.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface

3.1.9 lichat-protocol/wire.lisp

Dependency

base-protocols.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).

Public Interface

3.1.10 lichat-protocol/documentation.lisp

Dependency

wire.lisp (file).

Source

lichat-protocol.asd.

Parent Component

lichat-protocol (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.lichat.protocol.packages

Source

package.lisp.


4.2 lichat-protocol

Source

package.lisp.

Nickname

org.shirakumo.lichat.protocol

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: *default-anonymous-channel-permissions*

Default permissions for anonymous channels.

Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *default-channel-lifetime*

The default lifetime for a new channel in seconds.

Should equal to one standard month (30 days).

Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *default-primary-channel-permissions*

Default permissions for primary/server channels.

Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *default-profile-lifetime*

The default lifetime for a registered profile in seconds.

Should equal to one non-leap year.

Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *default-regular-channel-permissions*

Default permissions for non-primary, non-anonymous channels.

Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *id-counter*

Counter variables for update IDs.

Starts at a random integer between 0 and the current universal-time. This is done to make the clashing of IDs less likely to occur between users of the protocol library.

See NEXT-ID

Package

lichat-protocol.

Source

protocol.lisp.


5.1.2 Macros

Macro: define-protocol-class (name direct-superclasses direct-slots &rest options)

Defines a new protocol class.

See DEFINE-TYPED-CLASS

Package

lichat-protocol.

Source

protocol.lisp.


5.1.3 Ordinary functions

Function: channelname-p (name)

Returns true if the given name is a valid name for channels.

See USERNAME-P

Package

lichat-protocol.

Source

protocol.lisp.

Function: check-update-options (sexpr)

Checks the given sexpr for conformity to use as initargs for an update.

The items after the first symbol in the list are checked
as follows: they must be balanced pairs of KEYWORD to
atom. If this is not the case, an error of type MALFORMED-WIRE-OBJECT is signalled. If no key :ID is
found, an error of type MISSING-ID is signalled. If no
key :CLOCK is found, an error of type MISSING-CLOCK is
signalled.

See FROM-WIRE
See MISSING-ID
See MISSING-CLOCK
See MALFORMED-WIRE-OBJECT

Package

lichat-protocol.

Source

wire.lisp.

Function: from-wire (stream &optional limit)

Read a wire object from the stream.

First an object is read from stream by READ-SEXPR. If the returned object is not a cons, it is returned immediately. Otherwise, the procedure is as follows: The first element must be a symbol. If it isn’t, an error of type MALFORMED-WIRE-OBJECT is signalled. If the symbol does not designate a class, or designates a class that is not a subclass of WIRE-OBJECT, an error of type UNKNOWN-WIRE-OBJECT is signalled. If the class is a subclass of UPDATE, the rest of the items in the list are checked by CHECK-UPDATE-OPTIONS. Finally MAKE-INSTANCE is called with the full expression as arguments. If the class is a subclass of object, MAKE-INSTANCE is called with the full expression as arguments immediately.

See READ-SEXPR
See MALFORMED-WIRE-OBJECT
See UNKNOWN-WIRE-OBJECT
See CHECK-UPDATE-OPTIONS

Package

lichat-protocol.

Source

wire.lisp.

Function: from-wire* (stream &optional limit)
Package

lichat-protocol.

Source

wire.lisp.

Function: id-p (id)

Returns true if the given object is a valid ID.

Package

lichat-protocol.

Source

protocol.lisp.

Function: next-id ()

Returns a fresh ID.

See *ID-COUNTER*

Package

lichat-protocol.

Source

protocol.lisp.

Function: password-p (pass)

Returns true if the given object is a string of at least six characters.

Package

lichat-protocol.

Source

protocol.lisp.

Function: print-sexpr (sexpr stream)

Print an s-expression to the stream.

Only the following types are allowed:
LIST STRING REAL SYMBOL
Any other type will signal an error of type UNPRINTABLE-OBJECT.

See PRINT-SEXPR-LIST
See PRINT-SEXPR-STRING
See PRINT-SEXPR-NUMBER
See PRINT-SEXPR-SYMBOL
See UNPRINTABLE-OBJECT

Package

lichat-protocol.

Source

printer.lisp.

Function: protocol-version ()

Returns the version string for the protocol.

Package

lichat-protocol.

Source

protocol.lisp.

Function: read-sexpr (stream)

Reads an s-expression from the stream.

Skips all the whitespace at the beginning. Depending on the character following, the reading is dispatched as follows:
( => READ-SEXPR-LIST
) => Signals an INCOMPLETE-TOKEN error " => READ-SEXPR-STIRNG
012345689. => READ-SEXPR-NUMBER
: => READ-SEXPR-KEYWORD
otherwise => READ-SEXPR-SYMBOL

See READ-SEXPR-LIST
See READ-SEXPR-STRING
See READ-SEXPR-NUMBER
See READ-SEXPR-KEYWORD
See READ-SEXPR-SYMBOL

Package

lichat-protocol.

Source

reader.lisp.

Function: skip-to-null (stream)
Package

lichat-protocol.

Source

reader.lisp.

Function: to-wire (wireable stream)

Print the wireable object to the stream.

Only handles objects of type WIRE-OBJECT and WIREABLE.

WIRE-OBJECTS are printed as a list in the following format: a list of the object’s type symbol followed by pairs of keyword to value of the object’s slots that have an initarg. Slots without an initarg are not printed.

The output is forced once written fully.

See PRINT-SEXPR
See FORCE-OUTPUT

Package

lichat-protocol.

Source

wire.lisp.

Function: username-p (name)

Returns true if the given name is a valid name for users.

That is to say, the name must be a string in [1,32] of length and each character must be in the allowed unicode regions. The name must also not begin or end with a space.

See VALID-NAME-CHAR-P

Package

lichat-protocol.

Source

protocol.lisp.

Function: whitespace-p (char)

Returns T if the character is considered to be whitespace.

See *WHITESPACE*

Package

lichat-protocol.

Source

reader.lisp.


5.1.4 Generic functions

Generic Reader: allowed-content-types (object)

Returns a list of allowed content-type identifiers that the server supports.

See BAD-CONTENT-TYPE

Package

lichat-protocol.

Methods
Reader Method: allowed-content-types ((bad-content-type bad-content-type))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

allowed-content-types.

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

lichat-protocol.

Methods
Writer Method: (setf allowed-content-types) ((bad-content-type bad-content-type))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

allowed-content-types.

Generic Reader: attributes (object)
Package

lichat-protocol.

Methods
Reader Method: attributes ((server-info server-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

attributes.

Generic Writer: (setf attributes) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf attributes) ((server-info server-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

attributes.

Generic Reader: bridge (object)
Package

lichat-protocol.

Methods
Reader Method: bridge ((channel-update channel-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

bridge.

Generic Writer: (setf bridge) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf bridge) ((channel-update channel-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

bridge.

Generic Reader: by (object)
Package

lichat-protocol.

Methods
Reader Method: by ((pause pause))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

by.

Generic Writer: (setf by) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf by) ((pause pause))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

by.

Generic Reader: channel (object)

Accessor to the name of the channel the update relates to.

See CHANNEL-UPDATE

Package

lichat-protocol.

Methods
Reader Method: channel ((channel-update channel-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

channel.

Reader Method: channel ((channels channels))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

channel.

Reader Method: channel ((create create))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

channel.

Generic Writer: (setf channel) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf channel) ((channel-update channel-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

channel.

Writer Method: (setf channel) ((channels channels))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

channel.

Writer Method: (setf channel) ((create create))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

channel.

Generic Reader: channels (object)

Accessor to the list of channels of the object.

See USER
See CHANNELS

Package

lichat-protocol.

Methods
Reader Method: channels ((channels channels))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

channels.

Reader Method: channels ((user user))

automatically generated reader method

Source

protocol.lisp.

Target Slot

channels.

Generic Writer: (setf channels) (object)
Package

lichat-protocol.

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

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

channels.

Writer Method: (setf channels) ((user user))

automatically generated writer method

Source

protocol.lisp.

Target Slot

channels.

Generic Reader: clock (object)

Accessor to the clock of the update.

Must be a universal-time timestamp set at the time the update was constructed.

See UPDATE

Package

lichat-protocol.

Methods
Reader Method: clock ((update update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

clock.

Generic Writer: (setf clock) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf clock) ((update update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

clock.

Generic Reader: compatible-versions (object)

Accessor to the list of version strings that this server is compatible with.

See INCOMPATIBLE-VERSION

Package

lichat-protocol.

Methods
Reader Method: compatible-versions ((incompatible-version incompatible-version))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

compatible-versions.

Generic Writer: (setf compatible-versions) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf compatible-versions) ((incompatible-version incompatible-version))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

compatible-versions.

Generic Reader: connections (object)

Accessor to the list of connections of the user or count of connections of the user-info.

See USER
See USER-INFO

Package

lichat-protocol.

Methods
Reader Method: connections ((user-info user-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

connections.

Reader Method: connections ((server-info server-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

connections.

Reader Method: connections ((user user))

automatically generated reader method

Source

protocol.lisp.

Target Slot

connections.

Generic Writer: (setf connections) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf connections) ((user-info user-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

connections.

Writer Method: (setf connections) ((server-info server-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

connections.

Writer Method: (setf connections) ((user user))

automatically generated writer method

Source

protocol.lisp.

Target Slot

connections.

Generic Reader: content-type (object)

Returns the content-type of the encoded data payload.

See DATA

Package

lichat-protocol.

Methods
Reader Method: content-type ((emote emote))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

content-type.

Reader Method: content-type ((data data))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

content-type.

Generic Writer: (setf content-type) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf content-type) ((emote emote))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

content-type.

Writer Method: (setf content-type) ((data data))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

content-type.

Generic Reader: emote (object)
Package

lichat-protocol.

Methods
Reader Method: emote ((react react))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

emote.

Generic Writer: (setf emote) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf emote) ((react react))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

emote.

Generic Reader: extensions (object)
Package

lichat-protocol.

Methods
Reader Method: extensions ((connect connect))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

extensions.

Generic Writer: (setf extensions) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf extensions) ((connect connect))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

extensions.

Generic Reader: filename (object)

Returns the file name of the file sent by the data payload.

See DATA

Package

lichat-protocol.

Methods
Reader Method: filename ((data data))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

filename.

Generic Writer: (setf filename) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf filename) ((data data))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

filename.

Generic Reader: from (object)

Accessor to the sender of the update.

Must be a username string identifying the user that sent it.

See UPDATE

Package

lichat-protocol.

Methods
Reader Method: from ((update update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

from.

Generic Writer: (setf from) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf from) ((update update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

from.

Generic Reader: id (object)

Accessor to the ID of the update.

IDs should be connection-unique, meaning the same ID should not appear on different connections at the same time.

See UPDATE

Package

lichat-protocol.

Methods
Reader Method: id ((update update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

id.

Generic Writer: (setf id) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf id) ((update update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

id.

Generic Reader: identities (object)
Package

lichat-protocol.

Methods
Reader Method: identities ((list-shared-identities list-shared-identities))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

identities.

Generic Writer: (setf identities) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf identities) ((list-shared-identities list-shared-identities))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

identities.

Generic Reader: info (object)
Package

lichat-protocol.

Methods
Reader Method: info ((user-info user-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

info.

Generic Writer: (setf info) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf info) ((user-info user-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

info.

Generic Reader: ip (object)
Package

lichat-protocol.

Methods
Reader Method: ip ((ip-unban ip-unban))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

ip.

Reader Method: ip ((ip-ban ip-ban))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

ip.

Generic Writer: (setf ip) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf ip) ((ip-unban ip-unban))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

ip.

Writer Method: (setf ip) ((ip-ban ip-ban))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

ip.

Generic Reader: key (object)
Package

lichat-protocol.

Methods
Reader Method: key ((assume-identity assume-identity))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((unshare-identity unshare-identity))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((share-identity share-identity))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((no-such-user-info no-such-user-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((set-user-info set-user-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((no-such-channel-info no-such-channel-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Reader Method: key ((set-channel-info set-channel-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

key.

Generic Writer: (setf key) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf key) ((assume-identity assume-identity))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((unshare-identity unshare-identity))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((share-identity share-identity))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((no-such-user-info no-such-user-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((set-user-info set-user-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((no-such-channel-info no-such-channel-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Writer Method: (setf key) ((set-channel-info set-channel-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

key.

Generic Reader: keys (object)
Package

lichat-protocol.

Methods
Reader Method: keys ((channel-info channel-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

keys.

Generic Writer: (setf keys) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf keys) ((channel-info channel-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

keys.

Generic Reader: lifetime (object)

Accessor to the lifetime of the object.

The object should stay alive for at least this many seconds after it has ceased to be used.

See PROFILE
See CHANNEL

Package

lichat-protocol.

Methods
Reader Method: lifetime ((channel channel))

automatically generated reader method

Source

protocol.lisp.

Target Slot

lifetime.

Reader Method: lifetime ((profile profile))

automatically generated reader method

Source

protocol.lisp.

Target Slot

lifetime.

Generic Writer: (setf lifetime) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf lifetime) ((channel channel))

automatically generated writer method

Source

protocol.lisp.

Target Slot

lifetime.

Writer Method: (setf lifetime) ((profile profile))

automatically generated writer method

Source

protocol.lisp.

Target Slot

lifetime.

Package

lichat-protocol.

Methods

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

link.

Package

lichat-protocol.

Methods

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

link.

Generic Reader: markup (object)
Package

lichat-protocol.

Methods
Reader Method: markup ((text-update text-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

markup.

Generic Writer: (setf markup) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf markup) ((text-update text-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

markup.

Generic Reader: mask (object)
Package

lichat-protocol.

Methods
Reader Method: mask ((ip-unban ip-unban))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

mask.

Reader Method: mask ((ip-ban ip-ban))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

mask.

Generic Writer: (setf mask) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf mask) ((ip-unban ip-unban))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

mask.

Writer Method: (setf mask) ((ip-ban ip-ban))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

mask.

Generic Reader: name (object)

Accessor to the object’s name string.

See NAMED-OBJECT

Package

lichat-protocol.

Methods
Reader Method: name ((emote emote))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

name.

Reader Method: name ((named-object named-object))

automatically generated reader method

Source

protocol.lisp.

Target Slot

name.

Generic Writer: (setf name) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf name) ((emote emote))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

name.

Writer Method: (setf name) ((named-object named-object))

automatically generated writer method

Source

protocol.lisp.

Target Slot

name.

Generic Reader: names (object)
Package

lichat-protocol.

Methods
Reader Method: names ((emotes emotes))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

names.

Generic Writer: (setf names) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf names) ((emotes emotes))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

names.

Generic Reader: object (condition)

The object related to the condition.

See UNPRINTABLE-OBJECT
See INCOMPATIBLE-VALUE-TYPE-FOR-SLOT

Package

lichat-protocol.

Methods
Reader Method: object ((condition incompatible-value-type-for-slot))
Source

conditions.lisp.

Target Slot

object.

Reader Method: object ((condition unprintable-object))
Source

conditions.lisp.

Target Slot

object.

Generic Reader: offset (object)
Package

lichat-protocol.

Methods
Reader Method: offset ((search search))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

offset.

Generic Writer: (setf offset) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf offset) ((search search))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

offset.

Generic Reader: password (object)

Accessor to the password of the object.

See PROFILE
See REGISTER
See CONNECT

Package

lichat-protocol.

Methods
Reader Method: password ((register register))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

password.

Reader Method: password ((connect connect))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

password.

Generic Writer: (setf password) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf password) ((register register))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

password.

Writer Method: (setf password) ((connect connect))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

password.

Generic Reader: payload (object)

Returns a base64 encoded data payload.

See DATA
See EMOTE

Package

lichat-protocol.

Methods
Reader Method: payload ((emote emote))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

payload.

Reader Method: payload ((data data))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

payload.

Generic Writer: (setf payload) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf payload) ((emote emote))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

payload.

Writer Method: (setf payload) ((data data))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

payload.

Generic Reader: permissions (object)

Accessor to the permissions list of the object.

See CHANNEL
See PERMISSIONS

Package

lichat-protocol.

Methods
Reader Method: permissions ((permissions permissions))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

permissions.

Reader Method: permissions ((channel channel))

automatically generated reader method

Source

protocol.lisp.

Target Slot

permissions.

Generic Writer: (setf permissions) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf permissions) ((permissions permissions))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

permissions.

Writer Method: (setf permissions) ((channel channel))

automatically generated writer method

Source

protocol.lisp.

Target Slot

permissions.

Generic Reader: permitted (object)
Package

lichat-protocol.

Methods
Reader Method: permitted ((capabilities capabilities))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

permitted.

Generic Writer: (setf permitted) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf permitted) ((capabilities capabilities))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

permitted.

Generic Reader: query (object)
Package

lichat-protocol.

Methods
Reader Method: query ((search search))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

query.

Generic Writer: (setf query) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf query) ((search search))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

query.

Generic Reader: registered (object)

Accessor to whether the user is registered or not.

See USER-INFO

Package

lichat-protocol.

Methods
Reader Method: registered ((user-info user-info))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

registered.

Generic Writer: (setf registered) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf registered) ((user-info user-info))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

registered.

Generic Reader: reply-to (object)
Package

lichat-protocol.

Methods
Reader Method: reply-to ((message message))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

reply-to.

Generic Writer: (setf reply-to) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf reply-to) ((message message))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

reply-to.

Generic Reader: results (object)
Package

lichat-protocol.

Methods
Reader Method: results ((search search))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

results.

Generic Writer: (setf results) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf results) ((search search))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

results.

Generic Reader: rich (object)
Package

lichat-protocol.

Methods
Reader Method: rich ((text-update text-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

rich.

Generic Writer: (setf rich) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf rich) ((text-update text-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

rich.

Generic Reader: signature (object)
Package

lichat-protocol.

Methods
Reader Method: signature ((update update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

signature.

Generic Writer: (setf signature) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf signature) ((update update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

signature.

Generic Reader: since (object)
Package

lichat-protocol.

Methods
Reader Method: since ((backfill backfill))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

since.

Generic Writer: (setf since) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf since) ((backfill backfill))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

since.

Generic Reader: symbol-designator (condition)

A symbol designator.

Returns a CONS of two strings for the package- and symbol-name respectively.

See NULL-IN-SYMBOL-DESIGNATOR
See UNKNOWN-SYMBOL

Package

lichat-protocol.

Methods
Reader Method: symbol-designator ((condition unknown-symbol))
Source

conditions.lisp.

Target Slot

symbol-designator.

Reader Method: symbol-designator ((condition null-in-symbol-designator))
Source

conditions.lisp.

Target Slot

symbol-designator.

Generic Reader: target (object)

Accessor to the name of the user being targeted.

See TARGET-UPDATE

Package

lichat-protocol.

Methods
Reader Method: target ((last-read last-read))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((react react))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((blocked blocked))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((ip-blacklist ip-blacklist))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((quieted quieted))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((blacklist blacklist))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Reader Method: target ((target-update target-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

target.

Generic Writer: (setf target) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf target) ((last-read last-read))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((react react))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((blocked blocked))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((ip-blacklist ip-blacklist))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((quieted quieted))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((blacklist blacklist))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Writer Method: (setf target) ((target-update target-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

target.

Generic Reader: text (object)

Accessor to the text string carried by the update.

See TEXT-UPDATE

Package

lichat-protocol.

Methods
Reader Method: text ((text-update text-update))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

text.

Generic Writer: (setf text) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf text) ((text-update text-update))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

text.

Generic Reader: update (condition)

The update object that relates to the condition.

See MISSING-UPDATE-ARGUMENT
See UNKNOWN-WIRE-OBJECT

Package

lichat-protocol.

Methods
Reader Method: update ((deny deny))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

update.

Reader Method: update ((grant grant))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

update.

Reader Method: update ((condition malformed-wire-object))
Source

conditions.lisp.

Target Slot

update.

Reader Method: update ((condition unknown-wire-object))
Source

conditions.lisp.

Target Slot

update.

Reader Method: update ((condition missing-update-argument))
Source

conditions.lisp.

Target Slot

update.

Generic Writer: (setf update) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf update) ((deny deny))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

update.

Writer Method: (setf update) ((grant grant))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

update.

Generic Reader: update-id (object)

Accessor to the ID of the update that failed to be completed.

See UPDATE-FAILURE

Package

lichat-protocol.

Methods
Reader Method: update-id ((last-read last-read))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

update-id.

Reader Method: update-id ((react react))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

update-id.

Reader Method: update-id ((update-failure update-failure))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

update-id.

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

lichat-protocol.

Methods
Writer Method: (setf update-id) ((last-read last-read))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

update-id.

Writer Method: (setf update-id) ((react react))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

update-id.

Writer Method: (setf update-id) ((update-failure update-failure))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

update-id.

Generic Reader: user (object)

Accessor to the user tied to the connection.

See CONNECTION
See USER

Package

lichat-protocol.

Methods
Reader Method: user ((connection connection))

automatically generated reader method

Source

protocol.lisp.

Target Slot

user.

Generic Writer: (setf user) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf user) ((connection connection))

automatically generated writer method

Source

protocol.lisp.

Target Slot

user.

Generic Reader: users (object)

Accessor to the list of users of the object.

See CHANNEL
See USERS

Package

lichat-protocol.

Methods
Reader Method: users ((users users))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

users.

Reader Method: users ((channel channel))

automatically generated reader method

Source

protocol.lisp.

Target Slot

users.

Generic Writer: (setf users) (object)
Package

lichat-protocol.

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

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

users.

Writer Method: (setf users) ((channel channel))

automatically generated writer method

Source

protocol.lisp.

Target Slot

users.

Generic Reader: version (object)

Accessor to the version of the connection update.

See CONNECT

Package

lichat-protocol.

Methods
Reader Method: version ((connect connect))

automatically generated reader method

Source

base-protocols.lisp.

Target Slot

version.

Generic Writer: (setf version) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf version) ((connect connect))

automatically generated writer method

Source

base-protocols.lisp.

Target Slot

version.


5.1.5 Standalone methods

Method: compute-effective-slot-definition ((class typed-slot-class) name direct-slots)
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: direct-slot-definition-class ((class typed-slot-class) &key)
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: effective-slot-definition-class ((class typed-slot-class) &key)
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: print-object ((update channel-update) stream)
Source

base-protocols.lisp.

Method: print-object ((update update) stream)
Source

base-protocols.lisp.

Method: print-object ((update target-update) stream)
Source

base-protocols.lisp.

Method: print-object ((update text-update) stream)
Source

base-protocols.lisp.

Method: print-object ((object named-object) stream)
Source

protocol.lisp.

Method: print-object ((update update-failure) stream)
Source

base-protocols.lisp.

Method: print-object ((connection connection) stream)
Source

protocol.lisp.

Method: print-object ((slot typed-slot) stream)
Source

typed-slot-class.lisp.

Method: shared-initialize :after ((object typed-object) slot-names &key)
Source

typed-slot-class.lisp.

Method: slot-makunbound-using-class :before ((class typed-slot-class) object (slot typed-slot))
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: (setf slot-value-using-class) :before ((class typed-slot-class) object (slot typed-slot))
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: validate-superclass ((class typed-slot-class) (superclass standard-class))
Package

sb-mop.

Source

typed-slot-class.lisp.

Method: validate-superclass ((class standard-class) (superclass typed-slot-class))
Package

sb-mop.

Source

typed-slot-class.lisp.


5.1.6 Conditions

Condition: incompatible-value-type-for-slot

Condition signalled when an incompatible type is attempted to be set on a slot.

See OBJECT
See SLOT
See VALUE
See REQTYPE

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: object
Initargs

:object

Readers

object.

Writers

This slot is read-only.

Slot: slot
Initargs

:slot

Readers

slot.

Writers

This slot is read-only.

Slot: value
Initargs

:value

Readers

value.

Writers

This slot is read-only.

Slot: type
Package

common-lisp.

Initargs

:type

Readers

reqtype.

Writers

This slot is read-only.

Condition: incomplete-token

Condition signalled when a token is not complete on the wire and thus can’t be read fully.

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Condition: malformed-wire-object

Condition signalled when an object is found on the wire but is malformed and can’t be parsed.

See UPDATE

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods

update.

Direct slots
Slot: update
Initargs

:update

Readers

update.

Writers

This slot is read-only.

Condition: missing-clock

Condition signalled when the CLOCK field is missing from an update.

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Condition: missing-id

Condition signalled when the ID field is missing from an update.

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Condition: missing-update-argument

Superclass for all conditions relating to missing required arguments in updates.

See MISSING-ID
See MISSING-CLOCK
See UPDATE

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses

wire-condition.

Direct subclasses
Direct methods

update.

Direct slots
Slot: update
Initargs

:update

Readers

update.

Writers

This slot is read-only.

Condition: null-in-symbol-designator

Condition signalled when a symbol is attempted to be put to the wire whose designator contains NULL characters.

See SYMBOL-DESIGNATOR

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods

symbol-designator.

Direct slots
Slot: symbol-designator
Initargs

:symbol-designator

Readers

symbol-designator.

Writers

This slot is read-only.

Condition: printer-condition

Superclass for all conditions relating to printing to the wire.

See UNPRINTABLE-OBJECT

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses

wire-condition.

Direct subclasses
Condition: protocol-condition

Superclass for all conditions relating to the protocol.

See WIRE-CONDITION
See INCOMPATIBLE-VALUE-TYPE-FOR-SLOT

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses

condition.

Direct subclasses
Condition: read-limit-hit
Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Condition: reader-condition

Superclass for all conditions relating to reading from the wire.

See INCOMPLETE-TOKEN
See UNKNOWN-SYMBOL

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses

wire-condition.

Direct subclasses
Condition: stray-null-found

Condition signalled when a null character was found in the middle of an update.

See READER-CONDITION

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Condition: unknown-symbol

Condition signalled when an unknown symbol is found on the wire.

See SYMBOL-DESIGNATOR

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods

symbol-designator.

Direct slots
Slot: symbol-designator
Initargs

:symbol-designator

Readers

symbol-designator.

Writers

This slot is read-only.

Condition: unknown-wire-object

Condition signalled when an object is found on the wire that has an unknown type.

See UPDATE

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods

update.

Direct slots
Slot: update
Initargs

:update

Readers

update.

Writers

This slot is read-only.

Condition: unprintable-object

Condition signalled when an unprintable object is attempted to be put onto the wire.

See OBJECT

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses
Direct methods

object.

Direct slots
Slot: object
Initargs

:object

Readers

object.

Writers

This slot is read-only.

Condition: wire-condition

Superclass for all conditions relating to the wire format.

See PRINTER-CONDITION
See READER-CONDITION
See MISSING-UPDATE-ARGUMENT
See UNKNOWN-WIRE-OBJECT
See MALFORMED-WIRE-OBJECT

Package

lichat-protocol.

Source

conditions.lisp.

Direct superclasses

protocol-condition.

Direct subclasses

5.1.7 Classes

Class: already-connected
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: already-in-channel

Update in response to a JOIN/PULL request for a user that is already in the specified channel.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: assume-identity
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initform

(error ":key required.")

Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: backfill

Update to represent a backfill request.

Possible responses:
See NOT-IN-CHANNEL

See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: since
Initargs

:since, :since

Readers

since.

Writers

(setf since).

Class: bad-content-type

Update in response to a DATA update with a content-type the server does not support.

See UPDATE-FAILURE
See ALLOWED-CONTENT-TYPES

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: allowed-content-types
Initform

(error ":allowed-content-types required.")

Initargs

:allowed-content-types, :allowed-content-types

Readers

allowed-content-types.

Writers

(setf allowed-content-types).

Class: bad-ip-format
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: bad-name

Update in response to any named request with a name that is not valid.

Relevant are the FROM, TARGET, and CHANNEL fields.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: ban
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: blacklist
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initargs

:target, :target

Readers

target.

Writers

(setf target).

Class: block
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: blocked
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initargs

:target, :target

Readers

target.

Writers

(setf target).

Class: bridge
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: capabilities
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: permitted
Initargs

:permitted, :permitted

Readers

permitted.

Writers

(setf permitted).

Class: channel

Class to represent a channel.

See NAMED-OBJECT
See SERVER-OBJECT
See PERMISSIONS
See LIFETIME
See USERS
See *DEFAULT-CHANNEL-LIFETIME*

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:permissionsnil
:lifetime*default-channel-lifetime*
:usersnil
Direct slots
Slot: name
Slot: permissions
Initargs

:permissions

Readers

permissions.

Writers

(setf permissions).

Slot: lifetime
Initargs

:lifetime

Readers

lifetime.

Writers

(setf lifetime).

Slot: users
Initargs

:users

Readers

users.

Writers

(setf users).

Class: channel-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: keys
Initform

(error ":keys required.")

Initargs

:keys, :keys

Readers

keys.

Writers

(setf keys).

Class: channel-update

Superclass for all updates relating to a channel.

See CHANNEL
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct slots
Slot: channel
Initform

(error ":channel required.")

Initargs

:channel, :channel

Readers

channel.

Writers

(setf channel).

Slot: bridge
Initargs

:bridge, lichat-protocol:bridge

Readers

bridge.

Writers

(setf bridge).

Class: channelname-taken

Update in response to a CREATE request for a channel that already exists.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: channels

Update to represent a channels listing request.

Possible responses:
See CHANNELS
See BAD-NAME
See USERNAME-MISMATCH

See CHANNELS
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: channels
Initargs

:channels, :channels

Readers

channels.

Writers

(setf channels).

Slot: channel
Initargs

:channel, :channel

Readers

channel.

Writers

(setf channel).

Class: clock-skewed
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: connect

Update to represent a connection request.

This update must be the first thing sent by the client upon connection establishment.

Possible responses:
See CONNECT
See BAD-NAME
See INVALID-PASSWORD
See USERNAME-TAKEN
See NO-SUCH-PROFILE
See INCOMPATIBLE-VERSION

See PASSWORD
See VERSION
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: password
Initargs

:password, :password

Readers

password.

Writers

(setf password).

Slot: version
Initform

(error ":version required.")

Initargs

:version, :version

Readers

version.

Writers

(setf version).

Slot: extensions
Initform

(error ":extensions required.")

Initargs

:extensions, :extensions

Readers

extensions.

Writers

(setf extensions).

Class: connection

Class to represent a connection of a user.

See SERVER-OBJECT
See USER

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:usernil
Direct slots
Slot: user
Initargs

:user

Readers

user.

Writers

(setf user).

Class: connection-unstable

Update in response to an unstable or slow connection.

See FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: create

Update to represent a channel creation request.

The channel may be NIL, in which case an anonymous channel is constructed. You can obtain the name of the anonymous channel by reading it out of the JOIN response.

Possible responses:
See JOIN
See BAD-NAME
See USERNAME-MISMATCH
See CHANNELNAME-TAKEN
See BAD-NAME
See INSUFFICIENT-PERMISSIONS

See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: channel
Initargs

:channel, :channel

Readers

channel.

Writers

(setf channel).

Class: data

Update to represent a raw data message.

Possible responses:
See NOT-IN-CHANNEL
See BAD-CONTENT-TYPE
See DATA

See CONTENT-TYPE
See FILENAME
See PAYLOAD
See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: content-type
Initform

(error ":content-type required.")

Initargs

:content-type, :content-type

Readers

content-type.

Writers

(setf content-type).

Slot: filename
Initargs

:filename, :filename

Readers

filename.

Writers

(setf filename).

Slot: payload
Initform

(error ":payload required.")

Initargs

:payload, :payload

Readers

payload.

Writers

(setf payload).

Class: deny
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: update
Initform

(error ":update required.")

Initargs

:update, :update

Readers

update.

Writers

(setf update).

Class: destroy
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: disconnect

Update to represent a disconnection request.

Possible responses:
See DISCONNECT
See USERNAME-MISMATCH

See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: edit

Update to represent a change to an existing message.

See MESSAGE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: emote

Update to represent an emote entity.

This should only be sent by the server.

See CONTENT-TYPE
See NAME
See PAYLOAD
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: content-type
Initform

(error ":content-type required.")

Initargs

:content-type, :content-type

Readers

content-type.

Writers

(setf content-type).

Slot: name
Initform

(error ":name required.")

Initargs

:name, :name

Readers

name.

Writers

(setf name).

Slot: payload
Initform

(error ":payload required.")

Initargs

:payload, :payload

Readers

payload.

Writers

(setf payload).

Class: emote-list-full
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: emotes

Update to represent an emote listing request.

Possible responses:
See EMOTE

See UPDATE
See NAMES

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: names
Initargs

:names, :names

Readers

names.

Writers

(setf names).

Class: failure

Superclass for all failure response updates.

See TEXT-UDPATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Class: grant
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: update
Initform

(error ":update required.")

Initargs

:update, :update

Readers

update.

Writers

(setf update).

Class: incompatible-version

Update in response to a connection attempt with an incompatible protocol version.

See COMPATIBLE-VERSIONS
See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: compatible-versions
Initform

(error ":compatible-versions required.")

Initargs

:compatible-versions, :compatible-versions

Readers

compatible-versions.

Writers

(setf compatible-versions).

Class: insufficient-permissions

Update in response to a request that is not permitted on the current or primary channel.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: invalid-password

Update in response to a connection attempt with an invalid password for the profile.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: invalid-permissions

Update in response to a PERMISSIONS request that attempted to set malformed permissions.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: invalid-update

Update in response to an update of invalid type.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: ip-ban
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: ip
Initform

(error ":ip required.")

Initargs

:ip, :ip

Readers

ip.

Writers

(setf ip).

Slot: mask
Initform

(error ":mask required.")

Initargs

:mask, :mask

Readers

mask.

Writers

(setf mask).

Class: ip-blacklist
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initargs

:target, :target

Readers

target.

Writers

(setf target).

Class: ip-unban
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: ip
Initform

(error ":ip required.")

Initargs

:ip, :ip

Readers

ip.

Writers

(setf ip).

Slot: mask
Initform

(error ":mask required.")

Initargs

:mask, :mask

Readers

mask.

Writers

(setf mask).

Class: join

Update to represent a channel join request.

Possible responses:
See JOIN
See BAD-NAME
See USERNAME-MISMATCH
See ALREADY-IN-CHANNEL
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See CHANNEL-UDPATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: kick

Update to represent a user kick request.

Possible responses:
See KICK
See BAD-NAME
See USERNAME-MISMATCH
See NOT-IN-CHANNEL
See NO-SUCH-USER
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See TARGET-UPDATE
See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: kill
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: last-read
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initargs

:target, :target

Readers

target.

Writers

(setf target).

Slot: update-id
Initargs

:update-id, :update-id

Readers

update-id.

Writers

(setf update-id).

Class: leave

Update to represent a channel leave request.

Possible responses:
See LEAVE
See BAD-NAME
See USERNAME-MISMATCH
See NOT-IN-CHANNEL
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See CHANNEL-UDPATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: list-shared-identities
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: identities
Initargs

:identities, :identities

Readers

identities.

Writers

(setf identities).

Class: malformed-channel-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: malformed-update

Update in response to a malformed update.

See FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: malformed-user-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: message

Update to represent a channel message request.

Possible responses:
See MESSAGE
See BAD-NAME
See USERNAME-MISMATCH
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See CHANNEL-UPDATE
See TEXT-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses

edit.

Direct methods
Direct slots
Initargs

lichat-protocol:link, :link

Readers

link.

Writers

(setf link).

Slot: reply-to
Initargs

:reply-to, lichat-protocol:reply-to

Readers

reply-to.

Writers

(setf reply-to).

Class: named-object

Superclass for all objects that are named.

See NAME

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses

typed-object.

Direct subclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

(setf name).

Class: no-such-channel

Update in response to a CHANNEL-UPDATE for a channel that does not exist.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: no-such-channel-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initform

(error ":key required.")

Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: no-such-parent-channel
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: no-such-profile

Update in response to a connection attempt with a password for an inexistent profile.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: no-such-user

Update in response to a TARGET-UPDATE request that refers to user that does not exist.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: no-such-user-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initform

(error ":key required.")

Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: not-in-channel

Update in response to a LEAVE/KICK request for a user that is not in the specified channel.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: object

Superclass for all classes that can be put onto the wire.

Package

lichat-protocol.

Source

protocol.lisp.

Direct subclasses

update.

Class: pause
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: by
Initform

(error ":by required.")

Initargs

:by, :by

Readers

by.

Writers

(setf by).

Class: permissions

Update to represent a channel permissions view or change request.

If PERMISSIONS is NIL, the permissions are not changed.

Possible responses:
See PERMISSIONS
See BAD-NAME
See USERNAME-MISMATCH
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See PERMISSIONS
See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: permissions
Initargs

:permissions, :permissions

Readers

permissions.

Writers

(setf permissions).

Class: ping

Update to represent a ping request.

The recipient must reply with a PONG update.

Possible responses:
PONG

See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: pong

Update to represent a pong response.

See PING
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: profile

Class to represent user profiles. Only registered users have a profile.

See NAMED-OBJECT
See SERVER-OBJECT
See NAME
See PASSWORD
See LIFETIME
See *DEFAULT-PROFILE-LIFETIME*

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:lifetime*default-profile-lifetime*
Direct slots
Slot: name
Slot: lifetime
Initargs

:lifetime

Readers

lifetime.

Writers

(setf lifetime).

Class: pull

Update to represent a user pull request.

The user will be automatically joined to the channel.

Possible responses:
See JOIN
See BAD-NAME
See USERNAME-MISMATCH
See ALREADY-IN-CHANNEL
See NO-SUCH-USER
See NO-SUCH-CHANNEL
See INSUFFICIENT-PERMISSIONS

See TARGET-UPDATE
See CHANNEL-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: quiet
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: quieted
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initargs

:target, :target

Readers

target.

Writers

(setf target).

Class: react
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: target
Initform

(error ":target required.")

Initargs

:target, :target

Readers

target.

Writers

(setf target).

Slot: update-id
Initform

(error ":update-id required.")

Initargs

:update-id, :update-id

Readers

update-id.

Writers

(setf update-id).

Slot: emote
Initform

(error ":emote required.")

Initargs

:emote, :emote

Readers

emote.

Writers

(setf emote).

Class: register

Update to represent a registration request.

Possible responses:
See REGISTRATION-REJECTED
See REGISTER
See BAD-NAME
See USERNAME-MISMATCH
See INSUFFICIENT-PERMISSIONS

See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: password
Initform

(error ":password required.")

Initargs

:password, :password

Readers

password.

Writers

(setf password).

Class: registration-rejected

Update in response to a REGISTER request that the server rejected.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: results
Initargs

:results, :results

Readers

results.

Writers

(setf results).

Slot: offset
Initargs

:offset, :offset

Readers

offset.

Writers

(setf offset).

Slot: query
Initargs

:query, :query

Readers

query.

Writers

(setf query).

Class: server-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: attributes
Initform

(error ":attributes required.")

Initargs

:attributes, :attributes

Readers

attributes.

Writers

(setf attributes).

Slot: connections
Initform

(error ":connections required.")

Initargs

:connections, :connections

Readers

connections.

Writers

(setf connections).

Class: server-object

Superclass for all objects that exist on the server-side.

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses

typed-object.

Direct subclasses
Class: set-channel-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initform

(error ":key required.")

Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: set-user-info
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initform

(error ":key required.")

Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: share-identity
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: target-update

Superclass for all updates that target a user.

See TARGET
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct slots
Slot: target
Initform

(error ":target required.")

Initargs

:target, :target

Readers

target.

Writers

(setf target).

Class: text-update

Superclass for all updates that carry a text string.

See TEXT
See UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct slots
Slot: text
Initform

(error ":text required.")

Initargs

:text, :text

Readers

text.

Writers

(setf text).

Slot: rich
Initargs

:rich, lichat-protocol:rich

Readers

rich.

Writers

(setf rich).

Slot: markup
Initargs

:markup, lichat-protocol:markup

Readers

markup.

Writers

(setf markup).

Class: too-many-channels
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: too-many-connections

Update in response to too many connections being requested on the server globally, or for a single user.

See FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: too-many-updates

Update in response to a flooding of the server.

When this update is sent, any number of future updates that are received may be dropped instead.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: typing
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: unban
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: unblock
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: unquiet
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: unshare-identity
Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: key
Initargs

:key, :key

Readers

key.

Writers

(setf key).

Class: update

Base class for all updates.

See OBJECT
See ID
See CLOCK
See FROM
See NEXT-ID

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct slots
Slot: id
Initform

(error ":id required.")

Initargs

:id, :id

Readers

id.

Writers

(setf id).

Slot: clock
Initargs

:clock, :clock

Readers

clock.

Writers

(setf clock).

Slot: from
Initargs

:from, :from

Readers

from.

Writers

(setf from).

Slot: signature
Initargs

:signature, lichat-protocol:signature

Readers

signature.

Writers

(setf signature).

Class: update-failure

Update in response to an update request that failed.

See UPDATE-ID
See FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct slots
Slot: update-id
Initform

(error ":update-id required.")

Initargs

:update-id, :update-id

Readers

update-id.

Writers

(setf update-id).

Class: update-too-long

Update in response to an update that contained too many characters.

See FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: user

Class to represent a user. Anything that can communicate with the server must have a user obuject.

See NAMED-OBJECT
See SERVER-OBJECT
See CONNECTIONS
See CHANNELS

Package

lichat-protocol.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:connectionsnil
:channelsnil
Direct slots
Slot: name
Slot: connections
Initargs

:connections

Readers

connections.

Writers

(setf connections).

Slot: channels
Initargs

:channels

Readers

channels.

Writers

(setf channels).

Class: user-info

Update to represent a user information request.

Possible responses:
See USER-INFO
See BAD-NAME
See USERNAME-MISMATCH
See NO-SUCH-USER

See REGISTERED
See CONNECTIONS
See TARGET-UPDATE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: registered
Initargs

:registered, :registered

Readers

registered.

Writers

(setf registered).

Slot: connections
Initargs

:connections, :connections

Readers

connections.

Writers

(setf connections).

Slot: info
Initargs

:info, lichat-protocol:info

Readers

info.

Writers

(setf info).

Class: username-mismatch

Update in response to a mismatch between the known username and the one in the FROM field.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: username-taken

Update in response to a connection attempt with a username that is already taken.

See UPDATE-FAILURE

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Class: users

Update to represent a channel users listing request.

Possible responses:
USERS
BAD-NAME
USERNAME-MISMATCH
NO-SUCH-CHANNEL
INSUFFICIENT-PERMISSIONS

See CHANNEL-UPDATE
See USERS

Package

lichat-protocol.

Source

base-protocols.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: users
Initargs

:users, :users

Readers

users.

Writers

(setf users).


5.1.8 Types

Type: channelname ()

Type that is satisfied for all channelname strings.

See CHANNELNAME-P

Package

lichat-protocol.

Source

protocol.lisp.

Type: id ()

Type that is satisfied for all ID objects.

See ID-P

Package

lichat-protocol.

Source

protocol.lisp.

Type: password ()

Type that is satisfied for all password strings.

See PASSWORD-P

Package

lichat-protocol.

Source

protocol.lisp.

Type: username ()

Type that is satisfied for all username strings.

See USERNAME-P

Package

lichat-protocol.

Source

protocol.lisp.

Type: wireable ()

Type for all objects that are permitted to appear on the wire.

Should be the union of REAL STRING CONS SYMBOL WIRE-OBJECT

Package

lichat-protocol.

Source

protocol.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *errors*

A list of errors that occurred during reading.

Package

lichat-protocol.

Source

reader.lisp.

Special Variable: *invalid-symbol*

Placeholder symbol for symbols that could not be properly read.

Package

lichat-protocol.

Source

reader.lisp.

Special Variable: *protocol-extensions*
Package

lichat-protocol.

Source

protocol.lisp.

Special Variable: *read-counter*
Package

lichat-protocol.

Source

reader.lisp.

Special Variable: *read-import*
Package

lichat-protocol.

Source

reader.lisp.

Special Variable: *read-limit*
Package

lichat-protocol.

Source

reader.lisp.

Special Variable: *unbound-value*

Placeholder value for unbound values.

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Special Variable: *whitespace*

A vector of whitespace characters.

Package

lichat-protocol.

Source

reader.lisp.


5.2.2 Macros

Macro: define-extension (name &body extensions)
Package

lichat-protocol.

Source

protocol.lisp.

Macro: define-from-protocol-file (file)
Package

lichat-protocol.

Source

protocol.lisp.

Macro: define-object (name superclasses &body fields)
Package

lichat-protocol.

Source

protocol.lisp.

Macro: define-object-extension (name superclasses &body fields)
Package

lichat-protocol.

Source

protocol.lisp.

Macro: define-package (name)
Package

lichat-protocol.

Source

protocol.lisp.

Macro: define-typed-class (name direct-superclasses direct-slots &body options)

Shorthand wrapper around defclass to set it up for a typed-class.

See TYPED-OBJECT
See TYPED-SLOT-CLASS

Package

lichat-protocol.

Source

typed-slot-class.lisp.


5.2.3 Ordinary functions

Function: %check-slot-value (value type)
Package

lichat-protocol.

Source

typed-slot-class.lisp.

Function: check-compatible-slot-value (value object slot)

Checks whether the given value is suitable for the given object’s slot.

If it is not, an error of type INCOMPATIBLE-VALUE-TYPE-FOR-SLOT
is signalled.

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Function: field-definition-to-slot-definition (field)
Package

lichat-protocol.

Source

protocol.lisp.

Function: lpeek (stream)
Package

lichat-protocol.

Source

reader.lisp.

Function: lread (stream &optional eof)
Package

lichat-protocol.

Source

reader.lisp.

Function: lunread (char stream)
Package

lichat-protocol.

Source

reader.lisp.

Function: maybe-sval (object slot)

Returns the slot’s value if it is bound, or *UNBOUND-VALUE* if it is not.

Package

lichat-protocol.

Source

protocol.lisp.

Function: print-sexpr-list (list stream)

Print an s-expression list to the stream.

This only handles proper lists. List items are printed recursively.

See PRINT-SEXPR

Package

lichat-protocol.

Source

printer.lisp.

Function: print-sexpr-number (number stream)

Print an s-expression number to the stream.

Only integers and floats can be printed, which are printed according to the CLHS rules on printing numbers.

Package

lichat-protocol.

Source

printer.lisp.

Function: print-sexpr-string (string stream)

Print an s-expression string to the stream.

Prints all characters verbatim, with the exception of ", which is escaped with a backslash.

Package

lichat-protocol.

Source

printer.lisp.

Function: print-sexpr-symbol (sexpr stream)

Print an s-expression symbol to the stream.

Symbols are printed as follows: KEYWORD:FOO => :FOO LICHAT-PROTOCOL:FOO => FOO
#:FOO => #:FOO SOMEWHERE:FOO => SOMEWHERE:FOO

See PRINT-SEXPR-TOKEN

Package

lichat-protocol.

Source

printer.lisp.

Function: print-sexpr-token (token stream symbol)

Print an s-expression token to the stream.

All characters in the token string are printed verbatim, with the exception of "():0123456789. #
which are escaped by a backslash.

Package

lichat-protocol.

Source

printer.lisp.

Function: read-protocol-file (file)
Package

lichat-protocol.

Source

protocol.lisp.

Function: read-sexpr-keyword (stream)

Read a keyword from the stream. It is assumed that the colon has already been read.

See SAFE-FIND-SYMBOL
See READ-SEXPR-TOKEN

Package

lichat-protocol.

Source

reader.lisp.

Function: read-sexpr-list (stream)

Read a list from the stream. It is assumed that the opening paren has already been read.

Package

lichat-protocol.

Source

reader.lisp.

Function: read-sexpr-number (stream)

Reads a number from the stream. The number can be either an integer or a float.

Package

lichat-protocol.

Source

reader.lisp.

Function: read-sexpr-string (stream)

Read a string from the stream. It is assumed that the opening double-quote has already been read.

Package

lichat-protocol.

Source

reader.lisp.

Function: read-sexpr-symbol (stream)

Reads a symbol from the stream.

See READ-SEXPR-TOKEN
See SAFE-FIND-SYMBOL

Package

lichat-protocol.

Source

reader.lisp.

Function: read-sexpr-token (stream)

Reads a token from the stream.

Tokens are sequences of characters that are terminated by one of the following:
"():0123456789.
These characters may still appear in a token, but must be escaped by a backslash.

Package

lichat-protocol.

Source

reader.lisp.

Function: safe-find-symbol (name package-name)

Similar to FIND-SYMBOL, but recording an error for unknown symbols.

If the symbol cannot be found, a condition of type UNKNOWN-SYMBOL is pushed onto the *ERRORS* list and *INVALID-SYMBOL* is returned.

See FIND-SYMBOL
See UNKNOWN-SYMBOL
See *INVALID-SYMBOL*
See *ERRORS*

Package

lichat-protocol.

Source

reader.lisp.

Function: skip-whitespace (stream)

Consumes all characters from the stream until a non-whitespace character is found.

See WHITESPACE-P

Package

lichat-protocol.

Source

reader.lisp.

Function: valid-name-char-p (c)

Returns true if the given character is an allowed character in names.

This is according to §2.2.1 and §2.4.4.

Package

lichat-protocol.

Source

protocol.lisp.


5.2.4 Generic functions

Generic Reader: reqtype (condition)

The required type for the slot that was attempted to be set.

See INCOMPATIBLE-VALUE-TYPE-FOR-SLOT

Package

lichat-protocol.

Methods
Reader Method: reqtype ((condition incompatible-value-type-for-slot))
Source

conditions.lisp.

Target Slot

type.

Generic Reader: slot (condition)

The slot that was attempted to be set.

See INCOMPATIBLE-VALUE-TYPE-FOR-SLOT

Package

lichat-protocol.

Methods
Reader Method: slot ((condition incompatible-value-type-for-slot))
Source

conditions.lisp.

Target Slot

slot.

Generic Reader: slot-type (object)

Accessor to the type constraint of the typed-slot.

See TYPED-SLOT

Package

lichat-protocol.

Methods
Reader Method: slot-type ((typed-slot typed-slot))

automatically generated reader method

Source

typed-slot-class.lisp.

Target Slot

slot-type.

Generic Writer: (setf slot-type) (object)
Package

lichat-protocol.

Methods
Writer Method: (setf slot-type) ((typed-slot typed-slot))

automatically generated writer method

Source

typed-slot-class.lisp.

Target Slot

slot-type.

Generic Reader: value (condition)

The value that was attempted to be set.

See INCOMPATIBLE-VALUE-TYPE-FOR-SLOT

Package

lichat-protocol.

Methods
Reader Method: value ((condition incompatible-value-type-for-slot))
Source

conditions.lisp.

Target Slot

value.


5.2.5 Classes

Class: typed-direct-slot-definition

Direct-slot class for typed slots.

See TYPED-SLOT

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Direct superclasses
Class: typed-effective-slot-definition

Effective-slot class for typed slots.

See TYPED-SLOT

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Direct superclasses
Class: typed-object

Superclass for objects with strictly typed slots.

See TYPED-SLOT-CLASS
See DEFINE-TYPED-CLASS

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Direct subclasses
Direct methods

shared-initialize.

Class: typed-slot

Slot class for slots with a strict type check.

See SLOT-TYPE
See TYPED-DIRECT-SLOT-DEFINITION
See TYPED-EFFECTIVE-SLOT-DEFINITION
See TYPED-SLOT-CLASS

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Direct superclasses

standard-slot-definition.

Direct subclasses
Direct methods
Direct slots
Slot: slot-type
Initargs

:slot-type

Readers

slot-type.

Writers

(setf slot-type).

Class: typed-slot-class

Metaclass for classes with strictly typed slots.

See TYPED-SLOT
See TYPED-OBJECT

Package

lichat-protocol.

Source

typed-slot-class.lisp.

Direct superclasses

standard-class.

Direct methods

Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   K   L   M   N   O   P   Q   R   S   T   U   V   W  
Index Entry  Section

%
%check-slot-value: Private ordinary functions

(
(setf allowed-content-types): Public generic functions
(setf allowed-content-types): Public generic functions
(setf attributes): Public generic functions
(setf attributes): Public generic functions
(setf bridge): Public generic functions
(setf bridge): Public generic functions
(setf by): Public generic functions
(setf by): Public generic functions
(setf channel): Public generic functions
(setf channel): Public generic functions
(setf channel): Public generic functions
(setf channel): Public generic functions
(setf channels): Public generic functions
(setf channels): Public generic functions
(setf channels): Public generic functions
(setf clock): Public generic functions
(setf clock): Public generic functions
(setf compatible-versions): Public generic functions
(setf compatible-versions): Public generic functions
(setf connections): Public generic functions
(setf connections): Public generic functions
(setf connections): Public generic functions
(setf connections): Public generic functions
(setf content-type): Public generic functions
(setf content-type): Public generic functions
(setf content-type): Public generic functions
(setf emote): Public generic functions
(setf emote): Public generic functions
(setf extensions): Public generic functions
(setf extensions): Public generic functions
(setf filename): Public generic functions
(setf filename): Public generic functions
(setf from): Public generic functions
(setf from): Public generic functions
(setf id): Public generic functions
(setf id): Public generic functions
(setf identities): Public generic functions
(setf identities): Public generic functions
(setf info): Public generic functions
(setf info): Public generic functions
(setf ip): Public generic functions
(setf ip): Public generic functions
(setf ip): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf key): Public generic functions
(setf keys): Public generic functions
(setf keys): Public generic functions
(setf lifetime): Public generic functions
(setf lifetime): Public generic functions
(setf lifetime): Public generic functions
(setf link): Public generic functions
(setf link): Public generic functions
(setf markup): Public generic functions
(setf markup): Public generic functions
(setf mask): Public generic functions
(setf mask): Public generic functions
(setf mask): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf names): Public generic functions
(setf names): Public generic functions
(setf offset): Public generic functions
(setf offset): Public generic functions
(setf password): Public generic functions
(setf password): Public generic functions
(setf password): Public generic functions
(setf payload): Public generic functions
(setf payload): Public generic functions
(setf payload): Public generic functions
(setf permissions): Public generic functions
(setf permissions): Public generic functions
(setf permissions): Public generic functions
(setf permitted): Public generic functions
(setf permitted): Public generic functions
(setf query): Public generic functions
(setf query): Public generic functions
(setf registered): Public generic functions
(setf registered): Public generic functions
(setf reply-to): Public generic functions
(setf reply-to): Public generic functions
(setf results): Public generic functions
(setf results): Public generic functions
(setf rich): Public generic functions
(setf rich): Public generic functions
(setf signature): Public generic functions
(setf signature): Public generic functions
(setf since): Public generic functions
(setf since): Public generic functions
(setf slot-type): Private generic functions
(setf slot-type): Private generic functions
(setf slot-value-using-class): Public standalone methods
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf target): Public generic functions
(setf text): Public generic functions
(setf text): Public generic functions
(setf update): Public generic functions
(setf update): Public generic functions
(setf update): Public generic functions
(setf update-id): Public generic functions
(setf update-id): Public generic functions
(setf update-id): Public generic functions
(setf update-id): Public generic functions
(setf user): Public generic functions
(setf user): Public generic functions
(setf users): Public generic functions
(setf users): Public generic functions
(setf users): Public generic functions
(setf version): Public generic functions
(setf version): Public generic functions

A
allowed-content-types: Public generic functions
allowed-content-types: Public generic functions
attributes: Public generic functions
attributes: Public generic functions

B
bridge: Public generic functions
bridge: Public generic functions
by: Public generic functions
by: Public generic functions

C
channel: Public generic functions
channel: Public generic functions
channel: Public generic functions
channel: Public generic functions
channelname-p: Public ordinary functions
channels: Public generic functions
channels: Public generic functions
channels: Public generic functions
check-compatible-slot-value: Private ordinary functions
check-update-options: Public ordinary functions
clock: Public generic functions
clock: Public generic functions
compatible-versions: Public generic functions
compatible-versions: Public generic functions
compute-effective-slot-definition: Public standalone methods
connections: Public generic functions
connections: Public generic functions
connections: Public generic functions
connections: Public generic functions
content-type: Public generic functions
content-type: Public generic functions
content-type: Public generic functions

D
define-extension: Private macros
define-from-protocol-file: Private macros
define-object: Private macros
define-object-extension: Private macros
define-package: Private macros
define-protocol-class: Public macros
define-typed-class: Private macros
direct-slot-definition-class: Public standalone methods

E
effective-slot-definition-class: Public standalone methods
emote: Public generic functions
emote: Public generic functions
extensions: Public generic functions
extensions: Public generic functions

F
field-definition-to-slot-definition: Private ordinary functions
filename: Public generic functions
filename: Public generic functions
from: Public generic functions
from: Public generic functions
from-wire: Public ordinary functions
from-wire*: Public ordinary functions
Function, %check-slot-value: Private ordinary functions
Function, channelname-p: Public ordinary functions
Function, check-compatible-slot-value: Private ordinary functions
Function, check-update-options: Public ordinary functions
Function, field-definition-to-slot-definition: Private ordinary functions
Function, from-wire: Public ordinary functions
Function, from-wire*: Public ordinary functions
Function, id-p: Public ordinary functions
Function, lpeek: Private ordinary functions
Function, lread: Private ordinary functions
Function, lunread: Private ordinary functions
Function, maybe-sval: Private ordinary functions
Function, next-id: Public ordinary functions
Function, password-p: Public ordinary functions
Function, print-sexpr: Public ordinary functions
Function, print-sexpr-list: Private ordinary functions
Function, print-sexpr-number: Private ordinary functions
Function, print-sexpr-string: Private ordinary functions
Function, print-sexpr-symbol: Private ordinary functions
Function, print-sexpr-token: Private ordinary functions
Function, protocol-version: Public ordinary functions
Function, read-protocol-file: Private ordinary functions
Function, read-sexpr: Public ordinary functions
Function, read-sexpr-keyword: Private ordinary functions
Function, read-sexpr-list: Private ordinary functions
Function, read-sexpr-number: Private ordinary functions
Function, read-sexpr-string: Private ordinary functions
Function, read-sexpr-symbol: Private ordinary functions
Function, read-sexpr-token: Private ordinary functions
Function, safe-find-symbol: Private ordinary functions
Function, skip-to-null: Public ordinary functions
Function, skip-whitespace: Private ordinary functions
Function, to-wire: Public ordinary functions
Function, username-p: Public ordinary functions
Function, valid-name-char-p: Private ordinary functions
Function, whitespace-p: Public ordinary functions

G
Generic Function, (setf allowed-content-types): Public generic functions
Generic Function, (setf attributes): Public generic functions
Generic Function, (setf bridge): Public generic functions
Generic Function, (setf by): Public generic functions
Generic Function, (setf channel): Public generic functions
Generic Function, (setf channels): Public generic functions
Generic Function, (setf clock): Public generic functions
Generic Function, (setf compatible-versions): Public generic functions
Generic Function, (setf connections): Public generic functions
Generic Function, (setf content-type): Public generic functions
Generic Function, (setf emote): Public generic functions
Generic Function, (setf extensions): Public generic functions
Generic Function, (setf filename): Public generic functions
Generic Function, (setf from): Public generic functions
Generic Function, (setf id): Public generic functions
Generic Function, (setf identities): Public generic functions
Generic Function, (setf info): Public generic functions
Generic Function, (setf ip): Public generic functions
Generic Function, (setf key): Public generic functions
Generic Function, (setf keys): Public generic functions
Generic Function, (setf lifetime): Public generic functions
Generic Function, (setf link): Public generic functions
Generic Function, (setf markup): Public generic functions
Generic Function, (setf mask): Public generic functions
Generic Function, (setf name): Public generic functions
Generic Function, (setf names): Public generic functions
Generic Function, (setf offset): Public generic functions
Generic Function, (setf password): Public generic functions
Generic Function, (setf payload): Public generic functions
Generic Function, (setf permissions): Public generic functions
Generic Function, (setf permitted): Public generic functions
Generic Function, (setf query): Public generic functions
Generic Function, (setf registered): Public generic functions
Generic Function, (setf reply-to): Public generic functions
Generic Function, (setf results): Public generic functions
Generic Function, (setf rich): Public generic functions
Generic Function, (setf signature): Public generic functions
Generic Function, (setf since): Public generic functions
Generic Function, (setf slot-type): Private generic functions
Generic Function, (setf target): Public generic functions
Generic Function, (setf text): Public generic functions
Generic Function, (setf update): Public generic functions
Generic Function, (setf update-id): Public generic functions
Generic Function, (setf user): Public generic functions
Generic Function, (setf users): Public generic functions
Generic Function, (setf version): Public generic functions
Generic Function, allowed-content-types: Public generic functions
Generic Function, attributes: Public generic functions
Generic Function, bridge: Public generic functions
Generic Function, by: Public generic functions
Generic Function, channel: Public generic functions
Generic Function, channels: Public generic functions
Generic Function, clock: Public generic functions
Generic Function, compatible-versions: Public generic functions
Generic Function, connections: Public generic functions
Generic Function, content-type: Public generic functions
Generic Function, emote: Public generic functions
Generic Function, extensions: Public generic functions
Generic Function, filename: Public generic functions
Generic Function, from: Public generic functions
Generic Function, id: Public generic functions
Generic Function, identities: Public generic functions
Generic Function, info: Public generic functions
Generic Function, ip: Public generic functions
Generic Function, key: Public generic functions
Generic Function, keys: Public generic functions
Generic Function, lifetime: Public generic functions
Generic Function, link: Public generic functions
Generic Function, markup: Public generic functions
Generic Function, mask: Public generic functions
Generic Function, name: Public generic functions
Generic Function, names: Public generic functions
Generic Function, object: Public generic functions
Generic Function, offset: Public generic functions
Generic Function, password: Public generic functions
Generic Function, payload: Public generic functions
Generic Function, permissions: Public generic functions
Generic Function, permitted: Public generic functions
Generic Function, query: Public generic functions
Generic Function, registered: Public generic functions
Generic Function, reply-to: Public generic functions
Generic Function, reqtype: Private generic functions
Generic Function, results: Public generic functions
Generic Function, rich: Public generic functions
Generic Function, signature: Public generic functions
Generic Function, since: Public generic functions
Generic Function, slot: Private generic functions
Generic Function, slot-type: Private generic functions
Generic Function, symbol-designator: Public generic functions
Generic Function, target: Public generic functions
Generic Function, text: Public generic functions
Generic Function, update: Public generic functions
Generic Function, update-id: Public generic functions
Generic Function, user: Public generic functions
Generic Function, users: Public generic functions
Generic Function, value: Private generic functions
Generic Function, version: Public generic functions

I
id: Public generic functions
id: Public generic functions
id-p: Public ordinary functions
identities: Public generic functions
identities: Public generic functions
info: Public generic functions
info: Public generic functions
ip: Public generic functions
ip: Public generic functions
ip: Public generic functions

K
key: Public generic functions
key: Public generic functions
key: Public generic functions
key: Public generic functions
key: Public generic functions
key: Public generic functions
key: Public generic functions
key: Public generic functions
keys: Public generic functions
keys: Public generic functions

L
lifetime: Public generic functions
lifetime: Public generic functions
lifetime: Public generic functions
link: Public generic functions
link: Public generic functions
lpeek: Private ordinary functions
lread: Private ordinary functions
lunread: Private ordinary functions

M
Macro, define-extension: Private macros
Macro, define-from-protocol-file: Private macros
Macro, define-object: Private macros
Macro, define-object-extension: Private macros
Macro, define-package: Private macros
Macro, define-protocol-class: Public macros
Macro, define-typed-class: Private macros
markup: Public generic functions
markup: Public generic functions
mask: Public generic functions
mask: Public generic functions
mask: Public generic functions
maybe-sval: Private ordinary functions
Method, (setf allowed-content-types): Public generic functions
Method, (setf attributes): Public generic functions
Method, (setf bridge): Public generic functions
Method, (setf by): Public generic functions
Method, (setf channel): Public generic functions
Method, (setf channel): Public generic functions
Method, (setf channel): Public generic functions
Method, (setf channels): Public generic functions
Method, (setf channels): Public generic functions
Method, (setf clock): Public generic functions
Method, (setf compatible-versions): Public generic functions
Method, (setf connections): Public generic functions
Method, (setf connections): Public generic functions
Method, (setf connections): Public generic functions
Method, (setf content-type): Public generic functions
Method, (setf content-type): Public generic functions
Method, (setf emote): Public generic functions
Method, (setf extensions): Public generic functions
Method, (setf filename): Public generic functions
Method, (setf from): Public generic functions
Method, (setf id): Public generic functions
Method, (setf identities): Public generic functions
Method, (setf info): Public generic functions
Method, (setf ip): Public generic functions
Method, (setf ip): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf key): Public generic functions
Method, (setf keys): Public generic functions
Method, (setf lifetime): Public generic functions
Method, (setf lifetime): Public generic functions
Method, (setf link): Public generic functions
Method, (setf markup): Public generic functions
Method, (setf mask): Public generic functions
Method, (setf mask): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf names): Public generic functions
Method, (setf offset): Public generic functions
Method, (setf password): Public generic functions
Method, (setf password): Public generic functions
Method, (setf payload): Public generic functions
Method, (setf payload): Public generic functions
Method, (setf permissions): Public generic functions
Method, (setf permissions): Public generic functions
Method, (setf permitted): Public generic functions
Method, (setf query): Public generic functions
Method, (setf registered): Public generic functions
Method, (setf reply-to): Public generic functions
Method, (setf results): Public generic functions
Method, (setf rich): Public generic functions
Method, (setf signature): Public generic functions
Method, (setf since): Public generic functions
Method, (setf slot-type): Private generic functions
Method, (setf slot-value-using-class): Public standalone methods
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf target): Public generic functions
Method, (setf text): Public generic functions
Method, (setf update): Public generic functions
Method, (setf update): Public generic functions
Method, (setf update-id): Public generic functions
Method, (setf update-id): Public generic functions
Method, (setf update-id): Public generic functions
Method, (setf user): Public generic functions
Method, (setf users): Public generic functions
Method, (setf users): Public generic functions
Method, (setf version): Public generic functions
Method, allowed-content-types: Public generic functions
Method, attributes: Public generic functions
Method, bridge: Public generic functions
Method, by: Public generic functions
Method, channel: Public generic functions
Method, channel: Public generic functions
Method, channel: Public generic functions
Method, channels: Public generic functions
Method, channels: Public generic functions
Method, clock: Public generic functions
Method, compatible-versions: Public generic functions
Method, compute-effective-slot-definition: Public standalone methods
Method, connections: Public generic functions
Method, connections: Public generic functions
Method, connections: Public generic functions
Method, content-type: Public generic functions
Method, content-type: Public generic functions
Method, direct-slot-definition-class: Public standalone methods
Method, effective-slot-definition-class: Public standalone methods
Method, emote: Public generic functions
Method, extensions: Public generic functions
Method, filename: Public generic functions
Method, from: Public generic functions
Method, id: Public generic functions
Method, identities: Public generic functions
Method, info: Public generic functions
Method, ip: Public generic functions
Method, ip: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, key: Public generic functions
Method, keys: Public generic functions
Method, lifetime: Public generic functions
Method, lifetime: Public generic functions
Method, link: Public generic functions
Method, markup: Public generic functions
Method, mask: Public generic functions
Method, mask: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, names: Public generic functions
Method, object: Public generic functions
Method, object: Public generic functions
Method, offset: Public generic functions
Method, password: Public generic functions
Method, password: Public generic functions
Method, payload: Public generic functions
Method, payload: Public generic functions
Method, permissions: Public generic functions
Method, permissions: Public generic functions
Method, permitted: Public generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, query: Public generic functions
Method, registered: Public generic functions
Method, reply-to: Public generic functions
Method, reqtype: Private generic functions
Method, results: Public generic functions
Method, rich: Public generic functions
Method, shared-initialize: Public standalone methods
Method, signature: Public generic functions
Method, since: Public generic functions
Method, slot: Private generic functions
Method, slot-makunbound-using-class: Public standalone methods
Method, slot-type: Private generic functions
Method, symbol-designator: Public generic functions
Method, symbol-designator: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, target: Public generic functions
Method, text: Public generic functions
Method, update: Public generic functions
Method, update: Public generic functions
Method, update: Public generic functions
Method, update: Public generic functions
Method, update: Public generic functions
Method, update-id: Public generic functions
Method, update-id: Public generic functions
Method, update-id: Public generic functions
Method, user: Public generic functions
Method, users: Public generic functions
Method, users: Public generic functions
Method, validate-superclass: Public standalone methods
Method, validate-superclass: Public standalone methods
Method, value: Private generic functions
Method, version: Public generic functions

N
name: Public generic functions
name: Public generic functions
name: Public generic functions
names: Public generic functions
names: Public generic functions
next-id: Public ordinary functions

O
object: Public generic functions
object: Public generic functions
object: Public generic functions
offset: Public generic functions
offset: Public generic functions

P
password: Public generic functions
password: Public generic functions
password: Public generic functions
password-p: Public ordinary functions
payload: Public generic functions
payload: Public generic functions
payload: Public generic functions
permissions: Public generic functions
permissions: Public generic functions
permissions: Public generic functions
permitted: Public generic functions
permitted: Public generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-sexpr: Public ordinary functions
print-sexpr-list: Private ordinary functions
print-sexpr-number: Private ordinary functions
print-sexpr-string: Private ordinary functions
print-sexpr-symbol: Private ordinary functions
print-sexpr-token: Private ordinary functions
protocol-version: Public ordinary functions

Q
query: Public generic functions
query: Public generic functions

R
read-protocol-file: Private ordinary functions
read-sexpr: Public ordinary functions
read-sexpr-keyword: Private ordinary functions
read-sexpr-list: Private ordinary functions
read-sexpr-number: Private ordinary functions
read-sexpr-string: Private ordinary functions
read-sexpr-symbol: Private ordinary functions
read-sexpr-token: Private ordinary functions
registered: Public generic functions
registered: Public generic functions
reply-to: Public generic functions
reply-to: Public generic functions
reqtype: Private generic functions
reqtype: Private generic functions
results: Public generic functions
results: Public generic functions
rich: Public generic functions
rich: Public generic functions

S
safe-find-symbol: Private ordinary functions
shared-initialize: Public standalone methods
signature: Public generic functions
signature: Public generic functions
since: Public generic functions
since: Public generic functions
skip-to-null: Public ordinary functions
skip-whitespace: Private ordinary functions
slot: Private generic functions
slot: Private generic functions
slot-makunbound-using-class: Public standalone methods
slot-type: Private generic functions
slot-type: Private generic functions
symbol-designator: Public generic functions
symbol-designator: Public generic functions
symbol-designator: Public generic functions

T
target: Public generic functions
target: Public generic functions
target: Public generic functions
target: Public generic functions
target: Public generic functions
target: Public generic functions
target: Public generic functions
target: Public generic functions
text: Public generic functions
text: Public generic functions
to-wire: Public ordinary functions

U
update: Public generic functions
update: Public generic functions
update: Public generic functions
update: Public generic functions
update: Public generic functions
update: Public generic functions
update-id: Public generic functions
update-id: Public generic functions
update-id: Public generic functions
update-id: Public generic functions
user: Public generic functions
user: Public generic functions
username-p: Public ordinary functions
users: Public generic functions
users: Public generic functions
users: Public generic functions

V
valid-name-char-p: Private ordinary functions
validate-superclass: Public standalone methods
validate-superclass: Public standalone methods
value: Private generic functions
value: Private generic functions
version: Public generic functions
version: Public generic functions

W
whitespace-p: Public ordinary functions


A.3 Variables

Jump to:   *  
A   B   C   E   F   I   K   L   M   N   O   P   Q   R   S   T   U   V  
Index Entry  Section

*
*default-anonymous-channel-permissions*: Public special variables
*default-channel-lifetime*: Public special variables
*default-primary-channel-permissions*: Public special variables
*default-profile-lifetime*: Public special variables
*default-regular-channel-permissions*: Public special variables
*errors*: Private special variables
*id-counter*: Public special variables
*invalid-symbol*: Private special variables
*protocol-extensions*: Private special variables
*read-counter*: Private special variables
*read-import*: Private special variables
*read-limit*: Private special variables
*unbound-value*: Private special variables
*whitespace*: Private special variables

A
allowed-content-types: Public classes
attributes: Public classes

B
bridge: Public classes
by: Public classes

C
channel: Public classes
channel: Public classes
channel: Public classes
channels: Public classes
channels: Public classes
clock: Public classes
compatible-versions: Public classes
connections: Public classes
connections: Public classes
connections: Public classes
content-type: Public classes
content-type: Public classes

E
emote: Public classes
extensions: Public classes

F
filename: Public classes
from: Public classes

I
id: Public classes
identities: Public classes
info: Public classes
ip: Public classes
ip: Public classes

K
key: Public classes
key: Public classes
key: Public classes
key: Public classes
key: Public classes
key: Public classes
key: Public classes
keys: Public classes

L
lifetime: Public classes
lifetime: Public classes
link: Public classes

M
markup: Public classes
mask: Public classes
mask: Public classes

N
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
names: Public classes

O
object: Public conditions
object: Public conditions
offset: Public classes

P
password: Public classes
password: Public classes
payload: Public classes
payload: Public classes
permissions: Public classes
permissions: Public classes
permitted: Public classes

Q
query: Public classes

R
registered: Public classes
reply-to: Public classes
results: Public classes
rich: Public classes

S
signature: Public classes
since: Public classes
slot: Public conditions
Slot, allowed-content-types: Public classes
Slot, attributes: Public classes
Slot, bridge: Public classes
Slot, by: Public classes
Slot, channel: Public classes
Slot, channel: Public classes
Slot, channel: Public classes
Slot, channels: Public classes
Slot, channels: Public classes
Slot, clock: Public classes
Slot, compatible-versions: Public classes
Slot, connections: Public classes
Slot, connections: Public classes
Slot, connections: Public classes
Slot, content-type: Public classes
Slot, content-type: Public classes
Slot, emote: Public classes
Slot, extensions: Public classes
Slot, filename: Public classes
Slot, from: Public classes
Slot, id: Public classes
Slot, identities: Public classes
Slot, info: Public classes
Slot, ip: Public classes
Slot, ip: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, key: Public classes
Slot, keys: Public classes
Slot, lifetime: Public classes
Slot, lifetime: Public classes
Slot, link: Public classes
Slot, markup: Public classes
Slot, mask: Public classes
Slot, mask: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, names: Public classes
Slot, object: Public conditions
Slot, object: Public conditions
Slot, offset: Public classes
Slot, password: Public classes
Slot, password: Public classes
Slot, payload: Public classes
Slot, payload: Public classes
Slot, permissions: Public classes
Slot, permissions: Public classes
Slot, permitted: Public classes
Slot, query: Public classes
Slot, registered: Public classes
Slot, reply-to: Public classes
Slot, results: Public classes
Slot, rich: Public classes
Slot, signature: Public classes
Slot, since: Public classes
Slot, slot: Public conditions
Slot, slot-type: Private classes
Slot, symbol-designator: Public conditions
Slot, symbol-designator: Public conditions
Slot, target: Public classes
Slot, target: Public classes
Slot, target: Public classes
Slot, target: Public classes
Slot, target: Public classes
Slot, target: Public classes
Slot, target: Public classes
Slot, text: Public classes
Slot, type: Public conditions
Slot, update: Public conditions
Slot, update: Public conditions
Slot, update: Public conditions
Slot, update: Public classes
Slot, update: Public classes
Slot, update-id: Public classes
Slot, update-id: Public classes
Slot, update-id: Public classes
Slot, user: Public classes
Slot, users: Public classes
Slot, users: Public classes
Slot, value: Public conditions
Slot, version: Public classes
slot-type: Private classes
Special Variable, *default-anonymous-channel-permissions*: Public special variables
Special Variable, *default-channel-lifetime*: Public special variables
Special Variable, *default-primary-channel-permissions*: Public special variables
Special Variable, *default-profile-lifetime*: Public special variables
Special Variable, *default-regular-channel-permissions*: Public special variables
Special Variable, *errors*: Private special variables
Special Variable, *id-counter*: Public special variables
Special Variable, *invalid-symbol*: Private special variables
Special Variable, *protocol-extensions*: Private special variables
Special Variable, *read-counter*: Private special variables
Special Variable, *read-import*: Private special variables
Special Variable, *read-limit*: Private special variables
Special Variable, *unbound-value*: Private special variables
Special Variable, *whitespace*: Private special variables
symbol-designator: Public conditions
symbol-designator: Public conditions

T
target: Public classes
target: Public classes
target: Public classes
target: Public classes
target: Public classes
target: Public classes
target: Public classes
text: Public classes
type: Public conditions

U
update: Public conditions
update: Public conditions
update: Public conditions
update: Public classes
update: Public classes
update-id: Public classes
update-id: Public classes
update-id: Public classes
user: Public classes
users: Public classes
users: Public classes

V
value: Public conditions
version: Public classes


A.4 Data types

Jump to:   A   B   C   D   E   F   G   I   J   K   L   M   N   O   P   Q   R   S   T   U   W  
Index Entry  Section

A
already-connected: Public classes
already-in-channel: Public classes
assume-identity: Public classes

B
backfill: Public classes
bad-content-type: Public classes
bad-ip-format: Public classes
bad-name: Public classes
ban: Public classes
base-protocols.lisp: The lichat-protocol/base-protocols․lisp file
blacklist: Public classes
block: Public classes
blocked: Public classes
bridge: Public classes

C
capabilities: Public classes
channel: Public classes
channel-info: Public classes
channel-update: Public classes
channelname: Public types
channelname-taken: Public classes
channels: Public classes
Class, already-connected: Public classes
Class, already-in-channel: Public classes
Class, assume-identity: Public classes
Class, backfill: Public classes
Class, bad-content-type: Public classes
Class, bad-ip-format: Public classes
Class, bad-name: Public classes
Class, ban: Public classes
Class, blacklist: Public classes
Class, block: Public classes
Class, blocked: Public classes
Class, bridge: Public classes
Class, capabilities: Public classes
Class, channel: Public classes
Class, channel-info: Public classes
Class, channel-update: Public classes
Class, channelname-taken: Public classes
Class, channels: Public classes
Class, clock-skewed: Public classes
Class, connect: Public classes
Class, connection: Public classes
Class, connection-unstable: Public classes
Class, create: Public classes
Class, data: Public classes
Class, deny: Public classes
Class, destroy: Public classes
Class, disconnect: Public classes
Class, edit: Public classes
Class, emote: Public classes
Class, emote-list-full: Public classes
Class, emotes: Public classes
Class, failure: Public classes
Class, grant: Public classes
Class, incompatible-version: Public classes
Class, insufficient-permissions: Public classes
Class, invalid-password: Public classes
Class, invalid-permissions: Public classes
Class, invalid-update: Public classes
Class, ip-ban: Public classes
Class, ip-blacklist: Public classes
Class, ip-unban: Public classes
Class, join: Public classes
Class, kick: Public classes
Class, kill: Public classes
Class, last-read: Public classes
Class, leave: Public classes
Class, list-shared-identities: Public classes
Class, malformed-channel-info: Public classes
Class, malformed-update: Public classes
Class, malformed-user-info: Public classes
Class, message: Public classes
Class, named-object: Public classes
Class, no-such-channel: Public classes
Class, no-such-channel-info: Public classes
Class, no-such-parent-channel: Public classes
Class, no-such-profile: Public classes
Class, no-such-user: Public classes
Class, no-such-user-info: Public classes
Class, not-in-channel: Public classes
Class, object: Public classes
Class, pause: Public classes
Class, permissions: Public classes
Class, ping: Public classes
Class, pong: Public classes
Class, profile: Public classes
Class, pull: Public classes
Class, quiet: Public classes
Class, quieted: Public classes
Class, react: Public classes
Class, register: Public classes
Class, registration-rejected: Public classes
Class, search: Public classes
Class, server-info: Public classes
Class, server-object: Public classes
Class, set-channel-info: Public classes
Class, set-user-info: Public classes
Class, share-identity: Public classes
Class, target-update: Public classes
Class, text-update: Public classes
Class, too-many-channels: Public classes
Class, too-many-connections: Public classes
Class, too-many-updates: Public classes
Class, typed-direct-slot-definition: Private classes
Class, typed-effective-slot-definition: Private classes
Class, typed-object: Private classes
Class, typed-slot: Private classes
Class, typed-slot-class: Private classes
Class, typing: Public classes
Class, unban: Public classes
Class, unblock: Public classes
Class, unquiet: Public classes
Class, unshare-identity: Public classes
Class, update: Public classes
Class, update-failure: Public classes
Class, update-too-long: Public classes
Class, user: Public classes
Class, user-info: Public classes
Class, username-mismatch: Public classes
Class, username-taken: Public classes
Class, users: Public classes
clock-skewed: Public classes
Condition, incompatible-value-type-for-slot: Public conditions
Condition, incomplete-token: Public conditions
Condition, malformed-wire-object: Public conditions
Condition, missing-clock: Public conditions
Condition, missing-id: Public conditions
Condition, missing-update-argument: Public conditions
Condition, null-in-symbol-designator: Public conditions
Condition, printer-condition: Public conditions
Condition, protocol-condition: Public conditions
Condition, read-limit-hit: Public conditions
Condition, reader-condition: Public conditions
Condition, stray-null-found: Public conditions
Condition, unknown-symbol: Public conditions
Condition, unknown-wire-object: Public conditions
Condition, unprintable-object: Public conditions
Condition, wire-condition: Public conditions
conditions.lisp: The lichat-protocol/conditions․lisp file
connect: Public classes
connection: Public classes
connection-unstable: Public classes
create: Public classes

D
data: Public classes
deny: Public classes
destroy: Public classes
disconnect: Public classes
documentation.lisp: The lichat-protocol/documentation․lisp file

E
edit: Public classes
emote: Public classes
emote-list-full: Public classes
emotes: Public classes

F
failure: Public classes
File, base-protocols.lisp: The lichat-protocol/base-protocols․lisp file
File, conditions.lisp: The lichat-protocol/conditions․lisp file
File, documentation.lisp: The lichat-protocol/documentation․lisp file
File, lichat-protocol.asd: The lichat-protocol/lichat-protocol․asd file
File, package.lisp: The lichat-protocol/package․lisp file
File, printer.lisp: The lichat-protocol/printer․lisp file
File, protocol.lisp: The lichat-protocol/protocol․lisp file
File, reader.lisp: The lichat-protocol/reader․lisp file
File, typed-slot-class.lisp: The lichat-protocol/typed-slot-class․lisp file
File, wire.lisp: The lichat-protocol/wire․lisp file

G
grant: Public classes

I
id: Public types
incompatible-value-type-for-slot: Public conditions
incompatible-version: Public classes
incomplete-token: Public conditions
insufficient-permissions: Public classes
invalid-password: Public classes
invalid-permissions: Public classes
invalid-update: Public classes
ip-ban: Public classes
ip-blacklist: Public classes
ip-unban: Public classes

J
join: Public classes

K
kick: Public classes
kill: Public classes

L
last-read: Public classes
leave: Public classes
lichat-protocol: The lichat-protocol system
lichat-protocol: The lichat-protocol package
lichat-protocol.asd: The lichat-protocol/lichat-protocol․asd file
list-shared-identities: Public classes

M
malformed-channel-info: Public classes
malformed-update: Public classes
malformed-user-info: Public classes
malformed-wire-object: Public conditions
message: Public classes
missing-clock: Public conditions
missing-id: Public conditions
missing-update-argument: Public conditions

N
named-object: Public classes
no-such-channel: Public classes
no-such-channel-info: Public classes
no-such-parent-channel: Public classes
no-such-profile: Public classes
no-such-user: Public classes
no-such-user-info: Public classes
not-in-channel: Public classes
null-in-symbol-designator: Public conditions

O
object: Public classes
org.shirakumo.lichat.protocol.packages: The org․shirakumo․lichat․protocol․packages package

P
Package, lichat-protocol: The lichat-protocol package
Package, org.shirakumo.lichat.protocol.packages: The org․shirakumo․lichat․protocol․packages package
package.lisp: The lichat-protocol/package․lisp file
password: Public types
pause: Public classes
permissions: Public classes
ping: Public classes
pong: Public classes
printer-condition: Public conditions
printer.lisp: The lichat-protocol/printer․lisp file
profile: Public classes
protocol-condition: Public conditions
protocol.lisp: The lichat-protocol/protocol․lisp file
pull: Public classes

Q
quiet: Public classes
quieted: Public classes

R
react: Public classes
read-limit-hit: Public conditions
reader-condition: Public conditions
reader.lisp: The lichat-protocol/reader․lisp file
register: Public classes
registration-rejected: Public classes

S
search: Public classes
server-info: Public classes
server-object: Public classes
set-channel-info: Public classes
set-user-info: Public classes
share-identity: Public classes
stray-null-found: Public conditions
System, lichat-protocol: The lichat-protocol system

T
target-update: Public classes
text-update: Public classes
too-many-channels: Public classes
too-many-connections: Public classes
too-many-updates: Public classes
Type, channelname: Public types
Type, id: Public types
Type, password: Public types
Type, username: Public types
Type, wireable: Public types
typed-direct-slot-definition: Private classes
typed-effective-slot-definition: Private classes
typed-object: Private classes
typed-slot: Private classes
typed-slot-class: Private classes
typed-slot-class.lisp: The lichat-protocol/typed-slot-class․lisp file
typing: Public classes

U
unban: Public classes
unblock: Public classes
unknown-symbol: Public conditions
unknown-wire-object: Public conditions
unprintable-object: Public conditions
unquiet: Public classes
unshare-identity: Public classes
update: Public classes
update-failure: Public classes
update-too-long: Public classes
user: Public classes
user-info: Public classes
username: Public types
username-mismatch: Public classes
username-taken: Public classes
users: Public classes

W
wire-condition: Public conditions
wire.lisp: The lichat-protocol/wire․lisp file
wireable: Public types