Class diagrams
To make it a bit easier to get started with KMess development, this page lists class diagrams of certain classes. The diagrams have been simplified to make it easier to understand the structure.
The full details of the classes can be found in the API documentation. The API documentation can be generated using:
doxygen Doxyfile
KDevelop is also able to create an inheritance diagram of all classes.
Server connection classes
The network classes handle the connections which KMess establishes. The most important classes are the MsnNotificationConnection and MsnSwitchboardConnection classes, which handle the connection with the MSN servers. The connection with the notification server (NS) is the primary connection to the MSN server. It's used to exchange account data, contact list data, and receive notifications of status changes. Each time a chat conversation is started, a connection is made to a switchboard server (SB). All participants of the chat conversation connect with the same switchboard server.
It's possible to connect to the servers with a standard TCP connection, but HTTP can be used as fallback. The MSN-HTTP protocol makes it possible to use MSN in a corporate environment with strict firewall. This difference is handled in the low level Msn...Socket classes.
Contact data classes
When the notification connection receives contact list data, it sends this information in the ContactList class. The information is finally stored in the Contact and ContactBase classes. The user interface also reads the data from these classes.
When something changes, a signal is sent. The user interface implements slots (event handler methods) and connects those to each signal. Each time a signal is sent, the slot in the user interface is called. This slot updates the user interface.
The InvitedContact is used to handle contacts which are invited to a group chat, but are not present in your contact list. When the contact left the chat, this object will be deleted again.
The MsnObject class contains the meta information of an display picture.
The ContactExtension stores additional properties and settings of the contact which are not stored at the server.
Account data classes
The Account class stores all settings of an account. When a setting changes, a signal is sent so the user interface can update itself.
The CurrentAccount object is shared between a lot of classes, and contains the settings for the current account. It's currently implemented as a singleton, but this will likely change when we refactor it for our protocol library plans. At this moment, the CurrentAccount object also stores some state data of the current MSN session.
Attachments
-
diagram-kmess-accountdata.png
(13.5 kB) - added by diederik
2 years ago.
Overview of the account classes in KMess
-
diagram-kmess-contactdata.png
(15.7 kB) - added by diederik
2 years ago.
Overview of the contact data classes in KMess
-
diagram-kmess-network.png
(38.4 kB) - added by diederik
2 years ago.
Overview of the network classes in KMess



