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
Michele Calgaro 7bfa0fb615
Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT
7 months 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 Replace QObject, QWidget, QImage, QPair, QRgb, QColor, QChar, QString, QIODevice with TQ* version 1 year ago
exchangeaccount.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangeaccount.h Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 7 months ago
exchangeclient.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangeclient.h Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 7 months ago
exchangedelete.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangedelete.h Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 7 months ago
exchangedownload.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangedownload.h Replace Q_OBJECT with TQ_OBJECT 1 year ago
exchangemonitor.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangemonitor.h Replace Q_OBJECT with TQ_OBJECT 1 year ago
exchangeprogress.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
exchangeprogress.h Replace Q_OBJECT with TQ_OBJECT 1 year ago
exchangeupload.cpp Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines 11 months ago
exchangeupload.h Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 7 months 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<TQString,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<TQString,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.