File indexing completed on 2024-04-14 15:27:19

0001 /*
0002     kmime_newsarticle.h
0003 
0004     KMime, the KDE Internet mail/usenet news message library.
0005     SPDX-FileCopyrightText: 2001 the KMime authors.
0006     See file AUTHORS for details
0007 
0008     SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010 #pragma once
0011 
0012 #include "kmime_export.h"
0013 #include "kmime_message.h"
0014 
0015 #include <QSharedPointer>
0016 
0017 namespace KMime
0018 {
0019 
0020 /** NNTP news article. */
0021 class KMIME_EXPORT NewsArticle : public Message
0022 {
0023 public:
0024     /**
0025       A shared pointer to a news article.
0026     */
0027     typedef QSharedPointer<NewsArticle> Ptr;
0028 
0029     ///@cond PRIVATE
0030     // needed for Akonadi polymorphic payload support
0031     typedef Message SuperClass;
0032     ///@endcond
0033 
0034     /**
0035       Creates a NewsArticle object.
0036     */
0037     NewsArticle();
0038 
0039     /**
0040       Destroys this NewsArticle.
0041     */
0042     ~NewsArticle() override;
0043 
0044     /**
0045       Returns the Control header.
0046       @param create If true, create the header if it doesn't exist yet.
0047     */
0048     KMime::Headers::Control *control(bool create = true);
0049 
0050     /**
0051       Returns the Supersedes header.
0052       @param create If true, create the header if it doesn't exist yet.
0053     */
0054     KMime::Headers::Supersedes *supersedes(bool create = true);
0055 
0056     /**
0057       Returns the Mail-Copies-To header.
0058       @param create If true, create the header if it doesn't exist yet.
0059     */
0060     KMime::Headers::MailCopiesTo *mailCopiesTo(bool create = true);
0061 
0062     /**
0063       Returns the Newsgroups header.
0064       @param create If true, create the header if it doesn't exist yet.
0065     */
0066     KMime::Headers::Newsgroups *newsgroups(bool create = true);
0067 
0068     /**
0069       Returns the Follow-Up-To header.
0070       @param create If true, create the header if it doesn't exist yet.
0071     */
0072     KMime::Headers::FollowUpTo *followUpTo(bool create = true);
0073 
0074     /**
0075       Returns the Lines header.
0076       @param create If true, create the header if it doesn't exist yet.
0077     */
0078     KMime::Headers::Lines *lines(bool create = true);
0079 
0080 protected:
0081     QByteArray assembleHeaders() override;
0082 }; // class NewsArticle
0083 
0084 } // namespace KMime
0085