emailservices/nmclientapi/src/nmapimessagemanager_p.cpp
author hgs
Thu, 30 Sep 2010 11:43:07 +0300
changeset 74 6c59112cfd31
parent 68 83cc6bae1de8
child 76 38bf5461e270
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:
hgs
parents:
diff changeset
    15
 *     Email message related operations
hgs
parents:
diff changeset
    16
 */
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
    17
 
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
    18
#include "nmapiheaders.h"
47
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
namespace EmailClientApi
hgs
parents:
diff changeset
    22
{
hgs
parents:
diff changeset
    23
74
hgs
parents: 68
diff changeset
    24
/*!
hgs
parents: 68
diff changeset
    25
    Class constructor.
hgs
parents: 68
diff changeset
    26
*/
68
hgs
parents: 48
diff changeset
    27
NmApiMessageManagerPrivate::NmApiMessageManagerPrivate(QObject *parent,quint64 mailboxId)
47
hgs
parents:
diff changeset
    28
: QObject(parent),
74
hgs
parents: 68
diff changeset
    29
  mMailBoxId(0),
hgs
parents: 68
diff changeset
    30
  mMailBox(NULL),
hgs
parents: 68
diff changeset
    31
  mMailPlugin(NULL),
hgs
parents: 68
diff changeset
    32
  mEngine(NULL)
47
hgs
parents:
diff changeset
    33
{
74
hgs
parents: 68
diff changeset
    34
    NM_FUNCTION;
hgs
parents: 68
diff changeset
    35
    NmId mailBoxId(mailboxId);
hgs
parents: 68
diff changeset
    36
    mMailBoxId = TFSMailMsgId(mailBoxId);
hgs
parents: 68
diff changeset
    37
    mEngine = NmApiEngine::instance();
hgs
parents: 68
diff changeset
    38
    initialise();
47
hgs
parents:
diff changeset
    39
}
hgs
parents:
diff changeset
    40
74
hgs
parents: 68
diff changeset
    41
/*!
hgs
parents: 68
diff changeset
    42
    Class destructor.
hgs
parents: 68
diff changeset
    43
*/
47
hgs
parents:
diff changeset
    44
NmApiMessageManagerPrivate::~NmApiMessageManagerPrivate()
hgs
parents:
diff changeset
    45
{
hgs
parents:
diff changeset
    46
    NM_FUNCTION;
74
hgs
parents: 68
diff changeset
    47
    
hgs
parents: 68
diff changeset
    48
    if (mMailBox){
hgs
parents: 68
diff changeset
    49
        delete mMailBox;
hgs
parents: 68
diff changeset
    50
        mMailBox = NULL;
hgs
parents: 68
diff changeset
    51
    }
hgs
parents: 68
diff changeset
    52
    
hgs
parents: 68
diff changeset
    53
    NmApiEngine::releaseInstance(mEngine);
47
hgs
parents:
diff changeset
    54
}
74
hgs
parents: 68
diff changeset
    55
47
hgs
parents:
diff changeset
    56
/*!
74
hgs
parents: 68
diff changeset
    57
 \fn createDraftMessage 
hgs
parents: 68
diff changeset
    58
 \param initData Initializing data. Can contain NULL value.
hgs
parents: 68
diff changeset
    59
 \return Create draft message operation.
47
hgs
parents:
diff changeset
    60
 
74
hgs
parents: 68
diff changeset
    61
 Returns create draft message operation.
47
hgs
parents:
diff changeset
    62
 */
74
hgs
parents: 68
diff changeset
    63
QPointer<NmApiOperation> NmApiMessageManagerPrivate::createDraftMessage(const QVariant *initData)
47
hgs
parents:
diff changeset
    64
{
hgs
parents:
diff changeset
    65
    NM_FUNCTION;
74
hgs
parents: 68
diff changeset
    66
    if (mMailBox){
hgs
parents: 68
diff changeset
    67
        QPointer<NmApiOperation> operation = new NmApiOperationCreateDraftMessage(initData, *mMailBox, this);
hgs
parents: 68
diff changeset
    68
        return operation;
hgs
parents: 68
diff changeset
    69
    }
hgs
parents: 68
diff changeset
    70
    return NULL;
47
hgs
parents:
diff changeset
    71
}
74
hgs
parents: 68
diff changeset
    72
47
hgs
parents:
diff changeset
    73
/*!
74
hgs
parents: 68
diff changeset
    74
 \fn sendMessage 
hgs
parents: 68
diff changeset
    75
 \param message message to be sent.
hgs
parents: 68
diff changeset
    76
 \return Send message operation.
47
hgs
parents:
diff changeset
    77
 
74
hgs
parents: 68
diff changeset
    78
 Returns Send message operation.
47
hgs
parents:
diff changeset
    79
 */
74
hgs
parents: 68
diff changeset
    80
QPointer<NmApiOperation> NmApiMessageManagerPrivate::sendMessage(const NmApiMessage &message)
47
hgs
parents:
diff changeset
    81
{
hgs
parents:
diff changeset
    82
    NM_FUNCTION;
74
hgs
parents: 68
diff changeset
    83
    if (mMailBox){
hgs
parents: 68
diff changeset
    84
        QPointer<NmApiOperation> operation = new NmApiOperationSendMessage(message, *mMailBox, this);
hgs
parents: 68
diff changeset
    85
        return operation;
47
hgs
parents:
diff changeset
    86
    }
74
hgs
parents: 68
diff changeset
    87
    return NULL;
47
hgs
parents:
diff changeset
    88
}
74
hgs
parents: 68
diff changeset
    89
47
hgs
parents:
diff changeset
    90
/*!
74
hgs
parents: 68
diff changeset
    91
 \fn saveMessage 
hgs
parents: 68
diff changeset
    92
 \param message Message to be saved.
hgs
parents: 68
diff changeset
    93
 \return Save message operation.
hgs
parents: 68
diff changeset
    94
 
hgs
parents: 68
diff changeset
    95
 Saves email message. Returns save message operation. 
47
hgs
parents:
diff changeset
    96
 */
74
hgs
parents: 68
diff changeset
    97
QPointer<NmApiOperation> NmApiMessageManagerPrivate::saveMessage(const NmApiMessage &message)
hgs
parents: 68
diff changeset
    98
{
hgs
parents: 68
diff changeset
    99
    return NULL;
hgs
parents: 68
diff changeset
   100
}
hgs
parents: 68
diff changeset
   101
hgs
parents: 68
diff changeset
   102
/*!
hgs
parents: 68
diff changeset
   103
 \fn initialise
hgs
parents: 68
diff changeset
   104
 
hgs
parents: 68
diff changeset
   105
 Initializes mailbox and mailplugin.
hgs
parents: 68
diff changeset
   106
 */
hgs
parents: 68
diff changeset
   107
void NmApiMessageManagerPrivate::initialise()
hgs
parents: 68
diff changeset
   108
{
hgs
parents: 68
diff changeset
   109
    NM_FUNCTION;
hgs
parents: 68
diff changeset
   110
    RPointerArray<CFSMailPlugin> mailPlugins;
hgs
parents: 68
diff changeset
   111
    if (mEngine) {
hgs
parents: 68
diff changeset
   112
        mEngine->listMailPlugins(mailPlugins);
hgs
parents: 68
diff changeset
   113
    
hgs
parents: 68
diff changeset
   114
        for (int i = 0; i < mailPlugins.Count() && !mMailPlugin; i++){
hgs
parents: 68
diff changeset
   115
            if (mailPlugins[i]->Id() == mMailBoxId.PluginId()) {
hgs
parents: 68
diff changeset
   116
                mMailPlugin = mailPlugins[i];
47
hgs
parents:
diff changeset
   117
            }
hgs
parents:
diff changeset
   118
        }
74
hgs
parents: 68
diff changeset
   119
        
hgs
parents: 68
diff changeset
   120
        if (mMailPlugin) {
hgs
parents: 68
diff changeset
   121
            TRAPD(err, mMailBox = mMailPlugin->GetMailBoxByUidL(mMailBoxId));
hgs
parents: 68
diff changeset
   122
            Q_UNUSED(err);
hgs
parents: 68
diff changeset
   123
        }
hgs
parents: 68
diff changeset
   124
    }
47
hgs
parents:
diff changeset
   125
}
74
hgs
parents: 68
diff changeset
   126
47
hgs
parents:
diff changeset
   127
} //namespace
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129