email_plat/nmail_client_api/nmapimessageenvelope.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:23:15 +0300
changeset 20 ecc8def7944a
parent 18 578830873419
child 23 2dc6caa42ec3
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:
 *
 */

#ifndef NMAPIMESSAGEENVELOPEINFO_H
#define NMAPIMESSAGEENVELOPEINFO_H

#include <QString>
#include <QDateTime>
#include <QExplicitlySharedDataPointer>

#include "nmenginedef.h"
#include "nmapiemailaddress.h"
#include "nmapimessagebody.h"

namespace EmailClientApi
{
class NmMessageEnvelopePrivate : public QSharedData
{
public:
    NmMessageEnvelopePrivate();
    virtual ~NmMessageEnvelopePrivate();

    bool read;
    bool attachments;
    bool forwarded;
    bool replied;

    QList<EmailClientApi::NmEmailAddress> ccRecipients;
    QList<EmailClientApi::NmEmailAddress> toRecipients;

    quint64 id;
    quint64 parentFolder;

    QString contentType;
    QString subject;
    QString sender;

    QString plainText;
    quint64 totalSize;
    quint64 fetchedSize;

    QDateTime sentTime;
};

// read-only envelope
class NMENGINE_EXPORT NmMessageEnvelope
{
public:
    /*
     * constructor for nmmessageenvelope
     */
    NmMessageEnvelope();
    /*
     * destructor for nmmessageenvelope
     */
    virtual ~NmMessageEnvelope();
    NmMessageEnvelope &operator=(const NmMessageEnvelope &envelope);

    /*!        
     * getter for id
     */
    quint64 id() const;

    /*
     * getter for id of parent folder
     */
    quint64 parentFolder() const;

    /*
     * getter for subject
     */
    QString subject() const;

    /*
     * getter for sender
     */
    QString sender() const;

    /*
     * getter for to recipients
     */
    void getToRecipients( QList<EmailClientApi::NmEmailAddress> &toRecipients );

    /*
     * getter for cc recipients
     */
    void getCcRecipients( QList<EmailClientApi::NmEmailAddress> &ccRecipients );

    /*
     * getter for sent time
     */
    QDateTime sentTime() const;

    /*
     * getter for is read flag
     */
    bool isRead() const;

    /*
     * getter for has attachments flag
     */
    bool hasAttachments() const;

    /*
     * getter for is forwarded flag
     */
    bool isForwarded() const;

    /*
     * getter for is replied flag
     */
    bool isReplied() const;

    /*
     * getter for content type
     */
    QString contentType() const;

    /*
     * getter for plaintext body
     */
    void getPlainTextBody( EmailClientApi::NmMessageBody &body );

    /*
     * getter for plaintext body
     */
    QString plainText() const;

    /*
     * getter for messages fetched size 
     */
    quint64 totalSize() const;

    /*
     * getter for messages fetched size 
     */
    quint64 fetchedSize() const;

    /*
     * setter for id 
     */
    void setId(quint64 id);

    /*
     * setter for parent folder 
     */
    void setParentFolder(quint64 parentFolder);

    /*
     * setter for subject 
     */
    void setSubject(const QString& subject);

    /*
     * setter for sender  
     */
    void setSender(const QString& sender);

    /*
     * setter for to recipients 
     */
    void setToRecipients(const QList<EmailClientApi::NmEmailAddress>& toRecipients);

    /*
     * setter for cc recipients 
     */
    void setCcRecipients(const QList<EmailClientApi::NmEmailAddress> &ccRecipients);

    /*
     * setter for sent time 
     */
    void setSentTime(QDateTime sentTime);

    /*
     * setter for is read flag
     */
    void setIsRead(bool isRead);

    /*
     * setter for has attachments flag 
     */
    void setHasAttachments(bool hasAttachments);

    /*
     * setter for is forwarded flag 
     */
    void setIsForwarded(bool isForwarded);

    /*
     * setter for is replied flag 
     */
    void setIsReplied(bool isReplied);

    /*
     * setter for content type 
     */
    void setContentType(const QString &contentType);

    /*
     * getter for messages plain text 
     */
    void setPlainText(const QString &plainText);

    /*
     * getter for messages fetched size 
     */
    void setTotalSize(quint64 totalSize);

    /*
     * getter for messages fetched size 
     */
    void setFetchedSize(quint64 fetchedSize);

private:
    QExplicitlySharedDataPointer<NmMessageEnvelopePrivate> d;
};
}
#endif