summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README58
1 files changed, 58 insertions, 0 deletions
diff --git a/README b/README
index 2a003202..514de108 100644
--- a/README
+++ b/README
@@ -35,3 +35,61 @@ Please read the COPYING file for details
= People =
xbright (Handler and MultiUserChat classes)
chickenzilla (Config class)
+
+======================
+ The code
+======================
+
+Classes:
+ - Connection *receives* messages from the Jabber network
+ - MultiUserChat *sends* messages to the Jabber network
+ - Gui displays everything on the screen and gets the user inputs
+ - Handler is the "link" between all these classes :
+a class emits a signal and the others classes listen to this signal
+and do what they have to do whenever this signal is emitted by any class
+
+Q: Why not use Connection to receive AND send the messages to Jabber network?
+A: I like it this way.
+
+Q: Could you please make a nice ASCII art, so I could understand all
+ the beauty and the complexity of this awesome software ?
+A: Of course, here it is:
+
+ ___________________________
+ / \
+ | |
+ | Jabber Network |
+ | (roomchats and people |
+ | in them) |
+ | |
+ \__________________________/
+ | ^
+ | receive send | ____ Poezio ____
+ v |
+ /----------------\ /-----------------\
+ | | | |
+ | Connection | | MultiUserChat |
+ | | | |
+ \----------------/ \-----------------/
+ ^ |emit emit | ^
+ | | /---------\ | |
+ connect \ \----> | |<----/ / connect
+ \______ | Handler |______/
+ | |
+ \---------/
+ | ^
+ connect | | emit
+ v |
+ /---------\
+ | |
+ | Gui |
+ | |
+ \---------/
+ | ^
+ Screen | | Keyboard
+ v |
+ /---------\
+ | |
+ | YOU |
+ | |
+ \---------/