File indexing completed on 2022-11-23 12:03:44

0001 /*
0002     SPDX-FileCopyrightText: 2007 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 //@cond PRIVATE
0010 
0011 #include <QSharedPointer>
0012 
0013 namespace KMime
0014 {
0015 class Message;
0016 using MessagePtr = QSharedPointer<Message>;
0017 }
0018 
0019 namespace KMime
0020 {
0021 
0022 class ContentPrivate
0023 {
0024 public:
0025     explicit ContentPrivate() :
0026         frozen(false)
0027     {
0028     }
0029 
0030     ~ContentPrivate()
0031     {
0032         qDeleteAll(multipartContents);
0033         multipartContents.clear();
0034     }
0035 
0036     bool parseUuencoded(Content *q);
0037     bool parseYenc(Content *q);
0038     bool parseMultipart(Content *q);
0039     void clearBodyMessage();
0040 
0041     bool decodeText(Content *q);
0042 
0043     // This one returns the normal multipartContents for multipart contents, but returns
0044     // a list with just bodyAsMessage in it for contents that are encapsulated messages.
0045     // That makes it possible to handle encapsulated messages in a transparent way.
0046     QVector<Content*> contents() const;
0047 
0048     QByteArray head;
0049     QByteArray body;
0050     QByteArray frozenBody;
0051     QByteArray preamble;
0052     QByteArray epilogue;
0053     Content *parent = nullptr;
0054 
0055     QVector<Content*> multipartContents;
0056     MessagePtr bodyAsMessage;
0057 
0058     QVector<Headers::Base*> headers;
0059 
0060     bool frozen : 1;
0061 };
0062 
0063 }
0064 
0065 //@endcond
0066