diff -r 011f79704660 -r cdd802add233 emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp --- a/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Fri Jun 11 16:23:29 2010 +0100 +++ b/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Thu Jul 22 16:30:28 2010 +0100 @@ -14,67 +14,77 @@ * Description: * */ -#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() { - releaseEngine(); + NM_FUNCTION; + 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) { - mEngine = NmApiEngine::instance(); - return mEngine ? true : false; + NM_FUNCTION; + 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. - \sa initializeEngine - */ -void NmApiEnvelopeListingPrivate::releaseEngine() -{ - NmApiEngine::releaseInstance(mEngine); -} - -/*! - \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 + \return Count of envelopes */ -qint32 NmApiEnvelopeListingPrivate::grabEnvelopes() +qint32 NmApiEnvelopeListingPrivate::listEnvelopes() { - if(!mEngine){ - return -1; - } - + NM_FUNCTION; + mIsRunning = true; mEnvelopes.clear(); - mEngine->listEnvelopes(mailboxId, folderId, mEnvelopes); + mEngine->listEnvelopes(mMailboxId, mFolderId, mEnvelopes); return mEnvelopes.count(); } +/*! + \brief Return info if listing is running + */ +bool NmApiEnvelopeListingPrivate::isRunning() const +{ + return mIsRunning; +} +/*! + \brief Clears list of envelopes. + */ +void NmApiEnvelopeListingPrivate::cancel() +{ + mIsRunning = false; + mEnvelopes.clear(); +} }