kabc Library: vcard21parser.h Source File (kabc Library)

| # kabc Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# vcard21parser.h

    00001 /*
    00002     This file is part of libkabc.
    00003
    00004     Copyright (c) 2002 Mark Westcott <mark@houseoffish.org>
    00005     Copyright (c) 2000 George Staikos <staikos@kde.org>
    00006     This library is free software; you can redistribute it and/or
    00007     modify it under the terms of the GNU Library General Public
    00008     License as published by the Free Software Foundation; either
    00009     version 2 of the License, or (at your option) any later version.
    00010
    00011     This library is distributed in the hope that it will be useful,
    00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014     Library General Public License for more details.
    00015
    00016     You should have received a copy of the GNU Library General Public License
    00017     along with this library; see the file COPYING.LIB.  If not, write to
    00018     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00019     Boston, MA 02111-1307, USA.
    00020 */
    00021
    00022 #ifndef KABC_VCARD21FORMAT_H
    00023 #define KABC_VCARD21FORMAT_H
    00024
    00025 #include <qdatetime.h>
    00026 #include <kdebug.h>
    00027 #include <qregexp.h>
    00028 #include <qstring.h>
    00029 #include <kurl.h>
    00030 #include <qvaluelist.h>
    00031
    00032 #include "addressee.h"
    00033 #include "addressbook.h"
    00034 #include "phonenumber.h"
    00035
    00036
    00037 #define VCARD_BEGIN          "begin:vcard"
    00038 #define VCARD_END            "end:vcard"
    00039 #define VCARD_BEGIN_N        "begin"
    00040 #define VCARD_END_N          "end"
    00041 #define VCARD_VERSION        "version"
    00042
    00043 #define VCARD_FN             "fn"
    00044 #define VCARD_N              "n"
    00045
    00046 // optional
    00047 #define VCARD_NAME           "name"
    00048 #define VCARD_NICKNAME       "nickname"
    00049 #define VCARD_PHOTO          "photo"
    00050 #define VCARD_BDAY           "bday"
    00051 #define VCARD_ADR            "adr"
    00052
    00053 // types
    00054 #define VCARD_ADR_DOM      "dom"
    00055 #define VCARD_ADR_INTL     "intl"
    00056 #define VCARD_ADR_POSTAL   "postal"
    00057 #define VCARD_ADR_PARCEL   "parcel"
    00058 #define VCARD_ADR_HOME     "home"
    00059 #define VCARD_ADR_WORK     "work"
    00060 #define VCARD_ADR_PREF     "pref"
    00061 // values
    00062 #define VCARD_ADR_POBOX    "PO Box"
    00063 #define VCARD_ADR_EXTADR   "Extended Address"
    00064 #define VCARD_ADR_STREET   "Street"
    00065 #define VCARD_ADR_LOCALITY "Locality"
    00066 #define VCARD_ADR_REGION   "Region"
    00067 #define VCARD_ADR_POSTCODE "Postal Code"
    00068 #define VCARD_ADR_COUNTRY  "Country Name"
    00069 #define VCARD_LABEL          "label"
    00070 #define VCARD_PROFILE        "profile"
    00071 #define VCARD_SOURCE         "source"
    00072 #define VCARD_TEL            "tel"
    00073 // types
    00074 #define VCARD_TEL_HOME     "home"
    00075 #define VCARD_TEL_WORK     "work"
    00076 #define VCARD_TEL_PREF     "pref"
    00077 #define VCARD_TEL_VOICE    "voice"
    00078 #define VCARD_TEL_FAX      "fax"
    00079 #define VCARD_TEL_MSG      "msg"
    00080 #define VCARD_TEL_CELL     "cell"
    00081 #define VCARD_TEL_PAGER    "pager"
    00082 #define VCARD_TEL_BBS      "bbs"
    00083 #define VCARD_TEL_MODEM    "modem"
    00084 #define VCARD_TEL_CAR      "car"
    00085 #define VCARD_TEL_ISDN     "isdn"
    00086 #define VCARD_TEL_VIDEO    "video"
    00087 #define VCARD_TEL_PCS      "pcs"
    00088 #define VCARD_EMAIL        "email"
    00089 // types
    00090 #define VCARD_EMAIL_PREF    "pref"
    00091 #define VCARD_EMAIL_INTERNET "internet"
    00092 #define VCARD_EMAIL_X400   "x400"
    00093 #define VCARD_TZ             "tz"
    00094 #define VCARD_GEO            "geo"
    00095 #define VCARD_MAILER         "mailer"
    00096 #define VCARD_TITLE          "title"
    00097 #define VCARD_ROLE           "role"
    00098 #define VCARD_LOGO           "logo"
    00099 #define VCARD_AGENT          "agent"
    00100 #define VCARD_ORG            "org"
    00101 #define VCARD_CATEGORIES     "categories"
    00102 #define VCARD_NOTE           "note"
    00103 #define VCARD_PRODID         "prodid"
    00104 #define VCARD_REV            "rev"
    00105 #define VCARD_SOUND          "sound"
    00106 #define VCARD_UID            "uid"
    00107 #define VCARD_URL            "url"
    00108 #define VCARD_CLASS          "class"
    00109 #define VCARD_CLASS_PUBLIC "public"
    00110 #define VCARD_CLASS_PRIVATE "private"
    00111 #define VCARD_CLASS_CONFIDENTIAL "confidential"
    00112 #define VCARD_KEY            "key"
    00113 // types
    00114 #define VCARD_KEY_X509     "x509"
    00115 #define VCARD_KEY_PGP      "pgp"
    00116
    00117 #define VCARD_QUOTED_PRINTABLE "quoted-printable"
    00118 // this one is a temporary hack until we support TYPE=VALUE
    00119 #define VCARD_ENCODING_QUOTED_PRINTABLE "encoding=quoted-printable"
    00120 #define VCARD_BASE64           "base64"
    00121
    00122 #define VC_STATE_BEGIN          1
    00123 #define VC_STATE_BODY           2
    00124 #define VC_STATE_END            4
    00125 #define VC_STATE_HAVE_N         8
    00126 #define VC_STATE_HAVE_VERSION  16
    00127
    00128 #define VC_ERR_NO_BEGIN            1
    00129 #define VC_ERR_NO_END              2
    00130 #define VC_ERR_INVALID_LINE        3
    00131 #define VC_ERR_INTERNAL            4
    00132 #define VC_ERR_INVALID_NAME        5
    00133 #define VC_ERR_MISSING_MANDATORY   6
    00134
    00135 namespace KABC {
    00136
    00137 class AddressBook;
    00138
    00142 class KABC_EXPORT_DEPRECATED VCard21Parser
    00143 {
    00144 public:
    00145
    00149   VCard21Parser();
    00150
    00154   virtual ~VCard21Parser();
    00155
    00163   void readFromString( KABC::AddressBook *ab, const QString &str );
    00164
    00173   KABC::Addressee readFromString( const QString &data);
    00174
    00181   static KABC::Address readAddressFromQStringList (const QStringList &data, const int type);
    00182 };
    00183
    00184 }
    00185
    00189 class KABC_EXPORT VCardLineX
    00190 {
    00191 public:
    00192   QString name;
    00193   bool qualified;
    00194   QValueList<QString> qualifiers;
    00195   QValueList<QString> parameters;
    00196   bool isValid() const;
    00197 };
    00198
    00202 class KABC_EXPORT VCard21ParserImpl
    00203 {
    00204   friend class VCardLineX;
    00205
    00206 public:
    00207   VCard21ParserImpl() {  };
    00208   virtual ~VCard21ParserImpl() {  };
    00209   static VCard21ParserImpl *parseVCard(const QString& vc, int *err = NULL);
    00210   QString getValue(const QString& name, const QString& qualifier);
    00211   QString getValue(const QString& name);
    00212   QStringList getValues(const QString& name, const QString& qualifier);
    00213   QStringList getValues(const QString& name);
    00214
    00215   QValueList<VCardLineX> *_vcdata;
    00216
    00217 private:
    00218   VCard21ParserImpl (QValueList<VCardLineX> *_vcd);
    00219 };
    00220
    00221 #endif

This file is part of the documentation for kabc Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:31:32 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003