[gaim-migrate @ 3063]
[pidgin-git.git] / src / protocols / icq / CHANGES_SINCE_1.0
blob5c78cbcbea084206557283de759248d4aa198fb5
1 This file is intended to be a list of source incompatible changes 
2 that have been made since icqlib-1.0.0.
4 2000-12-19: ICQLINKs have been reworked.  Members that provide no useful 
5 information to the library client have been moved to a private structure 
6 attached to the public ICQLINK, ICQLINK_private.  See icqlib.h.  ICQLINK 
7 memory management now must be performed by the library (which is probably 
8 how it should have always been), with icq_ICQLINKNew and 
9 icq_ICQLINKDelete.
11 2000-12-19: Your application is no longer responsible for allocating and
12 freeing the ICQLINK structure, rather, it is returned as the result of a
13 icq_ICQLINKNew call.  icq_ICQLINKDelete will free an ICQLINK structure.
15 2000-12-19: icq_Init and icq_Done have been removed.  Use icq_ICQLINKNew
16 and icq_ICQLINKDelete instead.  In addition, icq_ICQLINKNew has gained an
17 additional parameter: a flag to turn TCP on or off.
19 2001-01-16: The chat and file request/session interface has been
20 significantly reworked.  icq_RequestNotify now will return
21 ICQ_NOTIFY_SUCCESS as soon as the file or chat *request* is complete, but
22 not before returning a handle to an icq_ChatSession or icq_FileSession.  
23 See ICQ_NOTIFY_CHATSESSION and ICQ_NOTIFY_FILESESSION.  All future
24 operations on the chat or file session should be performed using this
25 handle and the appropriate icq_ChatSession* or icq_FileSession* functions.
27 Old function             New function
29 icq_TCPCloseChat         icq_ChatSessionClose
30 icq_TCPSendChatData      icq_ChatSessionSendData
31 icq_TCPSendChatData_n    icq_ChatSessionSendData_n
33 In addition, notification messages for chat and file sessions come back 
34 through two new callbacks: icq_ChatNotify and icq_FileNotify.  
35 icq_ChatSession has also been exposed in the public interface, as well as 
36 a number of chat status constants.
38 Old notification                       New notification
40 icq_RequestNotify/ICQ_NOTIFY_CHAT      icq_ChatNotify/CHAT_NOTIFY_STATUS
41 icq_RequestNotify/ICQ_NOTIFY_CHATDATA  icq_ChatNotify/CHAT_NOTIFY_DATA
42 icq_RequestNotify/ICQ_NOTIFY_SUCCESS   icq_ChatNotify/CHAT_NOTIFY_CLOSE
44 icq_RequestNotify/ICQ_NOTIFY_FILE      icq_FileNotify/FILE_NOTIFY_STATUS
45 icq_RequestNotify/ICQ_NOTIFY_FILEDATA  icq_FileNotify/FILE_NOTIFY_DATAPACKET
46 icq_RequestNotify/ICQ_NOTIFY_SUCCESS   icq_FileNotify/FILE_NOTIFY_CLOSE
48 Finally, some fake file status values now come through separate 
49 FILE_NOTIFY events, and one has been renamed:
51 Old status                         New Notification/Status
53 FILE_STATUS_NEW_SPEED              icq_FileNotify/FILE_NOTIFY_NEW_SPEED
54 FILE_STATUS_STOP_FILE              icq_FileNotify/FILE_NOTIFY_STOP_FILE
55 FILE_STATUS_INITIALIZED            FILE_STATUS_INITIALIZING
57 2001-01-16: icqlib now reports when it needs read and write ready 
58 notifications for sockets through icq_SocketNotify.  Install a callback 
59 for the icq_SocketNotify function, which takes the following parameters:
61    void (*icq_SocketNotify)(int socket, int type, int status);
63 socket will be the socket number, type will be either ICQ_SOCKET_READ or 
64 ICQ_SOCKET_WRITE, and status will be either true or false, true indicating 
65 icqlib now needs notification, and false indicating icqlib no longer needs 
66 notification.  Your application should use this to install some sort of 
67 socket notification object (e.g., in kicq, we use a QSocketNotifier).  
68 When the socket is ready, you should invoke the new 
69 icq_HandleReadySocket(socket, type) function.
71 This mechanism is completely optional - you can simply set up a timer to 
72 call icq_Main every 1/10 of a second or so.  This has the disadvantage of 
73 wasting CPU cycles and poor TCP file transfer performance, though.
75 2001-02-20: The icq_SetTimeout callback has been moved outside of the 
76 ICQLINK structure, and icq_HandleTimeout no longer requires an ICQLINK 
77 parameter.
79 2001-03-03: ICQLINK is now icq_Link, to fit better with the icqlib
80 naming conventions.  ICQLINK should be considered depreciated - it is 
81 still supported for now, but may disappear in a future icqlib release.