kmime_message.h

00001 /*
00002     kmime_message.h
00003 
00004     KMime, the KDE Internet mail/usenet news message library.
00005     Copyright (c) 2001 the KMime authors.
00006     See file AUTHORS for details
00007 
00008     This library is free software; you can redistribute it and/or
00009     modify it under the terms of the GNU Library General Public
00010     License as published by the Free Software Foundation; either
00011     version 2 of the License, or (at your option) any later version.
00012 
00013     This library is distributed in the hope that it will be useful,
00014     but WITHOUT ANY WARRANTY; without even the implied warranty of
00015     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016     Library General Public License for more details.
00017 
00018     You should have received a copy of the GNU Library General Public License
00019     along with this library; see the file COPYING.LIB.  If not, write to
00020     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00021     Boston, MA 02110-1301, USA.
00022 */
00023 #ifndef __KMIME_MESSAGE_H__
00024 #define __KMIME_MESSAGE_H__
00025 
00026 #include "kmime_export.h"
00027 #include "kmime_content.h"
00028 #include "kmime_headers.h"
00029 #include "boolflags.h"
00030 
00031 namespace boost {
00032   template <typename T> class shared_ptr;
00033 }
00034 
00035 namespace KMime {
00036 
00037 class MessagePrivate;
00038 
00079 class KMIME_EXPORT Message : public Content
00080 {
00081   public:
00085     typedef QList<KMime::Message*> List;
00086 
00090     typedef boost::shared_ptr<Message> Ptr;
00091 
00095     Message();
00096 
00100     ~Message();
00101 
00102     /* reimpl */
00103     virtual void parse();
00104 
00105     /* reimpl */
00106     virtual void clear();
00107 
00108     /* reimpl */
00109     virtual KDE_DEPRECATED KMime::Headers::Base *getHeaderByType( const char *type );
00110 
00111     /* reimpl */
00112     virtual KMime::Headers::Base *headerByType( const char *type );
00113 
00114     /* reimpl */
00115     virtual void setHeader( KMime::Headers::Base *h );
00116 
00117     /* reimpl */
00118     virtual bool removeHeader( const char *type );
00119 
00120     // KDE5: Why are these virtual?
00125     virtual KMime::Headers::MessageID *messageID( bool create = true );
00126 
00131     virtual KMime::Headers::Subject *subject( bool create = true );
00132 
00137     virtual KMime::Headers::Date *date( bool create = true );
00138 
00143     virtual KMime::Headers::From *from( bool create = true );
00144 
00149     virtual KMime::Headers::Organization *organization( bool create = true );
00150 
00155     virtual KMime::Headers::ReplyTo *replyTo( bool create = true );
00156 
00161     virtual KMime::Headers::To *to( bool create = true );
00162 
00167     virtual KMime::Headers::Cc *cc( bool create = true );
00168 
00173     virtual KMime::Headers::Bcc *bcc( bool create = true );
00174 
00179     virtual KMime::Headers::References *references( bool create = true );
00180 
00185     virtual KMime::Headers::UserAgent *userAgent( bool create = true );
00186 
00191     virtual KMime::Headers::InReplyTo *inReplyTo( bool create = true );
00192 
00197     virtual KMime::Headers::Sender *sender( bool create = true );
00198 
00199     /* reimpl */
00200     virtual bool isTopLevel() const;
00201 
00211     Content* mainBodyPart( const QByteArray &type = QByteArray() );
00212 
00216     static QString mimeType();
00217 
00218   protected:
00219     /* reimpl */
00220     virtual QByteArray assembleHeaders();
00221 
00222     // @cond PRIVATE
00223     explicit Message( MessagePrivate *d );
00224     // @endcond
00225 
00226   private:
00227     Q_DECLARE_PRIVATE( Message )
00228 
00229 }; // class Message
00230 
00231 } // namespace KMime
00232 
00233 #endif // __KMIME_MESSAGE_H__
KDE Home | KDE Accessibility Home | Description of Access Keys