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.
tdepim/libkpimexchange/core
tpearson 1c3e6a878f
TQt conversion fixes
15 years ago
..
Makefile.am Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
README.download Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
exchangeaccount.cpp Trinity Qt initial conversion 15 years ago
exchangeaccount.h Trinity Qt initial conversion 15 years ago
exchangeclient.cpp Trinity Qt initial conversion 15 years ago
exchangeclient.h Trinity Qt initial conversion 15 years ago
exchangedelete.cpp Trinity Qt initial conversion 15 years ago
exchangedelete.h Trinity Qt initial conversion 15 years ago
exchangedownload.cpp Trinity Qt initial conversion 15 years ago
exchangedownload.h Trinity Qt initial conversion 15 years ago
exchangemonitor.cpp Trinity Qt initial conversion 15 years ago
exchangemonitor.h TQt conversion fixes 15 years ago
exchangeprogress.cpp Trinity Qt initial conversion 15 years ago
exchangeprogress.h TQt conversion fixes 15 years ago
exchangeupload.cpp Trinity Qt initial conversion 15 years ago
exchangeupload.h Trinity Qt initial conversion 15 years ago
utils.cpp Trinity Qt initial conversion 15 years ago
utils.h Trinity Qt initial conversion 15 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.