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
Mavridis Philippe b4a0d3cc1e
Gender-neutral language
2 years ago
..
CMakeLists.txt Change ${INCLUDE_INSTALL_DIR}/tde -> ${INCLUDE_INSTALL_DIR}. 13 years ago
Makefile.am Additional k => tde renaming and fixes 11 years ago
README.download Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
exchangeaccount.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
exchangeaccount.h The workaround that tdepimmacros.h do is no longer needed 4 years ago
exchangeclient.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
exchangeclient.h The workaround that tdepimmacros.h do is no longer needed 4 years ago
exchangedelete.cpp Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
exchangedelete.h The workaround that tdepimmacros.h do is no longer needed 4 years ago
exchangedownload.cpp Gender-neutral language 2 years ago
exchangedownload.h Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
exchangemonitor.cpp Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
exchangemonitor.h Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
exchangeprogress.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
exchangeprogress.h Remove spurious TQ_OBJECT instances 13 years ago
exchangeupload.cpp Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago
exchangeupload.h The workaround that tdepimmacros.h do is no longer needed 4 years ago
utils.cpp Fixed FTBFS caused by migration to libical 3. The changes 7 years ago
utils.h Rename additional instances of KDE to TDE 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.