emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp
changeset 54 997a02608b3a
parent 30 759dc5235cdb
equal deleted inserted replaced
53:bf7eb7911fc5 54:997a02608b3a
    13  *
    13  *
    14  * Description:
    14  * Description:
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include "emailtrace.h"
    18 #include "nmapiheaders.h"
    19 
       
    20 #include "nmapiengine.h"
       
    21 #include "nmapienvelopelisting_p.h"
       
    22 
       
    23 #include <nmapimailbox.h>
       
    24 #include <nmapimessageenvelope.h>
       
    25 
    19 
    26 
    20 
    27 
    21 
    28 namespace EmailClientApi
    22 namespace EmailClientApi
    29 {
    23 {
    30 NmApiEnvelopeListingPrivate::NmApiEnvelopeListingPrivate(QObject *parent) :
    24 NmApiEnvelopeListingPrivate::NmApiEnvelopeListingPrivate(const quint64 folderId, const quint64 mailboxId, QObject *parent)
    31     QObject(parent), mEngine(NULL)
    25 :QObject(parent),
       
    26 mFolderId(folderId), 
       
    27 mMailboxId(mailboxId), 
       
    28 mIsRunning(false),
       
    29 mEngine(NULL)
    32 {
    30 {
    33     NM_FUNCTION;
    31     NM_FUNCTION;
       
    32     mEngine = NmApiEngine::instance();
       
    33     Q_CHECK_PTR(mEngine);
    34 }
    34 }
    35 
    35 
    36 NmApiEnvelopeListingPrivate::~NmApiEnvelopeListingPrivate()
    36 NmApiEnvelopeListingPrivate::~NmApiEnvelopeListingPrivate()
    37 {
    37 {
    38     NM_FUNCTION;
    38     NM_FUNCTION;
    39     
    39     NmApiEngine::releaseInstance(mEngine);
    40     releaseEngine();
    40 }
       
    41 
       
    42 /*! 
       
    43    \brief Fills envelopes to the input parameter.
       
    44    
       
    45     Caller gets ownership of envelopes. Returns true if results were available.
       
    46  */
       
    47 bool NmApiEnvelopeListingPrivate::envelopes(QList<EmailClientApi::NmApiMessageEnvelope> &envelopes)
       
    48 {
       
    49     NM_FUNCTION;
       
    50     bool ret(mIsRunning);
       
    51     envelopes.clear();
       
    52     while (!mEnvelopes.isEmpty()) {
       
    53         envelopes << mEnvelopes.takeFirst();
       
    54     }
       
    55     mIsRunning = false;
       
    56     return ret;
    41 }
    57 }
    42 
    58 
    43 /*!
    59 /*!
    44    \brief It initialize engine for email operations. 
    60    \brief It fetches envelopes from engine. 
    45    
    61    
    46    When use initializeEngine need to remember release it.
    62    Because it uses NmApiMessageEnvelope with sharedData we don't need care about release memory.
    47    It return value if initialization go good.
    63    
    48    \sa releaseEngine 
    64    \return Count of envelopes 
    49  */
    65  */
    50 bool NmApiEnvelopeListingPrivate::initializeEngine()
    66 qint32 NmApiEnvelopeListingPrivate::listEnvelopes()
    51 {
    67 {
    52     NM_FUNCTION;
    68     NM_FUNCTION;
    53     
    69     mIsRunning = true;
    54     mEngine = NmApiEngine::instance();
    70     mEnvelopes.clear();
    55     return mEngine ? true : false;
    71     mEngine->listEnvelopes(mMailboxId, mFolderId, mEnvelopes);
       
    72     return mEnvelopes.count();
    56 }
    73 }
    57 
       
    58 /*!
    74 /*!
    59    \brief It release engine for email operations.
    75    \brief Return info if listing is running
    60    
       
    61    \sa initializeEngine
       
    62  */
    76  */
    63 void NmApiEnvelopeListingPrivate::releaseEngine()
    77 bool NmApiEnvelopeListingPrivate::isRunning() const
    64 {
    78 {
    65     NM_FUNCTION;
    79     return mIsRunning;
    66     
       
    67     NmApiEngine::releaseInstance(mEngine);
       
    68 }
    80 }
    69 
       
    70 /*!
    81 /*!
    71    \brief It grab envelopes from engine. 
    82    \brief Clears list of envelopes.
    72    
       
    73    When it start grabing, it release all old.
       
    74    Because it uses NmApiMessageEnvelope with sharedData we don't need care about release memory.
       
    75    
       
    76    \return Count of envelopes or "-1" if there is no engine initialised
       
    77  */
    83  */
    78 qint32 NmApiEnvelopeListingPrivate::grabEnvelopes()
    84 void NmApiEnvelopeListingPrivate::cancel() 
    79 {
    85 {
    80     NM_FUNCTION;
    86     mIsRunning = false;
    81     
       
    82     if(!mEngine){
       
    83         return -1;
       
    84     }
       
    85     
       
    86     mEnvelopes.clear();
    87     mEnvelopes.clear();
    87     mEngine->listEnvelopes(mailboxId, folderId, mEnvelopes);
       
    88     return mEnvelopes.count();
       
    89 }
    88 }
    90 }
    89 }
    91 
    90