Eneboo - Documentación para desarrolladores
|
00001 /* 00002 Copyright (C) 2001-2002 by theKompany.com <www.thekompany.com> 00003 This program is free software; you can redistribute it and/or modify 00004 it under the terms of the GNU General Public License as published by 00005 the Free Software Foundation; either version 2 of the License, or 00006 (at your option) any later version. 00007 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with this program; if not, write to the Free Software 00015 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00016 00017 By PLUGINS we mean the commercial plug-ins developed by theKompany.com 00018 for Aethera. 00019 00020 In addition, as a special exception, theKompany.com gives permission 00021 to link the code of this program with PLUGINS (or with 00022 modified versions of PLUGINS that use the same license as PLUGINS), 00023 and distribute linked combinations including the two. You must obey 00024 the GNU General Public License in all respects for all of the code used 00025 other than PLUGINS. If you modify this file, you may extend this 00026 exception to your version of the file, but you are not obligated to do so. 00027 If you do not wish to do so, delete this exception statement from your 00028 version. 00029 00030 This license grants you the ability to use PLUGINS with Aethera only 00031 and may not be used outside of Aethera. 00032 See also http://www.thekompany.com/products/license.txt for details. 00033 */ 00034 /* 00035 * This file is part of Magellan <http://www.kAlliance.org/Magellan> 00036 * 00037 * Copyright (c) 1998-2000 Teodor Mihai <teddy@ireland.com> 00038 * Copyright (c) 1998-2000 Laur Ivan <laur.ivan@ul.ie> 00039 * Copyright (c) 1999-2000 Virgil Palanciuc <vv@ulise.cs.pub.ro> 00040 * 00041 * Requires the Qt widget libraries, available at no cost at 00042 * http://www.troll.no/ 00043 * 00044 * Also requires the KDE libraries, available at no cost at 00045 * http://www.kde.org/ 00046 * 00047 * Permission is hereby granted, free of charge, to any person obtaining a copy 00048 * of this software and associated documentation files (the "Software"), to deal 00049 * in the Software without restriction, including without limitation the rights 00050 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00051 * copies of the Software, and to permit persons to whom the Software is 00052 * furnished to do so, subject to the following conditions: 00053 * 00054 * The above copyright notice and this permission notice shall be included in 00055 * all copies or substantial portions of the Software. 00056 * 00057 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00058 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00059 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00060 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00061 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00062 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 00063 * IN THE SOFTWARE. 00064 */ 00065 00066 #ifndef __MessageClass_H__ 00067 #define __MessageClass_H__ 00068 00069 #include <qstrlist.h> 00070 #include <qcstring.h> 00071 00072 #include <addressclass.h> 00073 #include <addresslistclass.h> 00074 #include <mimepart.h> 00075 #include <dateclass.h> 00076 00077 class HeaderClass; 00078 00079 class MessageClass 00080 { 00081 public: 00082 // constructors 00083 MessageClass(const QCString & c=""); 00084 MessageClass(const HeaderClass &h); 00085 virtual ~MessageClass(); 00086 00087 // overwrite the parsed info 00088 // warning: does not change the mimepart structure 00089 void importHeader(const HeaderClass &h); 00090 00091 // export a parsed header 00092 HeaderClass header(); 00093 00094 static void stripQuotes(QCString&); 00095 static void stripSpaces(QCString&); 00096 static void stripComments(QCString&); 00097 static void stripParanthesis(QCString&); 00098 static void split(QStrList&, char, const QCString&); 00099 static void chunk(QStrList&, const QCString&); 00100 00101 // fields 00102 AddressClass From, Reply_To; 00103 AddressListClass To, Cc, Bcc; 00104 QCString Subject, Message_ID, In_Reply_To, Organization, Status, Priority, Content_Type, 00105 Content_Transfer_Encoding; 00106 QStrList Received, References; 00107 DateClass Date; 00108 00109 // special fields 00110 QPtrList<MimePart> partList; 00111 bool digest; 00112 00113 private: 00114 00115 void parseHeader(const QCString &h); 00116 00117 QCString getPartHeader(const QCString &s, int offset, int length); 00118 00119 void processPart(const QCString &s, int offset, int length, bool related=false); 00120 }; 00121 00122 #endif