The birch Reference Manual

Table of Contents

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

The birch Reference Manual

This is the birch Reference Manual, version 1.0.1, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 10:49:04 2018 GMT+0.


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

1 Introduction

Birch

Build Status Quicklisp

Birch is a simple Common Lisp IRC client library. It makes use of CLOS for event handling.

Dependencies

Birch is built in Common Lisp on SBCL. It depends on:

The tests also use Prove (MIT).

Installation

Birch can be loaded with Quicklisp:

(ql:quickload :birch)

Usage

The first step is to create a subclass of CONNECTION:

(defclass my-connection (connection) ())

To connect to an IRC network you create an instance of your connection class. You then pass that instance to CONNECT to actually connect to the network.

(defvar *connection* (make-instance 'my-connection
                                    :server-host "irc.example.com"
                                    :nick "mybot"))

The only required initargs for the default connection class are :SERVER-HOST and :NICK. The others of interest are:

The accessors for all of those are the name of the slot (the initarg without the ':').

Event handling in Birch is done by defining methods on HANDLE-EVENT.

(defgeneric handle-event (connection event)
  (:documentation "
Will be called after an IRC message has successfully been parsed and turned
into an event. Most IRC messages don't result in events, should you want to
handle them you can define a method on HANDLE-MESSAGE instead.")
  (:method-combination event))

For example, to do something when a PRIVMSG is received, you define a method specializing the first argument on your connection class and the second on the PRIVMSG-EVENT class:

(defmethod handle-event ((connection my-connection) (event privmsg-event))
  (format t "Message received on ~A: ~A" (channel event) (message event)))

A list of all the events currently included in Birch is below.

Sending commands to a connection can be done in two ways. You can use the generic function /RAW, which is basically a glorified FORMAT, or you can use one of the built-in functions for sending often-used commands. They're all generic functions and can thus easily be extended.

RAW can, for example, be called like this:

(/raw connection "JOIN ~A" channel)

But you should probably just use the function /JOIN in this case.

All currently implemented commands are listed below.

To start handling messages you should call PROCESS-MESSAGE-LOOP, which will block until the connection to the server is closed. Even then, if /QUIT wasn't called (so the ACTIVEP slot on the connection wasn't set to NIL) PROCESS-MESSAGE-LOOP will try to reconnect. You'll likely want to run this in a new thread.

Alternatively, you can call PROCESS-MESSAGE yourself.

We have to go deeper

If you want to handle a message from the server for which there is no event you can instead define a method on HANDLE-MESSAGE.

(defgeneric handle-message (connection prefix command params)
  (:documentation "
Called when a raw message is returned. CONNECTION is the connection object of
the connection the message was received on. PREFIX is a list of (NICK USER
HOST) COMMAND is a keyword, such as :PRIVMSG or :RPL_WELCOME PARAMS is a list
of parameters")
  (:method-combination event))

For example, to do something when RPL_WELCOME is received, you could define a method like so:

(defmethod handle-message ((connection my-connection)
                           prefix
                           (command (eql :RPL_WELCOME))
                           params)
  (format t "Received RPL_WELCOME, we can now do stuff"))

The COMMAND argument will either be the keyword-ized name of the command as defined in RFC2812, like :PRIVMSG, or, in the case of numeric replies, the name as found here.

If you want to handle something as an event you can define a method on HANDLE-MESSAGE that calls HANDLE-EVENT with a newly initialized EVENT object. The macro DEFINE-EVENT-DISPATCHER can be of great help with that.

(defmacro define-event-dispatcher (command class &optional positional-initargs)
  "Defines a method on HANDLE-MESSAGE to handle messages of which the command
is COMMAND. This new method will call HANDLE-EVENT with a new instance of type
CLASS.

POSITIONAL-INITARGS should be a list of initargs to pass to MAKE-INSTANCE,
where the position of the keyword determines the IRC command parameter that
will be used as a value. A NIL will cause an IRC parameter to be ignored.

For example, when POSITIONAL-INITARGS is (:CHANNEL), the first parameter of the
IRC message will be passed as the initial value of :CHANNEL. If
POSITIONAL-INITARGS is (:CHANNEL :TARGET), the first parameter will be passed
as the initial value of :CHANNEL, and the second parameter will be passed as
the initial value of :TARGET.

Instead of a keyword, an element of POSITIONAL-INITARGS can also be a list of
the form (:KEYWORD FUNCTION), which means the value passed as the initarg will
be the result of calling FUNCTION with two arguments: the connection object and
the IRC parameter.

Any remaining arguments will be joined together (separated by spaces) and
passed as the initial value of :MESSAGE."
  ...)

For example, kick events are implemented like this:

(defclass kick-event (channel-event)
  ((target :initarg :target
           :initform NIL
           :accessor target)))

(define-event-dispatcher :KICK 'kick-event ((:channel #'make-channel)
                                            (:target #'make-user)))

Events

Commands

Users and Channels

Birch keeps track of users and channels for you. The default events call MAKE-USER and MAKE-CHANNEL on the appropriate parameters, turning them into USER and CHANNEL objects with appropriate slots. To get a list of all users in a channel, call USERS on the channel object. Similarly, to get all channels a user is in (that we know of), call CHANNELS on a user object.

It is possible to change the class instantiated by MAKE-USER and MAKE-CHANNEL, by passing the desired class name to the :user-class or :channel-class initargs when creating the instance. This setting can also be changed after the fact with the accessors USER-CLASS and CHANNEL-CLASS.

It is worth noting that CONNECTION is itself a subclass of USER and will appear in channel user lists.

CTCP

Birch provides two utility functions for working with CTCP messages.

Notes

License

Copyright (c) 2015 Joram Schrijver

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

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

2 Systems

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


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

2.1 birch

Author

Joram Schrijver <i@joram.io>

License

MIT

Description

A simple Common Lisp IRC client library

Version

1.0.1

Dependencies
Source

birch.asd (file)

Components

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

3 Files

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


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

3.1 Lisp


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

3.1.1 birch.asd

Location

/home/quickref/quicklisp/dists/quicklisp/software/birch-20160318-git/birch.asd

Systems

birch (system)


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

3.1.2 birch/replies.lisp

Parent

birch (system)

Location

replies.lisp

Packages

birch/replies

Exported Definitions

reply->keyword (function)

Internal Definitions

*reply-codes* (special variable)


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

3.1.3 birch/parse.lisp

Parent

birch (system)

Location

parse.lisp

Packages

birch/parse

Exported Definitions

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

3.1.4 birch/ctcp.lisp

Parent

birch (system)

Location

ctcp.lisp

Packages

birch/ctcp

Exported Definitions

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

3.1.5 birch/connection.lisp

Parent

birch (system)

Location

connection.lisp

Packages

birch/connection

Exported Definitions
Internal Definitions

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

3.1.6 birch/commands.lisp

Dependency

connection.lisp (file)

Parent

birch (system)

Location

commands.lisp

Packages

birch/commands

Exported Definitions

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

3.1.7 birch/events.lisp

Dependencies
Parent

birch (system)

Location

events.lisp

Packages

birch/events

Exported Definitions

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

3.1.8 birch/init.lisp

Dependencies
Parent

birch (system)

Location

init.lisp

Packages

birch/init

Exported Definitions

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

3.1.9 birch/package.lisp

Dependencies
Parent

birch (system)

Location

package.lisp

Packages

birch


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

4 Packages

Packages are listed by definition order.


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

4.1 birch/replies

Source

replies.lisp (file)

Use List

common-lisp

Used By List
Exported Definitions

reply->keyword (function)

Internal Definitions

*reply-codes* (special variable)


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

4.2 birch/parse

Source

parse.lisp (file)

Use List
Used By List
Exported Definitions

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

4.3 birch/ctcp

Source

ctcp.lisp (file)

Use List

common-lisp

Used By List

birch

Exported Definitions

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

4.4 birch/connection

Source

connection.lisp (file)

Use List

common-lisp

Used By List
Exported Definitions
Internal Definitions

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

4.5 birch/commands

Source

commands.lisp (file)

Use List

common-lisp

Used By List

birch

Exported Definitions

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

4.6 birch/events

Source

events.lisp (file)

Use List

common-lisp

Used By List

birch

Exported Definitions

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

4.7 birch/init

Source

init.lisp (file)

Use List
Used By List

birch

Exported Definitions

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

4.8 birch

Source

package.lisp (file)

Use List

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

5 Definitions

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


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

5.1 Exported definitions


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

5.1.1 Macros

Macro: define-event-dispatcher COMMAND CLASS &optional POSITIONAL-INITARGS

Defines a method on HANDLE-MESSAGE to handle messages of which the command is COMMAND. This new method will call HANDLE-EVENT with a new instance of type CLASS.

POSITIONAL-INITARGS should be a list of initargs to pass to MAKE-INSTANCE, where the position of the keyword determines the IRC command parameter that will be used as a value. A NIL will cause an IRC parameter to be ignored.

For example, when POSITIONAL-INITARGS is (:CHANNEL), the first parameter of the IRC message will be passed as the initial value of :CHANNEL. If POSITIONAL-INITARGS is (:CHANNEL :TARGET), the first parameter will be passed as the initial value of :CHANNEL, and the second parameter will be passed as the initial value of :TARGET.

Instead of a keyword, an element of POSITIONAL-INITARGS can also be a list of the form (:KEYWORD FUNCTION), which means the value passed as the initarg will be the result of calling FUNCTION with two arguments: the connection object and the IRC parameter.

Any remaining arguments will be joined together (separated by spaces) and passed as the initial value of :MESSAGE.

Package

birch/events

Source

events.lisp (file)


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

5.1.2 Functions

Function: add-user USER CHANNEL
Package

birch/connection

Source

connection.lisp (file)

Function: connect CONNECTION

Connects to the IRC network denoted by CONNECTION. Opens a connection to the server and performs initial registration.

Package

birch/init

Source

init.lisp (file)

Function: connect-socket CONNECTION
Package

birch/connection

Source

connection.lisp (file)

Function: ctcp-message-p STRING

Returns whether or not STRING is a valid CTCP message, by checking if it starts and ends with a 0x01 character.

Package

birch/ctcp

Source

ctcp.lisp (file)

Function: make-channel CONNECTION NAME

Turn a channel name into a CHANNEL object. For unknown channels this will result in a new CHANNEL object, for ones that are already known the existing one will be returned. NIL is returned if NAME is not a valid channel name.

Package

birch/connection

Source

connection.lisp (file)

Function: make-ctcp-message STRING

Returns a string with a 0x01 character added to the start and end of STRING, turning it into a CTCP message. The resulting string can then be sent to a connection using PRIVMSG or NOTICE

Package

birch/ctcp

Source

ctcp.lisp (file)

Function: make-user CONNECTION NICK/PREFIX

Turn a user’s nick or prefix into a USER object. For unknown users this will result in a new USER object, for ones that are already known the existing one will be returned. If the user is already known and NICK/PREFIX is a prefix with both a USER and HOST component, those slots of the user object will be updated.

Package

birch/connection

Source

connection.lisp (file)

Function: parse-message MESSAGE

Parses MESSAGE into a couple of parts:
- PREFIX as a list consisting of SOURCE, USER and HOST
- COMMAND as a keyword, numerics are converted to their keyword equivalent - PARAMS as a list of strings
The trailing argument, if available, will be the last item in PARAMS

Package

birch/parse

Source

parse.lisp (file)

Function: parse-prefix PREFIX

Parses a prefix, assumed to still have the ’:’ at the front. Returns 3 values:
- NICK (or server name)
- USER
- HOST
Note that this function also succeeds when a user is supplied but not a host, even though that isn’t valid according to RFC2812.

Package

birch/parse

Source

parse.lisp (file)

Function: process-message CONNECTION

Reads a message from CONNECTION and calls HANDLE-MESSAGE on it. Should probably be called in a loop. See PROCESS-MESSAGE-LOOP.

Package

birch/init

Source

init.lisp (file)

Function: process-message-loop CONNECTION

Continuously calls READ-MESSAGE until the connection is closed.

Package

birch/init

Source

init.lisp (file)

Function: read-message CONNECTION
Package

birch/init

Source

init.lisp (file)

Function: remove-user USER &optional CHANNEL
Package

birch/connection

Source

connection.lisp (file)

Function: rename-user CONNECTION OLD-NICK NEW-NICK
Package

birch/connection

Source

connection.lisp (file)

Function: reply->keyword REPLY-CODE

Turns a string representing a reply into an appropriate keyword. Numeric replies are converted to keywords based on their names as listed on https://www.alien.net.au/irc/irc2numerics.html Other replies are simply turned into keywords an returned.

Package

birch/replies

Source

replies.lisp (file)


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

5.1.3 Generic functions

Generic Function: /invite CONNECTION NICK CHANNEL

Sends an INVITE message to CONNECTION, trying to invite NICK to CHANNEL

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /invite (CONNECTION connection) (USER string) (CHANNEL string)
Method: /invite (CONNECTION connection) (USER user) (CHANNEL channel)
Method: /invite (CONNECTION connection) (USER user) (CHANNEL string)
Method: /invite (CONNECTION connection) (USER string) (CHANNEL channel)
Generic Function: /join CONNECTION CHANNEL &optional KEY

Sends a JOIN message to CONNECTION, to join a channel.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /join (CONNECTION connection) (CHANNEL string) &optional KEY
Method: /join (CONNECTION connection) (CHANNEL channel) &optional KEY
Generic Function: /kick CONNECTION CHANNEL NICK &optional MESSAGE

Sends a KICK message to CONNECTION, trying to kick NICK from CHANNEL

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /kick (CONNECTION connection) (CHANNEL string) (USER string) &optional MESSAGE
Method: /kick (CONNECTION connection) (CHANNEL channel) (USER user) &optional MESSAGE
Method: /kick (CONNECTION connection) (CHANNEL string) (USER user) &optional MESSAGE
Method: /kick (CONNECTION connection) (CHANNEL channel) (USER string) &optional MESSAGE
Generic Function: /nick CONNECTION NICK

Sends a NICK message to CONNECTION, to change nicknames.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /nick (CONNECTION connection) (NICK string)
Generic Function: /notice CONNECTION TARGET MESSAGE

Sends a NOTICE message to CONNECTION. TARGET should either be a channel name or the name of a user connected to the network.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /notice (CONNECTION connection) (TARGET string) (MESSAGE string)
Method: /notice (CONNECTION connection) (TARGET channel) (MESSAGE string)
Method: /notice (CONNECTION connection) (TARGET user) (MESSAGE string)
Generic Function: /part CONNECTION CHANNEL &optional MESSAGE

Sends a PART message to CONNECTION, to leave a channel.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /part (CONNECTION connection) (CHANNEL string) &optional MESSAGE
Method: /part (CONNECTION connection) (CHANNEL channel) &optional MESSAGE
Generic Function: /pass CONNECTION PASS

Sends a PASS message to CONNECTION, for the purpose of registration.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /pass (CONNECTION connection) PASS
Generic Function: /pong CONNECTION SERVER-1 &optional SERVER-2

Sends a PONG message to CONNECTION, usually in reply to a PING by the server

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /pong (CONNECTION connection) (SERVER-1 string) &optional SERVER-2
Generic Function: /privmsg CONNECTION CHANNEL MESSAGE

Sends a PRIVMSG message to CONNECTION. CHANNEL should either be a channel name or the name of a user connected to the network.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /privmsg (CONNECTION connection) (CHANNEL string) (MESSAGE string)
Method: /privmsg (CONNECTION connection) (CHANNEL channel) (MESSAGE string)
Method: /privmsg (CONNECTION connection) (USER user) (MESSAGE string)
Generic Function: /quit CONNECTION &optional MESSAGE

Sends a QUIT message to CONNECTION and sets (ACTIVEP CONNECTION) to T, which will stop READ-MESSAGE-LOOP from trying to reconnect

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /quit (CONNECTION connection) &optional MESSAGE
Generic Function: /raw CONNECTION MESSAGE &rest FORMAT-ARGUMENTS

Sends MESSAGE to the stream associated with CONNECTION, after applying FORMAT to message with FORMAT-ARGUMENTS.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /raw (CONNECTION connection) (MESSAGE string) &rest FORMAT-ARGUMENTS
Generic Function: /user CONNECTION USER MODE REAL-NAME

Sends a USER message to CONNECTION, for the purpose of registration. Note that the IRC USER command also takes another parameter between MODE and REAL-NAME, but this parameter is unused.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /user (CONNECTION connection) (USER string) (MODE integer) (REAL-NAME string)
Generic Function: /who CONNECTION TARGET &optional OPERATORS-ONLY-P

Sends a WHO message to CONNECTION about TARGET, optionally requesting operators only. TARGET can be either a user, channel, or string representing the desired mask.

Package

birch/commands

Source

commands.lisp (file)

Methods
Method: /who (CONNECTION connection) (TARGET string) &optional OPERATORS-ONLY-P
Method: /who (CONNECTION connection) (TARGET user) &optional OPERATORS-ONLY-P
Method: /who (CONNECTION connection) (TARGET channel) &optional OPERATORS-ONLY-P
Generic Function: activep OBJECT
Generic Function: (setf activep) NEW-VALUE OBJECT
Package

birch/connection

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

Whether or not the connection to the server is supposed to be open. In case of connection issues READ-MESSAGE-LOOP uses this to determine whether or not to reconnect

Source

connection.lisp (file)

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

birch/connection

Methods
Method: channel (CHANNEL-EVENT channel-event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf channel) NEW-VALUE (CHANNEL-EVENT channel-event)

automatically generated writer method

Source

events.lisp (file)

Generic Function: channel-class OBJECT
Generic Function: (setf channel-class) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: channel-class (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf channel-class) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

connection.lisp (file)

Generic Function: channel-type OBJECT
Generic Function: (setf channel-type) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: channel-type (CHANNEL channel)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf channel-type) NEW-VALUE (CHANNEL channel)

automatically generated writer method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: channels (USER user)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf channels) NEW-VALUE (USER user)

automatically generated writer method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: connection (CHANNEL channel)

automatically generated reader method

Source

connection.lisp (file)

Method: connection (USER user)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf connection) NEW-VALUE (USER user)

automatically generated writer method

Source

connection.lisp (file)

Generic Function: handle-event CONNECTION EVENT

Will be called after an IRC message has successfully been parsed and turned into an event. Most IRC messages don’t result in events, should you want to handle them you can define a method on HANDLE-MESSAGE instead.

Package

birch/events

Source

events.lisp (file)

Method Combination

event (long method combination)

Methods
Method: handle-event (CONNECTION connection) (EVENT kick-event)

Remove a user from a channel they’re kicked from.

Method: handle-event (CONNECTION connection) (EVENT quit-event)

Remove a user from all channels they’re in.

Method: handle-event (CONNECTION connection) (EVENT part-event)

Remove a user from a channel they’re leaving.

Method: handle-event (CONNECTION connection) (EVENT join-event)

Add a user to a channel.

Method: handle-event (CONNECTION connection) (EVENT topic-event)

Change the topic associated with a channel.

Method: handle-event (CONNECTION connection) (EVENT nick-event)

Change the nickname associated with a user, or of the connection if the old nickname is the nickname of the connection.

Generic Function: handle-message CONNECTION PREFIX COMMAND PARAMS

Called when a raw message is returned. CONNECTION is the connection object of the connection the message was received on. PREFIX is a list of (NICK USER HOST) COMMAND is a keyword, such as :PRIVMSG or :RPL_WELCOME PARAMS is a list of parameters

Package

birch/events

Source

events.lisp (file)

Method Combination

event (long method combination)

Methods
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql rpl_topic)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql topic)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql nick)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql kick)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql quit)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql part)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql join)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql notice)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql privmsg)) PARAMS
Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql rpl_whoreply)) PARAMS

Handles an RPL_WHOREPLY message and updates the users and channels associated.

Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql rpl_namreply)) PARAMS

Handles an RPL_NAMREPLY message and updates the channel.

Method: handle-message (CONNECTION connection) PREFIX (COMMAND (eql ping)) PARAMS

Responds to a PING message by the server by sending a PONG message in return

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

birch/connection

Methods
Method: host (USER user)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf host) NEW-VALUE (USER user)

automatically generated writer method

Source

connection.lisp (file)

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

birch/events

Methods
Method: message (EVENT event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf message) NEW-VALUE (EVENT event)

automatically generated writer method

Source

events.lisp (file)

Generic Function: name OBJECT
Package

birch/connection

Methods
Method: name (CHANNEL channel)

automatically generated reader method

Source

connection.lisp (file)

Generic Function: new-nick OBJECT
Generic Function: (setf new-nick) NEW-VALUE OBJECT
Package

birch/events

Methods
Method: new-nick (NICK-EVENT nick-event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf new-nick) NEW-VALUE (NICK-EVENT nick-event)

automatically generated writer method

Source

events.lisp (file)

Generic Function: new-topic OBJECT
Generic Function: (setf new-topic) NEW-VALUE OBJECT
Package

birch/events

Methods
Method: new-topic (TOPIC-EVENT topic-event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf new-topic) NEW-VALUE (TOPIC-EVENT topic-event)

automatically generated writer method

Source

events.lisp (file)

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

birch/connection

Methods
Method: nick (USER user)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf nick) NEW-VALUE (USER user)

automatically generated writer method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: pass (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf pass) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

connection.lisp (file)

Generic Function: real-name OBJECT
Generic Function: (setf real-name) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: real-name (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf real-name) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

connection.lisp (file)

Generic Function: server-host OBJECT
Package

birch/connection

Methods
Method: server-host (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: server-port (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

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

automatically generated writer method

Source

connection.lisp (file)

Generic Function: socket-stream OBJECT
Generic Function: (setf socket-stream) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: socket-stream (CONNECTION connection)
Method: (setf socket-stream) NEW-VALUE (CONNECTION connection)

The stream associated with the current socket connection to the server.

Source

connection.lisp (file)

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

birch/events

Methods
Method: target (KICK-EVENT kick-event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf target) NEW-VALUE (KICK-EVENT kick-event)

automatically generated writer method

Source

events.lisp (file)

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

birch/connection

Methods
Method: topic (CHANNEL channel)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf topic) NEW-VALUE (CHANNEL channel)

automatically generated writer method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: user (EVENT event)

automatically generated reader method

Source

events.lisp (file)

Method: (setf user) NEW-VALUE (EVENT event)

automatically generated writer method

Source

events.lisp (file)

Method: user (USER user)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf user) NEW-VALUE (USER user)

automatically generated writer method

Source

connection.lisp (file)

Generic Function: user-class OBJECT
Generic Function: (setf user-class) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: user-class (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf user-class) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

connection.lisp (file)

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

birch/connection

Methods
Method: users (CONNECTION connection)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf users) NEW-VALUE (CONNECTION connection)

automatically generated writer method

Source

connection.lisp (file)

Method: users (CHANNEL channel)

automatically generated reader method

Source

connection.lisp (file)

Method: (setf users) NEW-VALUE (CHANNEL channel)

automatically generated writer method

Source

connection.lisp (file)


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

5.1.4 Method combinations

Long Method Combination: event ()

The EVENT method combination is used by HANDLE-MESSAGE and HANDLE-EVENT to gracefully handle the absence of message or event handlers. In standard method combination, when only a non-primary method exists, an error is signalled. This makes it very hard to handle errors through an :AROUND method, which would be the most elegant solution to the problem. This method combination is just like the standard one, except primary methods are not required.

Package

birch/events

Source

events.lisp (file)

Users

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

5.1.5 Classes

Class: channel ()
Package

birch/connection

Source

connection.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: connection
Initargs

:connection

Readers

connection (generic function)

Slot: name
Initargs

:name

Readers

name (generic function)

Slot: users
Initargs

:users

Readers

users (generic function)

Writers

(setf users) (generic function)

Slot: topic
Initargs

:topic

Initform

""

Readers

topic (generic function)

Writers

(setf topic) (generic function)

Slot: channel-type
Type

birch/connection:channel-type

Initargs

:channel-type

Readers

channel-type (generic function)

Writers

(setf channel-type) (generic function)

Class: channel-event ()

A CHANNEL-EVENT is an event that happens on a certain channel.

Package

birch/events

Source

events.lisp (file)

Direct superclasses

event (class)

Direct subclasses
Direct methods
  • channel (method)
  • channel (method)
Direct slots
Slot: channel
Initargs

:channel

Readers

channel (generic function)

Writers

(setf channel) (generic function)

Class: connection ()
Package

birch/connection

Source

connection.lisp (file)

Direct superclasses

user (class)

Direct methods
Direct slots
Slot: %socket

An instance of USOCKET:STREAM-USOCKET, the current socket connection to the server.

Initargs

:socket

Readers

%socket (generic function)

Writers

(setf %socket) (generic function)

Slot: socket-stream

The stream associated with the current socket connection to the server.

Initargs

:stream

Readers

socket-stream (generic function)

Writers

(setf socket-stream) (generic function)

Slot: activep

Whether or not the connection to the server is supposed to be open. In case of connection issues READ-MESSAGE-LOOP uses this to determine whether or not to reconnect

Initargs

:activep

Readers

activep (generic function)

Writers

(setf activep) (generic function)

Slot: server-host
Initargs

:server-host

Initform

(error "host required, not specified")

Readers

server-host (generic function)

Slot: server-port
Initargs

:server-port

Initform

6667

Readers

server-port (generic function)

Writers

(setf server-port) (generic function)

Slot: pass
Initargs

:pass

Readers

pass (generic function)

Writers

(setf pass) (generic function)

Slot: real-name
Initargs

:real-name

Initform

"birch irc library"

Readers

real-name (generic function)

Writers

(setf real-name) (generic function)

Slot: users
Initargs

:users

Readers

users (generic function)

Writers

(setf users) (generic function)

Slot: user-class
Initargs

:user-class

Initform

(quote birch/connection:user)

Readers

user-class (generic function)

Writers

(setf user-class) (generic function)

Slot: channel-class
Initargs

:channel-class

Initform

(quote birch/connection:channel)

Readers

channel-class (generic function)

Writers

(setf channel-class) (generic function)

Direct Default Initargs
InitargValue
:nick(error "nick required, not specified")
Class: event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
  • message (method)
  • message (method)
  • user (method)
  • user (method)
Direct slots
Slot: user
Initargs

:user

Readers

user (generic function)

Writers

(setf user) (generic function)

Slot: message
Initargs

:message

Readers

message (generic function)

Writers

(setf message) (generic function)

Class: join-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Direct methods

handle-event (method)

Class: kick-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Direct methods
Direct slots
Slot: target
Initargs

:target

Readers

target (generic function)

Writers

(setf target) (generic function)

Class: nick-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

event (class)

Direct methods
Direct slots
Slot: new-nick
Initargs

:new-nick

Readers

new-nick (generic function)

Writers

(setf new-nick) (generic function)

Class: notice-event ()

Event dispatched when a NOTICE message is received from the server. Note that when the CHANNEL slot is STRING= to the current nickname this notice won’t have been sent to a channel but directly to you.

Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Class: part-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Direct methods

handle-event (method)

Class: privmsg-event ()

Event dispatched when a PRIVMSG message is received from the server. Note that when the CHANNEL slot is STRING= to the current nickname this privmsg won’t have been sent to a channel but directly to you.

Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Class: quit-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

event (class)

Direct methods

handle-event (method)

Class: topic-event ()
Package

birch/events

Source

events.lisp (file)

Direct superclasses

channel-event (class)

Direct methods
Direct slots
Slot: new-topic
Initargs

:new-topic

Readers

new-topic (generic function)

Writers

(setf new-topic) (generic function)

Class: user ()
Package

birch/connection

Source

connection.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

connection (class)

Direct methods
Direct slots
Slot: connection
Initargs

:connection

Readers

connection (generic function)

Writers

(setf connection) (generic function)

Slot: nick
Initargs

:nick

Readers

nick (generic function)

Writers

(setf nick) (generic function)

Slot: user
Initargs

:user

Readers

user (generic function)

Writers

(setf user) (generic function)

Slot: host
Initargs

:host

Readers

host (generic function)

Writers

(setf host) (generic function)

Slot: channels
Initargs

:channels

Readers

channels (generic function)

Writers

(setf channels) (generic function)


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

5.1.6 Types

Type: channel-type ()
Package

birch/connection

Source

connection.lisp (file)


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

5.2 Internal definitions


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

5.2.1 Special variables

Special Variable: *reply-codes*

Hash-table filled with all numeric IRC reply codes, taken from https://www.alien.net.au/irc/irc2numerics.html

Package

birch/replies

Source

replies.lisp (file)


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

5.2.2 Functions

Function: get-channel CONNECTION NAME
Package

birch/connection

Source

connection.lisp (file)

Function: get-user CONNECTION NICK &optional USER HOST
Package

birch/connection

Source

connection.lisp (file)

Function: valid-channel-name-p NAME
Package

birch/connection

Source

connection.lisp (file)


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

5.2.3 Generic functions

Generic Function: %socket OBJECT
Generic Function: (setf %socket) NEW-VALUE OBJECT
Package

birch/connection

Methods
Method: %socket (CONNECTION connection)
Method: (setf %socket) NEW-VALUE (CONNECTION connection)

An instance of USOCKET:STREAM-USOCKET, the current socket connection to the server.

Source

connection.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   B   F   L  
Index Entry  Section

B
birch.asd: The birch<dot>asd file
birch/commands.lisp: The birch/commands<dot>lisp file
birch/connection.lisp: The birch/connection<dot>lisp file
birch/ctcp.lisp: The birch/ctcp<dot>lisp file
birch/events.lisp: The birch/events<dot>lisp file
birch/init.lisp: The birch/init<dot>lisp file
birch/package.lisp: The birch/package<dot>lisp file
birch/parse.lisp: The birch/parse<dot>lisp file
birch/replies.lisp: The birch/replies<dot>lisp file

F
File, Lisp, birch.asd: The birch<dot>asd file
File, Lisp, birch/commands.lisp: The birch/commands<dot>lisp file
File, Lisp, birch/connection.lisp: The birch/connection<dot>lisp file
File, Lisp, birch/ctcp.lisp: The birch/ctcp<dot>lisp file
File, Lisp, birch/events.lisp: The birch/events<dot>lisp file
File, Lisp, birch/init.lisp: The birch/init<dot>lisp file
File, Lisp, birch/package.lisp: The birch/package<dot>lisp file
File, Lisp, birch/parse.lisp: The birch/parse<dot>lisp file
File, Lisp, birch/replies.lisp: The birch/replies<dot>lisp file

L
Lisp File, birch.asd: The birch<dot>asd file
Lisp File, birch/commands.lisp: The birch/commands<dot>lisp file
Lisp File, birch/connection.lisp: The birch/connection<dot>lisp file
Lisp File, birch/ctcp.lisp: The birch/ctcp<dot>lisp file
Lisp File, birch/events.lisp: The birch/events<dot>lisp file
Lisp File, birch/init.lisp: The birch/init<dot>lisp file
Lisp File, birch/package.lisp: The birch/package<dot>lisp file
Lisp File, birch/parse.lisp: The birch/parse<dot>lisp file
Lisp File, birch/replies.lisp: The birch/replies<dot>lisp file

Jump to:   B   F   L  

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

A.2 Functions

Jump to:   %   (   /  
A   C   D   F   G   H   M   N   P   R   S   T   U   V  
Index Entry  Section

%
%socket: Internal generic functions
%socket: Internal generic functions

(
(setf %socket): Internal generic functions
(setf %socket): Internal generic functions
(setf activep): Exported generic functions
(setf activep): Exported generic functions
(setf channel): Exported generic functions
(setf channel): Exported generic functions
(setf channel-class): Exported generic functions
(setf channel-class): Exported generic functions
(setf channel-type): Exported generic functions
(setf channel-type): Exported generic functions
(setf channels): Exported generic functions
(setf channels): Exported generic functions
(setf connection): Exported generic functions
(setf connection): Exported generic functions
(setf host): Exported generic functions
(setf host): Exported generic functions
(setf message): Exported generic functions
(setf message): Exported generic functions
(setf new-nick): Exported generic functions
(setf new-nick): Exported generic functions
(setf new-topic): Exported generic functions
(setf new-topic): Exported generic functions
(setf nick): Exported generic functions
(setf nick): Exported generic functions
(setf pass): Exported generic functions
(setf pass): Exported generic functions
(setf real-name): Exported generic functions
(setf real-name): Exported generic functions
(setf server-port): Exported generic functions
(setf server-port): Exported generic functions
(setf socket-stream): Exported generic functions
(setf socket-stream): Exported generic functions
(setf target): Exported generic functions
(setf target): Exported generic functions
(setf topic): Exported generic functions
(setf topic): Exported generic functions
(setf user): Exported generic functions
(setf user): Exported generic functions
(setf user): Exported generic functions
(setf user-class): Exported generic functions
(setf user-class): Exported generic functions
(setf users): Exported generic functions
(setf users): Exported generic functions
(setf users): Exported generic functions

/
/invite: Exported generic functions
/invite: Exported generic functions
/invite: Exported generic functions
/invite: Exported generic functions
/invite: Exported generic functions
/join: Exported generic functions
/join: Exported generic functions
/join: Exported generic functions
/kick: Exported generic functions
/kick: Exported generic functions
/kick: Exported generic functions
/kick: Exported generic functions
/kick: Exported generic functions
/nick: Exported generic functions
/nick: Exported generic functions
/notice: Exported generic functions
/notice: Exported generic functions
/notice: Exported generic functions
/notice: Exported generic functions
/part: Exported generic functions
/part: Exported generic functions
/part: Exported generic functions
/pass: Exported generic functions
/pass: Exported generic functions
/pong: Exported generic functions
/pong: Exported generic functions
/privmsg: Exported generic functions
/privmsg: Exported generic functions
/privmsg: Exported generic functions
/privmsg: Exported generic functions
/quit: Exported generic functions
/quit: Exported generic functions
/raw: Exported generic functions
/raw: Exported generic functions
/user: Exported generic functions
/user: Exported generic functions
/who: Exported generic functions
/who: Exported generic functions
/who: Exported generic functions
/who: Exported generic functions

A
activep: Exported generic functions
activep: Exported generic functions
add-user: Exported functions

C
channel: Exported generic functions
channel: Exported generic functions
channel-class: Exported generic functions
channel-class: Exported generic functions
channel-type: Exported generic functions
channel-type: Exported generic functions
channels: Exported generic functions
channels: Exported generic functions
connect: Exported functions
connect-socket: Exported functions
connection: Exported generic functions
connection: Exported generic functions
connection: Exported generic functions
ctcp-message-p: Exported functions

D
define-event-dispatcher: Exported macros

F
Function, add-user: Exported functions
Function, connect: Exported functions
Function, connect-socket: Exported functions
Function, ctcp-message-p: Exported functions
Function, get-channel: Internal functions
Function, get-user: Internal functions
Function, make-channel: Exported functions
Function, make-ctcp-message: Exported functions
Function, make-user: Exported functions
Function, parse-message: Exported functions
Function, parse-prefix: Exported functions
Function, process-message: Exported functions
Function, process-message-loop: Exported functions
Function, read-message: Exported functions
Function, remove-user: Exported functions
Function, rename-user: Exported functions
Function, reply->keyword: Exported functions
Function, valid-channel-name-p: Internal functions

G
Generic Function, %socket: Internal generic functions
Generic Function, (setf %socket): Internal generic functions
Generic Function, (setf activep): Exported generic functions
Generic Function, (setf channel): Exported generic functions
Generic Function, (setf channel-class): Exported generic functions
Generic Function, (setf channel-type): Exported generic functions
Generic Function, (setf channels): Exported generic functions
Generic Function, (setf connection): Exported generic functions
Generic Function, (setf host): Exported generic functions
Generic Function, (setf message): Exported generic functions
Generic Function, (setf new-nick): Exported generic functions
Generic Function, (setf new-topic): Exported generic functions
Generic Function, (setf nick): Exported generic functions
Generic Function, (setf pass): Exported generic functions
Generic Function, (setf real-name): Exported generic functions
Generic Function, (setf server-port): Exported generic functions
Generic Function, (setf socket-stream): Exported generic functions
Generic Function, (setf target): Exported generic functions
Generic Function, (setf topic): Exported generic functions
Generic Function, (setf user): Exported generic functions
Generic Function, (setf user-class): Exported generic functions
Generic Function, (setf users): Exported generic functions
Generic Function, /invite: Exported generic functions
Generic Function, /join: Exported generic functions
Generic Function, /kick: Exported generic functions
Generic Function, /nick: Exported generic functions
Generic Function, /notice: Exported generic functions
Generic Function, /part: Exported generic functions
Generic Function, /pass: Exported generic functions
Generic Function, /pong: Exported generic functions
Generic Function, /privmsg: Exported generic functions
Generic Function, /quit: Exported generic functions
Generic Function, /raw: Exported generic functions
Generic Function, /user: Exported generic functions
Generic Function, /who: Exported generic functions
Generic Function, activep: Exported generic functions
Generic Function, channel: Exported generic functions
Generic Function, channel-class: Exported generic functions
Generic Function, channel-type: Exported generic functions
Generic Function, channels: Exported generic functions
Generic Function, connection: Exported generic functions
Generic Function, handle-event: Exported generic functions
Generic Function, handle-message: Exported generic functions
Generic Function, host: Exported generic functions
Generic Function, message: Exported generic functions
Generic Function, name: Exported generic functions
Generic Function, new-nick: Exported generic functions
Generic Function, new-topic: Exported generic functions
Generic Function, nick: Exported generic functions
Generic Function, pass: Exported generic functions
Generic Function, real-name: Exported generic functions
Generic Function, server-host: Exported generic functions
Generic Function, server-port: Exported generic functions
Generic Function, socket-stream: Exported generic functions
Generic Function, target: Exported generic functions
Generic Function, topic: Exported generic functions
Generic Function, user: Exported generic functions
Generic Function, user-class: Exported generic functions
Generic Function, users: Exported generic functions
get-channel: Internal functions
get-user: Internal functions

H
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-event: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
handle-message: Exported generic functions
host: Exported generic functions
host: Exported generic functions

M
Macro, define-event-dispatcher: Exported macros
make-channel: Exported functions
make-ctcp-message: Exported functions
make-user: Exported functions
message: Exported generic functions
message: Exported generic functions
Method, %socket: Internal generic functions
Method, (setf %socket): Internal generic functions
Method, (setf activep): Exported generic functions
Method, (setf channel): Exported generic functions
Method, (setf channel-class): Exported generic functions
Method, (setf channel-type): Exported generic functions
Method, (setf channels): Exported generic functions
Method, (setf connection): Exported generic functions
Method, (setf host): Exported generic functions
Method, (setf message): Exported generic functions
Method, (setf new-nick): Exported generic functions
Method, (setf new-topic): Exported generic functions
Method, (setf nick): Exported generic functions
Method, (setf pass): Exported generic functions
Method, (setf real-name): Exported generic functions
Method, (setf server-port): Exported generic functions
Method, (setf socket-stream): Exported generic functions
Method, (setf target): Exported generic functions
Method, (setf topic): Exported generic functions
Method, (setf user): Exported generic functions
Method, (setf user): Exported generic functions
Method, (setf user-class): Exported generic functions
Method, (setf users): Exported generic functions
Method, (setf users): Exported generic functions
Method, /invite: Exported generic functions
Method, /invite: Exported generic functions
Method, /invite: Exported generic functions
Method, /invite: Exported generic functions
Method, /join: Exported generic functions
Method, /join: Exported generic functions
Method, /kick: Exported generic functions
Method, /kick: Exported generic functions
Method, /kick: Exported generic functions
Method, /kick: Exported generic functions
Method, /nick: Exported generic functions
Method, /notice: Exported generic functions
Method, /notice: Exported generic functions
Method, /notice: Exported generic functions
Method, /part: Exported generic functions
Method, /part: Exported generic functions
Method, /pass: Exported generic functions
Method, /pong: Exported generic functions
Method, /privmsg: Exported generic functions
Method, /privmsg: Exported generic functions
Method, /privmsg: Exported generic functions
Method, /quit: Exported generic functions
Method, /raw: Exported generic functions
Method, /user: Exported generic functions
Method, /who: Exported generic functions
Method, /who: Exported generic functions
Method, /who: Exported generic functions
Method, activep: Exported generic functions
Method, channel: Exported generic functions
Method, channel-class: Exported generic functions
Method, channel-type: Exported generic functions
Method, channels: Exported generic functions
Method, connection: Exported generic functions
Method, connection: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-event: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, handle-message: Exported generic functions
Method, host: Exported generic functions
Method, message: Exported generic functions
Method, name: Exported generic functions
Method, new-nick: Exported generic functions
Method, new-topic: Exported generic functions
Method, nick: Exported generic functions
Method, pass: Exported generic functions
Method, real-name: Exported generic functions
Method, server-host: Exported generic functions
Method, server-port: Exported generic functions
Method, socket-stream: Exported generic functions
Method, target: Exported generic functions
Method, topic: Exported generic functions
Method, user: Exported generic functions
Method, user: Exported generic functions
Method, user-class: Exported generic functions
Method, users: Exported generic functions
Method, users: Exported generic functions

N
name: Exported generic functions
name: Exported generic functions
new-nick: Exported generic functions
new-nick: Exported generic functions
new-topic: Exported generic functions
new-topic: Exported generic functions
nick: Exported generic functions
nick: Exported generic functions

P
parse-message: Exported functions
parse-prefix: Exported functions
pass: Exported generic functions
pass: Exported generic functions
process-message: Exported functions
process-message-loop: Exported functions

R
read-message: Exported functions
real-name: Exported generic functions
real-name: Exported generic functions
remove-user: Exported functions
rename-user: Exported functions
reply->keyword: Exported functions

S
server-host: Exported generic functions
server-host: Exported generic functions
server-port: Exported generic functions
server-port: Exported generic functions
socket-stream: Exported generic functions
socket-stream: Exported generic functions

T
target: Exported generic functions
target: Exported generic functions
topic: Exported generic functions
topic: Exported generic functions

U
user: Exported generic functions
user: Exported generic functions
user: Exported generic functions
user-class: Exported generic functions
user-class: Exported generic functions
users: Exported generic functions
users: Exported generic functions
users: Exported generic functions

V
valid-channel-name-p: Internal functions

Jump to:   %   (   /  
A   C   D   F   G   H   M   N   P   R   S   T   U   V  

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

A.3 Variables

Jump to:   %   *  
A   C   H   M   N   P   R   S   T   U  
Index Entry  Section

%
%socket: Exported classes

*
*reply-codes*: Internal special variables

A
activep: Exported classes

C
channel: Exported classes
channel-class: Exported classes
channel-type: Exported classes
channels: Exported classes
connection: Exported classes
connection: Exported classes

H
host: Exported classes

M
message: Exported classes

N
name: Exported classes
new-nick: Exported classes
new-topic: Exported classes
nick: Exported classes

P
pass: Exported classes

R
real-name: Exported classes

S
server-host: Exported classes
server-port: Exported classes
Slot, %socket: Exported classes
Slot, activep: Exported classes
Slot, channel: Exported classes
Slot, channel-class: Exported classes
Slot, channel-type: Exported classes
Slot, channels: Exported classes
Slot, connection: Exported classes
Slot, connection: Exported classes
Slot, host: Exported classes
Slot, message: Exported classes
Slot, name: Exported classes
Slot, new-nick: Exported classes
Slot, new-topic: Exported classes
Slot, nick: Exported classes
Slot, pass: Exported classes
Slot, real-name: Exported classes
Slot, server-host: Exported classes
Slot, server-port: Exported classes
Slot, socket-stream: Exported classes
Slot, target: Exported classes
Slot, topic: Exported classes
Slot, user: Exported classes
Slot, user: Exported classes
Slot, user-class: Exported classes
Slot, users: Exported classes
Slot, users: Exported classes
socket-stream: Exported classes
Special Variable, *reply-codes*: Internal special variables

T
target: Exported classes
topic: Exported classes

U
user: Exported classes
user: Exported classes
user-class: Exported classes
users: Exported classes
users: Exported classes

Jump to:   %   *  
A   C   H   M   N   P   R   S   T   U  

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

A.4 Data types

Jump to:   B   C   E   J   K   L   M   N   P   Q   S   T   U  
Index Entry  Section

B
birch: The birch system
birch: The birch package
birch/commands: The birch/commands package
birch/connection: The birch/connection package
birch/ctcp: The birch/ctcp package
birch/events: The birch/events package
birch/init: The birch/init package
birch/parse: The birch/parse package
birch/replies: The birch/replies package

C
channel: Exported classes
channel-event: Exported classes
channel-type: Exported types
Class, channel: Exported classes
Class, channel-event: Exported classes
Class, connection: Exported classes
Class, event: Exported classes
Class, join-event: Exported classes
Class, kick-event: Exported classes
Class, nick-event: Exported classes
Class, notice-event: Exported classes
Class, part-event: Exported classes
Class, privmsg-event: Exported classes
Class, quit-event: Exported classes
Class, topic-event: Exported classes
Class, user: Exported classes
connection: Exported classes

E
event: Exported method combinations
event: Exported classes

J
join-event: Exported classes

K
kick-event: Exported classes

L
Long Method Combination, event: Exported method combinations

M
Method Combination, Long, event: Exported method combinations

N
nick-event: Exported classes
notice-event: Exported classes

P
Package, birch: The birch package
Package, birch/commands: The birch/commands package
Package, birch/connection: The birch/connection package
Package, birch/ctcp: The birch/ctcp package
Package, birch/events: The birch/events package
Package, birch/init: The birch/init package
Package, birch/parse: The birch/parse package
Package, birch/replies: The birch/replies package
part-event: Exported classes
privmsg-event: Exported classes

Q
quit-event: Exported classes

S
System, birch: The birch system

T
topic-event: Exported classes
Type, channel-type: Exported types

U
user: Exported classes

Jump to:   B   C   E   J   K   L   M   N   P   Q   S   T   U