diff -r 6c59112cfd31 -r 38bf5461e270 emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp --- a/emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp Thu Sep 30 11:43:07 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp Thu Oct 14 17:33:43 2010 +0300 @@ -17,70 +17,74 @@ #include "nmapiheaders.h" - namespace EmailClientApi { -NmApiMailboxListingPrivate::NmApiMailboxListingPrivate(QObject *parent) : - QObject(parent), mNmApiEngine(NULL) +NmApiMailboxListingPrivate::NmApiMailboxListingPrivate(QObject *parent) +:QObject(parent), +mEngine(NULL), +mIsRunning(false) { NM_FUNCTION; + mEngine = NmApiEngine::instance(); } NmApiMailboxListingPrivate::~NmApiMailboxListingPrivate() { NM_FUNCTION; -} - -/*! - \brief It initialize engine for email operations. - - When use initializeEngine need to remember release it. - It return value if initialization go good. - \sa releaseEngine - \return Return true if engine is good initilialized. - */ -bool NmApiMailboxListingPrivate::initializeEngine() -{ - NM_FUNCTION; - - if (!mNmApiEngine) { - mNmApiEngine = NmApiEngine::instance(); - } - - return mNmApiEngine ? true : false; + NmApiEngine::releaseInstance(mEngine); } /*! - \brief It release engine for email operations. - - \sa initializeEngine + \brief Get mailboxes from engine. + \return Count of mailboxes */ -void NmApiMailboxListingPrivate::releaseEngine() +qint32 NmApiMailboxListingPrivate::listMailboxes() { NM_FUNCTION; + mIsRunning = true; + mMailboxes.clear(); + mEngine->listMailboxes(mMailboxes); + return mMailboxes.count(); +} + +/*! + \brief Returns results after mailboxesListed signal is received. + + Caller gets ownership of mailboxes. Returns true if results were available. + It clears list of mailboxes (in private members) after be called. + It also at start clear inputlist of NmApiMailbox. - NmApiEngine::releaseInstance(mNmApiEngine); + \return Return true if results were avaible + \param mailboxes List of mailboxes to filled. On start is cleared. + */ +bool NmApiMailboxListingPrivate::mailboxes(QList &mailboxes) +{ + mailboxes.clear(); + + + bool ret(mIsRunning); + mailboxes.clear(); + while (!mMailboxes.isEmpty()) { + mailboxes << mMailboxes.takeFirst(); + } + mIsRunning = false; + return ret; +} +/*! + \brief Return info if listing is running + */ +bool NmApiMailboxListingPrivate::isRunning() const +{ + NM_FUNCTION; + return mIsRunning; } /*! - \brief It grab mailboxes from engine. - - When it start grabing, it release all old. - Because it uses NmApiMailbox with sharedData we don't need care about release memory. - - \return Count of mailboxes or "-1" if there is no engine + \brief Clears list of mailboxes. */ -qint32 NmApiMailboxListingPrivate::grabMailboxes() +void NmApiMailboxListingPrivate::cancel() { - NM_FUNCTION; - - if (!mNmApiEngine) { - return -1; - } - + mIsRunning = false; mMailboxes.clear(); - - mNmApiEngine->listMailboxes(mMailboxes); - return mMailboxes.count(); } }