diff -r bf7eb7911fc5 -r 997a02608b3a emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp --- a/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Wed Jun 23 18:00:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Tue Jul 06 14:04:34 2010 +0300 @@ -15,77 +15,76 @@ * */ -#include "emailtrace.h" - -#include "nmapiengine.h" -#include "nmapienvelopelisting_p.h" - -#include -#include +#include "nmapiheaders.h" namespace EmailClientApi { -NmApiEnvelopeListingPrivate::NmApiEnvelopeListingPrivate(QObject *parent) : - QObject(parent), mEngine(NULL) +NmApiEnvelopeListingPrivate::NmApiEnvelopeListingPrivate(const quint64 folderId, const quint64 mailboxId, QObject *parent) +:QObject(parent), +mFolderId(folderId), +mMailboxId(mailboxId), +mIsRunning(false), +mEngine(NULL) { NM_FUNCTION; + mEngine = NmApiEngine::instance(); + Q_CHECK_PTR(mEngine); } NmApiEnvelopeListingPrivate::~NmApiEnvelopeListingPrivate() { NM_FUNCTION; - - releaseEngine(); + NmApiEngine::releaseInstance(mEngine); } -/*! - \brief It initialize engine for email operations. +/*! + \brief Fills envelopes to the input parameter. - When use initializeEngine need to remember release it. - It return value if initialization go good. - \sa releaseEngine + Caller gets ownership of envelopes. Returns true if results were available. */ -bool NmApiEnvelopeListingPrivate::initializeEngine() +bool NmApiEnvelopeListingPrivate::envelopes(QList &envelopes) { NM_FUNCTION; - - mEngine = NmApiEngine::instance(); - return mEngine ? true : false; + bool ret(mIsRunning); + envelopes.clear(); + while (!mEnvelopes.isEmpty()) { + envelopes << mEnvelopes.takeFirst(); + } + mIsRunning = false; + return ret; } /*! - \brief It release engine for email operations. + \brief It fetches envelopes from engine. + + Because it uses NmApiMessageEnvelope with sharedData we don't need care about release memory. - \sa initializeEngine + \return Count of envelopes */ -void NmApiEnvelopeListingPrivate::releaseEngine() +qint32 NmApiEnvelopeListingPrivate::listEnvelopes() { NM_FUNCTION; - - NmApiEngine::releaseInstance(mEngine); + mIsRunning = true; + mEnvelopes.clear(); + mEngine->listEnvelopes(mMailboxId, mFolderId, mEnvelopes); + return mEnvelopes.count(); } - /*! - \brief It grab envelopes from engine. - - When it start grabing, it release all old. - Because it uses NmApiMessageEnvelope with sharedData we don't need care about release memory. - - \return Count of envelopes or "-1" if there is no engine initialised + \brief Return info if listing is running */ -qint32 NmApiEnvelopeListingPrivate::grabEnvelopes() +bool NmApiEnvelopeListingPrivate::isRunning() const { - NM_FUNCTION; - - if(!mEngine){ - return -1; - } - + return mIsRunning; +} +/*! + \brief Clears list of envelopes. + */ +void NmApiEnvelopeListingPrivate::cancel() +{ + mIsRunning = false; mEnvelopes.clear(); - mEngine->listEnvelopes(mailboxId, folderId, mEnvelopes); - return mEnvelopes.count(); } }