src/messaging/qmessagecontentcontainer.cpp
changeset 0 876b1a06bc25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/messaging/qmessagecontentcontainer.cpp	Wed Aug 25 15:49:42 2010 +0300
@@ -0,0 +1,260 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qmessagecontentcontainer.h"
+#ifdef Q_OS_SYMBIAN
+#include "qmessagecontentcontainer_symbian_p.h"
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+#include "qmessagecontentcontainer_maemo_p.h"
+#else
+#include "qmessagecontentcontainer_p.h"
+#endif
+
+QTM_BEGIN_NAMESPACE
+
+/*!
+    \class QMessageContentContainer
+
+    \brief The QMessageContentContainer class provides an interface for internet media (MIME) 
+    and Transport Neutral Encapsulation Format (TNEF) content that is possibly only 
+    partially retrieved.
+
+    \ingroup messaging
+
+    A QMessageContentContainer object can either directly contain media such as text, 
+    image, audio, video, application or message data, or contain multiple parts of content, 
+    but can not contain both media and multiple parts directly.
+    
+    Container objects can be obtained via their QMessageContentContainerId 
+    identifier, using the find() function of the containing QMessage object.
+    
+    For textual content using a recognized charset encoding textContent() will 
+    return the content as a unicode string.
+    
+    For non-multipart content content() will return the content data after decoding any 
+    transfer encoding used to represent binary data using 7-bit ASCII characters, such as 
+    quoted-printable and base64.
+    
+    The internet media (MIME) type of the container is returned by contentType(),
+    the content subtype is returned by contentSubType(), the content type charset parameter 
+    is returned by contentCharset(), and the content suggested filename by suggestedFileName(). 
+
+    The type of a container that contains multiple parts of content must be "multipart" (case 
+    insensitive).  A list of identifiers for directly contained parts of content is returned 
+    by contentIds().
+    
+    An indication of the size of the container and its contents on the originating server is 
+    given by size(). If the content is entirely available on the device 
+    isContentAvailable() will return true.
+
+    Non-multipart content can be serialized to a QDataStream using 
+    writeContentTo(), or to a QTextStream using writeTextContentTo().
+  
+    A container also stores name-value pairs known as header fields. Names are ASCII strings, 
+    while values are charset encoded unicode strings.  A list of the header fields present 
+    in a container is returned by headerFields(). The unicode string values associated 
+    with a particular header field name are returned by headerFieldValues().
+
+    \sa QMessage, QMessageContentContainerId
+*/
+
+/*!
+    \fn QMessageContentContainer::QMessageContentContainer()
+    
+    Constructs an empty container object.
+*/
+
+/*!
+    \fn QMessageContentContainer::QMessageContentContainer(const QMessageContentContainer &other)
+
+    Constructs a copy of \a other.
+*/
+
+/*!
+    \internal
+    \fn QMessageContentContainer::operator=(const QMessageContentContainer& other)
+*/
+
+/*!
+    \fn QMessageContentContainer::~QMessageContentContainer()
+    
+    Destroys the container object.
+*/
+
+/*!
+    \fn QMessageContentContainer::contentType() const
+    
+    Returns the content type of the container. Common types are "text", "image", "audio", 
+    "video", "application", "message" and "multipart".
+
+    The internet media (MIME) type of the container is "multipart" if the container directly 
+    contains multiple parts rather than directly contains media.
+
+    \sa contentSubType(), contentCharset()
+*/
+
+/*!
+    \fn QMessageContentContainer::contentSubType() const
+    
+    Returns the internet media (MIME) subtype of the content.
+
+    \sa contentType(), contentCharset()
+*/
+
+/*!
+    \fn QMessageContentContainer::contentCharset() const
+    
+    Returns the internet media (MIME) content charset, when defined; 
+    otherwise an empty array is returned.
+
+    \sa contentType(), contentSubType()
+*/
+
+/*!
+    \fn QMessageContentContainer::suggestedFileName() const
+    
+    Returns the suggested filename for the attachment, when defined;
+    otherwise an empty array is returned.
+
+    The default is an empty array.
+*/
+
+/*!
+    \fn QMessageContentContainer::isContentAvailable() const
+    
+    Returns true if the entirety of the content contained is available on the device; 
+    otherwise returns false.
+*/
+
+/*!
+    \fn QMessageContentContainer::size() const
+    
+    If the size of the container is known then returns an indication of the size of the container 
+    on the originating server, including contents; otherwise returns 0.
+*/
+
+/*!
+    \fn QMessageContentContainer::textContent() const
+    
+    For textual content encoded with a recognized charset, returns the content as a unicode string; 
+    otherwise a null string is returned.
+*/
+
+/*!
+    \fn QMessageContentContainer::content() const
+    
+    Return the content after decoding any transfer encoding used to represent binary data 
+    using 7-bit ASCII characters, such as quoted-printable and base64.
+  
+    For textual content any text charset encoding such as Shift-JIS, ISO 2022-JP, KOI8-R, 
+    Windows-1251 etc will not be decoded.
+
+    \sa textContent()
+*/
+
+/*!
+    \fn QMessageContentContainer::writeTextContent(QTextStream& out) const
+    
+    For a non-multipart container, writes the content as returned by textContent() 
+    to the stream \a out; otherwise does nothing.
+*/
+
+/*!
+    \fn QMessageContentContainer::writeContent(QDataStream& out) const
+    
+    For a non-multipart container, writes the content as returned by content() 
+    to the stream \a out; otherwise does nothing.
+*/
+
+/*!
+    \fn QMessageContentContainer::contentIds() const
+    
+    For a multipart container returns a list of identifiers for all content directly contained by 
+    the container; otherwise returns an empty list.
+
+    \sa find(), contains()
+*/
+
+/*!
+    \fn QMessageContentContainer::find(const QMessageContentContainerId &id) const
+    
+    If the container contains another container with identifier \a id either directly or 
+    recursively, then returns the value of that other container; otherwise returns an 
+    empty container constructed with the default constructor.
+
+    \sa contains(), contentIds()
+*/
+
+/*!
+    \fn bool QMessageContentContainer::contains(const QMessageContentContainerId &id) const;
+    
+    If the container contains content with the identifier \a id, either directly or recursively 
+    then returns true; otherwise returns false.
+
+    \sa find(), contentIds()
+*/
+
+/*!
+    \fn QMessageContentContainer::headerFieldValue(const QByteArray &name) const
+    
+    Returns the value of the first header field of the container with the name \a name, if any;
+    otherwise returns a null string.
+
+    \sa headerFields(), headerFieldValues()
+*/
+
+/*!
+    \fn QMessageContentContainer::headerFieldValues(const QByteArray &name) const
+    
+    Returns a list of values of header fields with the name \a name, if any;
+    otherwise returns an empty list.
+
+    \sa headerFields(), headerFieldValue()
+*/
+
+/*!
+    \fn QMessageContentContainer::headerFields() const
+    
+    Returns a list of names of header fields of the container.
+
+    \sa headerFieldValue(), headerFieldValues()
+*/
+
+QTM_END_NAMESPACE