emailservices/nmclientapi/src/nmapifolderlisting_p.cpp
changeset 49 00c7ae862740
parent 48 10eaf342f539
child 76 38bf5461e270
equal deleted inserted replaced
48:10eaf342f539 49:00c7ae862740
    22 {
    22 {
    23 
    23 
    24 /*!
    24 /*!
    25    Constructor form NmApiFolderListingPrivate
    25    Constructor form NmApiFolderListingPrivate
    26  */
    26  */
    27 NmApiFolderListingPrivate::NmApiFolderListingPrivate(QObject *parent) :
    27 NmApiFolderListingPrivate::NmApiFolderListingPrivate(quint64 mailboxId, QObject *parent) 
    28     QObject(parent), mEngine(NULL)
    28 :QObject(parent), 
       
    29 mMailboxId(mailboxId),
       
    30 mEngine(NULL),
       
    31 mIsRunning(false)
    29 {
    32 {
    30     NM_FUNCTION;
    33     NM_FUNCTION;
       
    34     mEngine = NmApiEngine::instance();
       
    35     Q_CHECK_PTR(mEngine);
    31 }
    36 }
    32 
    37 
    33 /*!
    38 /*!
    34    Destructor for NmApiFolderListingPrivate 
    39    Destructor for NmApiFolderListingPrivate 
    35  */
    40  */
    36 NmApiFolderListingPrivate::~NmApiFolderListingPrivate()
    41 NmApiFolderListingPrivate::~NmApiFolderListingPrivate()
    37 {
    42 {
    38     NM_FUNCTION;
    43     NM_FUNCTION;
    39     
       
    40     releaseEngine();
       
    41 }
       
    42 
       
    43 /*!
       
    44    \brief It initialize engine for email operations. 
       
    45    
       
    46    When use initializeEngine need to remember release it.
       
    47    It return value if initialization go good.
       
    48    \sa releaseEngine 
       
    49  */
       
    50 bool NmApiFolderListingPrivate::initializeEngine()
       
    51 {
       
    52     NM_FUNCTION;
       
    53     
       
    54     if (!mEngine) {
       
    55         mEngine = NmApiEngine::instance();
       
    56     }
       
    57 
       
    58     return mEngine ? true : false;
       
    59 }
       
    60 
       
    61 /*!
       
    62    \brief It release engine for email operations.
       
    63    
       
    64    \sa initializeEngine
       
    65  */
       
    66 void NmApiFolderListingPrivate::releaseEngine()
       
    67 {
       
    68     NM_FUNCTION;
       
    69     
       
    70     NmApiEngine::releaseInstance(mEngine);
    44     NmApiEngine::releaseInstance(mEngine);
    71 }
    45 }
    72 
    46 
    73 /*!
    47 /*!
    74    \brief It grab folders from engine. 
    48    \brief Fetch folders from engine. 
    75    
    49    
    76    When it start grabing, it release all old.
       
    77    Because it uses NmFolder with sharedData we don't need care about release memory.
    50    Because it uses NmFolder with sharedData we don't need care about release memory.
    78    
    51    
    79    \return Count of folders or "-1" if there is no engine initialised
    52    \return Count of folders
    80  */
    53  */
    81 qint32 NmApiFolderListingPrivate::grabFolders()
    54 qint32 NmApiFolderListingPrivate::listFolders()
    82 {
    55 {
    83     NM_FUNCTION;
    56     NM_FUNCTION;
    84     
    57     mIsRunning = true;
    85     if (!mEngine) {
       
    86         return -1;
       
    87     }
       
    88     
       
    89     mFolders.clear();
    58     mFolders.clear();
    90     mEngine->listFolders(mMailboxId, mFolders);
    59     mEngine->listFolders(mMailboxId, mFolders);
    91     return mFolders.count();
    60     return mFolders.count();
    92 }
    61 }
    93 
    62 
       
    63 /*! 
       
    64    \brief Returns results after listFolders is called.
       
    65    
       
    66     Caller gets ownership of messages. Returns true if results were available.
       
    67     It clears list of folders after be called.
       
    68     It also at start clear inputlist of NmFolder.
       
    69  */
       
    70 bool NmApiFolderListingPrivate::folders(QList<EmailClientApi::NmApiFolder> &folders)
       
    71 {
       
    72     NM_FUNCTION;
       
    73     bool ret(mIsRunning);
       
    74     folders.clear();
       
    75     while (!mFolders.isEmpty()) {
       
    76         folders << mFolders.takeFirst();
       
    77     }
       
    78     mIsRunning = false;
       
    79     return ret;
    94 }
    80 }
    95 
    81 
       
    82 /*!
       
    83    \brief Return info if listing is running
       
    84  */
       
    85 bool NmApiFolderListingPrivate::isRunning() const
       
    86 {
       
    87     NM_FUNCTION;
       
    88     return mIsRunning;
       
    89 }
       
    90 /*!
       
    91    \brief Clears list of folders.
       
    92  */
       
    93 void NmApiFolderListingPrivate::cancel() 
       
    94 {
       
    95     mIsRunning = false;
       
    96     mFolders.clear();
       
    97 }
       
    98 }
       
    99