File indexing completed on 2024-06-16 05:00:16

0001 /*
0002     partnodebodypart.h
0003 
0004     This file is part of KMail, the KDE mail client.
0005     SPDX-FileCopyrightText: 2004 Marc Mutz <mutz@kde.org>
0006     SPDX-FileCopyrightText: 2004 Ingo Kloecker <kloecker@kde.org>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #pragma once
0012 
0013 #include "mimetreeparser/bodypart.h"
0014 #include "mimetreeparser_export.h"
0015 
0016 namespace KMime
0017 {
0018 class Content;
0019 }
0020 
0021 namespace MimeTreeParser
0022 {
0023 class NodeHelper;
0024 }
0025 
0026 namespace MimeTreeParser
0027 {
0028 /**
0029     @short an implementation of the BodyPart interface using KMime::Content's
0030 */
0031 class MIMETREEPARSER_EXPORT PartNodeBodyPart : public Interface::BodyPart
0032 {
0033 public:
0034     explicit PartNodeBodyPart(ObjectTreeParser *otp, ProcessResult *result, KMime::Content *topLevelContent, KMime::Content *content, NodeHelper *nodeHelper);
0035 
0036     Interface::BodyPartMemento *memento() const override;
0037     KMime::Content *content() const override;
0038     KMime::Content *topLevelContent() const override;
0039     ProcessResult *processResult() const override;
0040 
0041     NodeHelper *nodeHelper() const override;
0042     ObjectTreeParser *objectTreeParser() const override;
0043     Interface::ObjectTreeSource *source() const override;
0044 
0045 private:
0046     KMime::Content *const mTopLevelContent;
0047     KMime::Content *const mContent;
0048     NodeHelper *const mNodeHelper;
0049     ObjectTreeParser *const mObjectTreeParser;
0050     ProcessResult *const mProcessResult;
0051 };
0052 }