--- 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<NmApiMailbox> &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();
}
}