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
Darrell Anderson a34b0b48eb
Change ${INCLUDE_INSTALL_DIR}/tde -> ${INCLUDE_INSTALL_DIR}.
12 years ago
..
CMakeLists.txt Change ${INCLUDE_INSTALL_DIR}/tde -> ${INCLUDE_INSTALL_DIR}. 12 years ago
Makefile.am
README.download
exchangeaccount.cpp Rename obsolete tq methods to standard names 13 years ago
exchangeaccount.h
exchangeclient.cpp
exchangeclient.h
exchangedelete.cpp
exchangedelete.h
exchangedownload.cpp Remove additional unneeded tq method conversions 13 years ago
exchangedownload.h
exchangemonitor.cpp
exchangemonitor.h
exchangeprogress.cpp Remove additional unneeded tq method conversions 13 years ago
exchangeprogress.h
exchangeupload.cpp Remove additional unneeded tq method conversions 13 years ago
exchangeupload.h
utils.cpp
utils.h

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.