You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Timothy Pearson
c6c254fd15
|
13 years ago | |
---|---|---|
.. | ||
CMakeLists.txt | 13 years ago | |
Makefile.am | 13 years ago | |
README.download | 15 years ago | |
exchangeaccount.cpp | 13 years ago | |
exchangeaccount.h | 13 years ago | |
exchangeclient.cpp | 13 years ago | |
exchangeclient.h | 13 years ago | |
exchangedelete.cpp | 14 years ago | |
exchangedelete.h | 13 years ago | |
exchangedownload.cpp | 13 years ago | |
exchangedownload.h | 13 years ago | |
exchangemonitor.cpp | 13 years ago | |
exchangemonitor.h | 13 years ago | |
exchangeprogress.cpp | 13 years ago | |
exchangeprogress.h | 13 years ago | |
exchangeupload.cpp | 13 years ago | |
exchangeupload.h | 13 years ago | |
utils.cpp | 14 years ago | |
utils.h | 13 years ago |
README.download
$Id$ This document describes what happens during the download of appointments from an exchange server in exchangedownload.cpp. Error handling, user interface ignored for clarity Author: Jan-Pascal van Best, janpascal@vanbest.org NOTES: - You can only use an ExchangeDownload object for a single download It uses internal state member variables and such. DATA STRUCTURES: QMap<QString,int> m_uids is in fact a set of known uids telling us whether we're already busy or finished reading the Master event for this UID. The map contains the UID as key, with a value of 1, if UID is either being or finished downloading. QMap<QString,DwString *> m_transferJobs maps URLs being downloaded to strings of data already received. A URL is removed from the map if all data has been received METHODS: download() - Provides authentication info to the KDE authentication service - Creates an SQL query using dateSelectQuery() - Starts a SEARCH job, connects the result() signal to the slotSearchResult() slot slotSearchResult() - Calls handleAppointments() with recurrence enabled handleAppointments() - Examines all events returned by the SEARCH - If recurrence is enabled, for Master, Instance or Exception events, and if we havent't handled this particular UID yet, call handleRecurrence() with the UID of the event - If recurrence is disabled, or for Single events, start a TransferJob. Connect the data() signal to the slotData() slot and the result() signal to the slotTransferResult() slot. - Note that this method may start many new jobs for transferring appointments and for finding recurrent events! handleRecurrence() - Start a new SEARCH job, looking for the Master event of the UID - Connect the result() signal to the slotMasterResult() slot slotMasterResult() - Call handleAppointment() with recurrence disabled slotData() - If the URL of the data we're receiving is already in m_transferJobs, append the data to the string related to this URL. Else, create a new string, and place a new URL,string pair in m_transferJobs slotTransferResult() - Parse the data received for this URL as a MIME message - call handlePart() for every MIME part in the message - Remove the URL from m_transferJobs and free the string handlePart() - If this is a text/calendar part, read iCalendar data from the part and insert it into the calendar.