Author: bdash
Date: 2005-02-05 20:20:41 +1300 (Sat, 05 Feb 2005)
New Revision: 334
Modified:
branches/libmsn-3.2.x/README
branches/libmsn-3.2.x/configure.ac
branches/libmsn-3.2.x/doc/overview.txt
Log:
Update documentation to match current version + API changes.
Modified: branches/libmsn-3.2.x/README
===================================================================
--- branches/libmsn-3.2.x/README 2005-02-05 07:00:58 UTC (rev 333)
+++ branches/libmsn-3.2.x/README 2005-02-05 07:20:41 UTC (rev 334)
@@ -1,5 +1,5 @@
-libmsn 3.1
-============
+libmsn 3.2
+===========
:Author: Mark Rowe
:Contact: bdash-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@xxxxxxxxxxxxxxxx
@@ -12,6 +12,13 @@
Whats New?
----------
+In 3.2: With the release of libmsn 3.2 comes support for multiple
simultaneous connections. The
+ callback mechanism has been refactored so that it is easy to
distinguish between each
+ connection's callbacks. A large number of bug fixes have also been
rolled in to this
+ release.
+In 3.1.1: libmsn 3.1.1 is primarily a bug fix release. Changes include
fixing up the #include's
+ so that it compiles cleanly on a wider range of platforms, working
file transfer
+ support and improved error handling.
In 3.1: libmsn 3.1 brings support for server-side groups for managing
buddies. It also
features rewritten network code that should help reduce CPU usage,
and the amount
of time spent waiting for network data.
Modified: branches/libmsn-3.2.x/configure.ac
===================================================================
--- branches/libmsn-3.2.x/configure.ac 2005-02-05 07:00:58 UTC (rev 333)
+++ branches/libmsn-3.2.x/configure.ac 2005-02-05 07:20:41 UTC (rev 334)
@@ -2,8 +2,8 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT(libmsn, 3.1, bdash-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@xxxxxxxxxxxxxxxx)
-AM_INIT_AUTOMAKE(libmsn, 3.1)
+AC_INIT(libmsn, 3.2, bdash-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@xxxxxxxxxxxxxxxx)
+AM_INIT_AUTOMAKE(libmsn, 3.2)
AC_CONFIG_SRCDIR([msn/md5.c])
AM_CONFIG_HEADER([config.h])
Modified: branches/libmsn-3.2.x/doc/overview.txt
===================================================================
--- branches/libmsn-3.2.x/doc/overview.txt 2005-02-05 07:00:58 UTC (rev
333)
+++ branches/libmsn-3.2.x/doc/overview.txt 2005-02-05 07:20:41 UTC (rev
334)
@@ -9,7 +9,7 @@
.. contents::
-This document contains a high level overview of ``libmsn`` 3.1. ``libmsn``
3.1 is based on Meredydd Luff's ``libmsn`` 2.1, but is closer to a complete
rewrite than a new version.
+This document contains a high level overview of ``libmsn`` 3.2. ``libmsn``
3.2 is based on Meredydd Luff's ``libmsn`` 2.1, but is closer to a complete
rewrite than a new version.
----------------------------------------
An Overview of the MSN Messenger System
@@ -44,9 +44,9 @@
Communication with the Library
==============================
-Communication with ``libmsn`` is done via an object-oriented ``API`` and a
number of user-provided callback functions. All callbacks are declared within
`msn/externals.h`_, and are within the ``MSN::ext`` namespace. All callbacks
listed need to be defined, otherwise you will get linker errors when you
attempt to build your program. Many of the callbacks can be defined as an
empty function, but those listed under `Required Callbacks`_ need to be
implemented with the documented semantics.
+Communication with ``libmsn`` is done via an object-oriented ``API`` and
user-provided callback functions. An instance of a user-defined subclass of
``MSN::Callbacks`` should be passed to the ``NotificationServerConnection``
constructor. All callbacks are declared within `msn/externals.h`_. All
callbacks listed need to be defined, otherwise you will get linker errors when
you attempt to build your program. Many of the callbacks can be defined as an
empty function, but those listed under `Required Callbacks`_ need to be
implemented with the documented semantics.
-.. _msn/externals.h: http://libmsn.bluewire.org.nz/svn/trunk/msn/externals.h
+.. _msn/externals.h:
http://libmsn.bluewire.org.nz/svn/branches/libmsn-3.2.x/msn/externals.h
Core Classes
@@ -77,13 +77,15 @@
struct pollfd mySockets[32];
int numberOfSockets = 0;
MSN::NotificationServerConnection *mainConnection;
+ Callbacks cb;
mainConnection = new
MSN::NotificationServerConnect("myPassport-hcDgGtZH8xNBDgjK7y7TUQ@xxxxxxxxxxxxxxxx",
- "myS3cr3t");
+ "myS3cr3t",
+ cb);
mainConnection->connect("messenger.hotmail.com", 1863);
- ``libmsn`` will then register and unregister sockets to be checked for
completed connections, available data, and writability by calling
``MSN::ext::registerSocket`` and ``MSN::ext::unregisterSocket`` one or more
times as is appropriate.
+ ``libmsn`` will then register and unregister sockets to be checked for
completed connections, available data, and writability by calling
``MSN::Callbacks::registerSocket`` and ``MSN::Callbacks::unregisterSocket`` one
or more times as is appropriate.
2. Enter your main event loop. This may be based on ``select``, ``poll``, or
a similar ``API`` that will notify you when data is available on a given
socket::
@@ -145,13 +147,13 @@
The following callbacks are required by ``libmsn`` to implement the documented
semantics as they are used to integrate with your program:
-``int MSN::ext::connectToServer(std::string server, int port, bool
*connected)``
+``int MSN::Callbacks::connectToServer(std::string server, int port, bool
*connected)``
Return an integer containing a socket that has been connected to
server:port. ``libmsn`` will call this when it wants to establish a connection
a computer named ``server`` that is listening on ``port``. The value ``true``
should be stored in ``*connected`` if the connection has completed, or
``false`` if the connection did not complete. ``-1`` should be returned if an
error occurs.
-``void MSN::ext::registerSocket(int socket, int reading, int writing)``
+``void MSN::Callbacks::registerSocket(int socket, int reading, int writing)``
Called by ``libmsn`` to inform you which events you should watch for on
``socket``. If ``reading`` is ``true``, then ``libmsn`` wishes to be informed
when data arrives on the socket. If ``writing`` is ``true``, ``libmsn`` wishes
to be informed when it is possible to write data to ``socket``.
-``void MSN::ext::unregisterSocket(int socket)``
+``void MSN::Callbacks::unregisterSocket(int socket)``
Called by ``libmsn`` to inform you that it no longer wishes to be notified
of events relating to ``socket``.
Optional Callbacks
@@ -177,20 +179,21 @@
void *requestContext = <some data>;
mainConnection->requestSwitchboardConnection(requestContext);
-``MSN::ext::gotSwitchboard`` will be called when the requested switchboard
session is established.
+``MSN::Callbacks::gotSwitchboard`` will be called when the requested
switchboard session is established.
Inviting Buddies Into a Switchboard Session
============================================
-Once you have established a switchboard session, you need to invite your
receiving buddy into the session. You can do this by using the
``SwitchboardServerConnection``'s ``inviteUser`` method. Note that the buddy
is not considered to have joined the session until
``MSN::ext::buddyJoinedConversation`` has been called with the switchboard
server and buddy as arguments.
+Once you have established a switchboard session, you need to invite your
receiving buddy into the session. You can do this by using the
``SwitchboardServerConnection``'s ``inviteUser`` method. Note that the buddy
is not considered to have joined the session until
``MSN::Callbacks::buddyJoinedConversation`` has been called with the
switchboard server and buddy as arguments.
Sending Instant Messages
=========================
When your switchboard session has been established, and buddies invited, you
can then send an instant message. ``libmsn`` represents messages with it's
``Message`` class, so an instance needs to be created that contains the message
that you wish to send. This instance will then allow you to control such
things as the font and color that the message will appear in. The message can
then be transmitted into the switchboard session by using the
``SwitchboardServerConnection``'s ``sendMessage`` method::
- MSN::SwitchboardServerConnection *theSwitchboard = <a switchboard
connection>;
+ MSN::SwitchboardServerConnection *theSwitchboard =
+ <a switchboard connection>;
MSN::Message msg(myMessageText);
msg.setFontName("Courier New");
msg.setFontEffects(MSN::Message::ITALIC_FONT);
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
|