felipec / msn-pecan

MSN Messenger library in C

This URL has Read+Write access

deadcow (author)
Sun Feb 15 14:04:55 -0800 2009
felipec (committer)
Sun Feb 15 14:04:55 -0800 2009
msn-pecan / TODO
100644 74 lines (55 sloc) 1.636 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
== Miscellaneous ==
 
 * remove sync.c, it only complicates things. Also, there's issues with the
   initial login (new account).
 
== GObjectification ==
 
The objective is that all of the important structures in msn-pecan are
developed using GObject.
 
 * Network I/O
   * Command server (done)
   * HTTP server (done)
   * Notification server
   * Switchboard server
   * Direct Connection (p2p)
   * Nexus (authentication)
 
 * AddressBook
   * Contact
   * Group
   * Contact List
 
 * CVR
 
== Unit Testing ==
 
For this better modularization is required so individual modules can tested
independently. Also, to be able to work without libpurple.
 
 * Modularization
  * Network I/O
  * AddressBook
  * CVR
 
 * Unit Tests
  * Utilities
    * Command parsing
    * Message parsing
    * Transaction handling
  * Network I/O
  * AddressBook
  * CVR
 
== Utilities ==
 
=== printf ===
 
GLib's printf utility is sub-obtimal so a custom one has been developed in
msn-pecan. It's far from being complete, and probably should be pushed into
mainline GLib.
 
So that g_print ("%s", NULL) works on all architectures. Currently that crashes
in Windows.
 
== Documentation ==
 
 * Overview, architecture
 * Create design diagrams
 * Use doxygen
 * Add documentation to: http://imfreedom.org/wiki/index.php/MSN
 * Examples of communications (client/server, p2p)
 
== Other ideas ==
 
 * Create a standalone library.
 * Don't rely on GLib's mainloop. (for Adium X)
 * Use gio
 * Use libsoup
 * Properly use and test pecan_buffer.
 * Port offline message support from libgmsn.
 * Allow cancel in authorization dialog.
 * Allow alias from the add buddy dialog.