home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / kabc / vcard.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-10-10  |  2.1 KB  |  92 lines

  1. /*
  2.     This file is part of libkabc.
  3.     Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
  4.  
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Library General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2 of the License, or (at your option) any later version.
  9.  
  10.     This library is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.     Library General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU Library General Public License
  16.     along with this library; see the file COPYING.LIB.  If not, write to
  17.     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  18.     Boston, MA 02110-1301, USA.
  19. */
  20.  
  21. #ifndef VCARDPARSER_VCARD_H
  22. #define VCARDPARSER_VCARD_H
  23.  
  24. #include "vcardline.h"
  25. #include <qmap.h>
  26. #include <qstringlist.h>
  27. #include <qvaluelist.h>
  28.  
  29. namespace KABC {
  30.  
  31. class VCard
  32. {
  33.   public:
  34.     typedef QValueList<VCard> List;
  35.     typedef QMap< QString, VCardLine::List > LineMap;
  36.  
  37.     enum Version { v2_1, v3_0 };
  38.  
  39.     VCard();
  40.     VCard( const VCard& );
  41.  
  42.     ~VCard();
  43.  
  44.     VCard& operator=( const VCard& );
  45.  
  46.     /**
  47.      * Removes all lines from the vCard.
  48.      */
  49.     void clear();
  50.  
  51.     /**
  52.      * Returns a list of all identifiers that exists in the
  53.      * vCard.
  54.      */
  55.     QStringList identifiers() const;
  56.  
  57.     /**
  58.      * Adds a VCardLine to the VCard
  59.      */
  60.     void addLine( const VCardLine& line );
  61.  
  62.     /**
  63.      * Returns all lines of the vcard with a special identifier.
  64.      */
  65.     VCardLine::List lines( const QString& identifier ) const;
  66.  
  67.     /**
  68.      * Returns only the first line of the vcard with a special identifier.
  69.      */
  70.     VCardLine line( const QString& identifier ) const;
  71.  
  72.     /**
  73.      * Set the version of the vCard.
  74.      */
  75.     void setVersion( Version version );
  76.  
  77.     /**
  78.      * Returns the version of this vCard.
  79.      */
  80.     Version version() const;
  81.  
  82.   private:
  83.     LineMap mLineMap;
  84.  
  85.     class VCardPrivate;
  86.     VCardPrivate *d;
  87. };
  88.  
  89. }
  90.  
  91. #endif
  92.