mirror of
https://github.com/irssi/irssi.git
synced 2026-08-19 16:42:30 +02:00
and the docs
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@173 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
d29ca0b107
commit
94b37a898b
7 changed files with 1507 additions and 5 deletions
117
docs/design.txt
Normal file
117
docs/design.txt
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
|
||||
Irssi's hierarchy is something like this:
|
||||
|
||||
|
||||
sub1 sub2
|
||||
\ /
|
||||
xxx IRC COMMON ICQ yyy
|
||||
|____|___________|____|____|
|
||||
|
|
||||
GUI (gtk/gnome, qt/kde, text, none)
|
||||
|
|
||||
sub1 sub2 |
|
||||
\ / |
|
||||
xxx IRC | COMMON ICQ yyy
|
||||
|____|_____|_____|____|____|
|
||||
|
|
||||
COMMON UI
|
||||
|
|
||||
sub1 sub2 |
|
||||
\ / |
|
||||
xxx IRC | ICQ yyy
|
||||
|____|_____|_____|____|
|
||||
|
|
||||
CORE
|
||||
/ \
|
||||
lib-config lib-popt
|
||||
|
||||
|
||||
(IRC, ICQ, xxx and yyy are chat protocols ..)
|
||||
(sub1 and sub2 are submodules of IRC module, like DCC and flood protect)
|
||||
|
||||
|
||||
Chat protocols and frontends are kept in separate modules. Common UI
|
||||
and GUI modules also have the common parts which don't know anything
|
||||
about the chat protocols. This should allow implementing modules to
|
||||
whatever chat protocols and with whatever frontends easily.
|
||||
|
||||
|
||||
** lib-popt
|
||||
|
||||
CORE depends on this for command line parameter handling.
|
||||
(distributed with irssi)
|
||||
|
||||
|
||||
** lib-config
|
||||
|
||||
Irssi depends on this for reading and saving configuration.
|
||||
(created by me for irssi)
|
||||
|
||||
|
||||
** CORE module
|
||||
|
||||
Provides some functionality that all other modules can use:
|
||||
- signal handling
|
||||
- keeping list of settings
|
||||
- keeping list of /commands
|
||||
- keeping track of loaded modules
|
||||
- networking functions (with nonblocking connects, IPv6 support)
|
||||
- handles connecting to servers
|
||||
- raw logging of server's input/output data
|
||||
- /EVAL support
|
||||
- fgets() like function line_split() without any maximum line limits
|
||||
- command line parameter handling
|
||||
- miscellaneous useful little functions
|
||||
- handles logging
|
||||
|
||||
|
||||
** COMMON UI module
|
||||
|
||||
- knows basics about windows and window items (=channels, queries, ..)
|
||||
- printtext() - parsing texts and feeding it for GUI to print.
|
||||
- themes
|
||||
- translation tables
|
||||
- text hilighting
|
||||
- command history
|
||||
- user interface (/commands) for CORE's functionality
|
||||
|
||||
|
||||
** GUI modules
|
||||
|
||||
- all the rest of the functionality needed for a working client.
|
||||
|
||||
|
||||
** IRC module
|
||||
|
||||
* CORE
|
||||
|
||||
- IRC specific /commands
|
||||
- flood protecting commands sent to server
|
||||
- creating IRC masks based on nick/address for bans, ignores, etc.
|
||||
- keeps list of channels, nicks, channel modes, bans, etc.
|
||||
- keeps list of servers, server settings, irc networks,
|
||||
server reconnections and irc network splits
|
||||
- redirection of commands' replies
|
||||
- lag detection
|
||||
- ctcp support and flood protection
|
||||
- Handles ignoring people
|
||||
|
||||
* DCC
|
||||
|
||||
- DCC chat, send and get
|
||||
|
||||
* FLOOD
|
||||
|
||||
- detects private or channel flooding and sends "flood" signal
|
||||
- automatic ignoring when flooding
|
||||
|
||||
* NOTIFYLIST
|
||||
|
||||
- handles notifylist
|
||||
|
||||
|
||||
** IRC UI module
|
||||
|
||||
- placing channels and queries in windows
|
||||
- nick completion
|
||||
- printing infomation of some events
|
||||
Loading…
Add table
Add a link
Reference in a new issue