• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepimlibs API Reference
  • KDE Home
  • Contact Us
 

kabc

  • sources
  • kde-4.12
  • kdepimlibs
  • kabc
  • plugins
  • file
resourcefile.h
1 /*
2  This file is part of libkabc.
3  Copyright (c) 2001 Cornelius Schumacher <schumacher@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 KABC_RESOURCEFILE_H
22 #define KABC_RESOURCEFILE_H
23 
24 #include "kabc_file_core_export.h"
25 
26 #include "kabc/resource.h"
27 
28 #include <kconfig.h>
29 #include <kdirwatch.h>
30 
31 #include <sys/types.h>
32 
33 class QFile;
34 class KTemporaryFile;
35 
36 class KJob;
37 
38 namespace KABC {
39 
40 class Format;
41 class Lock;
42 
46 class KABC_FILE_CORE_EXPORT ResourceFile : public Resource
47 {
48  Q_OBJECT
49 
50  public:
54  ResourceFile();
60  explicit ResourceFile( const KConfigGroup &group );
61 
68  explicit ResourceFile( const QString &fileName,
69  const QString &formatName = QLatin1String( "vcard" ) );
70 
74  ~ResourceFile();
75 
79  virtual void writeConfig( KConfigGroup &group );
80 
85  virtual bool doOpen();
86 
90  virtual void doClose();
91 
95  virtual Ticket *requestSaveTicket();
96 
97  virtual void releaseSaveTicket( Ticket *ticket );
98 
103  virtual bool load();
104 
105  virtual bool asyncLoad();
106 
113  virtual bool save( Ticket *ticket );
114 
115  virtual bool asyncSave( Ticket *ticket );
116 
120  void setFileName( const QString & );
121 
125  QString fileName() const;
126 
130  void setFormat( const QString &name );
131 
135  QString format() const;
136 
145  virtual void removeAddressee( const Addressee &addr );
146 
147  private Q_SLOTS:
148  void emitLoadingFinished();
149  void emitSavingFinished();
150 
151  protected Q_SLOTS:
152  void fileChanged( const QString &path );
153 
154  protected:
155  void init( const QString &fileName, const QString &format );
156 
157  bool lock( const QString &fileName );
158  void unlock( const QString &fileName );
159 
160  private:
161  bool clearAndLoad( QFile *file );
162  void saveToFile( QFile *file );
163  bool createLocalTempFile();
164  void deleteLocalTempFile();
165  void deleteStaleTempFile();
166  bool hasTempFile() const { return mTempFile != 0; }
167  bool loadDistributionLists();
168  void saveDistributionLists();
169 
170  QString mFileName;
171  QString mFormatName;
172 
173  Format *mFormat;
174 
175  Lock *mLock;
176 
177  KDirWatch mDirWatch;
178 
179  KTemporaryFile *mTempFile;
180 
181  bool mAsynchronous;
182 
183  class ResourceFilePrivate;
184  ResourceFilePrivate *d;
185 };
186 
187 }
188 
189 #endif
KABC::Lock
This class provides locking functionality for a file, directory or an arbitrary string-represented re...
Definition: lock.h:34
KABC::Ticket
Helper class for handling coordinated save of address books.
Definition: resource.h:37
KABC::Addressee
address book entry
Definition: addressee.h:74
KABC::Resource
Definition: resource.h:64
KABC::ResourceFile
This resource allows access to a local file.
Definition: resourcefile.h:46
KABC::Format
Base class for address book formats.
Definition: format.h:42
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:01:05 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kabc

Skip menu "kabc"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Related Pages

kdepimlibs API Reference

Skip menu "kdepimlibs API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kldap
  • kmbox
  • kmime
  • kpimidentities
  • kpimtextedit
  • kresources
  • ktnef
  • kxmlrpcclient
  • microblog

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal