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
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
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.