mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 10:22:50 +00:00
196 lines
4.9 KiB
C++
196 lines
4.9 KiB
C++
/*
|
|
This file is part of kabc.
|
|
Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KABC_RESOURCECACHED_H
|
|
#define KABC_RESOURCECACHED_H
|
|
|
|
#include <kabc/kabc_export.h>
|
|
#include <kabc/resource.h>
|
|
|
|
#include <kresources/idmapper.h>
|
|
|
|
namespace KABC {
|
|
|
|
class KABC_DEPRECATED_EXPORT ResourceCached : public Resource
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ResourceCached();
|
|
ResourceCached( const KConfigGroup &group );
|
|
~ResourceCached();
|
|
|
|
/**
|
|
Writes the resource specific config to file.
|
|
|
|
@param group The config section to write into
|
|
*/
|
|
virtual void writeConfig( KConfigGroup &group );
|
|
|
|
/**
|
|
Insert an addressee into the resource.
|
|
|
|
@param addr The addressee to add
|
|
*/
|
|
virtual void insertAddressee( const Addressee &addr );
|
|
|
|
/**
|
|
Removes an addressee from resource.
|
|
|
|
@param addr The addressee to remove
|
|
*/
|
|
virtual void removeAddressee( const Addressee &addr );
|
|
|
|
/**
|
|
Loads the change cache from a file.
|
|
|
|
@return @c false if the file cannot be opened for reading,
|
|
otherwise @c true
|
|
|
|
@see cacheFile()
|
|
*/
|
|
bool loadFromCache();
|
|
|
|
/**
|
|
Saves the change cache to a file.
|
|
|
|
@see cacheFile()
|
|
*/
|
|
void saveToCache();
|
|
|
|
/**
|
|
Removes all entries from the cache that are not available in @p list
|
|
|
|
@param list The list of addressees to keep in the cache if cached
|
|
*/
|
|
void cleanUpCache( const KABC::Addressee::List &list );
|
|
|
|
/**
|
|
Returns a reference to the id mapper.
|
|
*/
|
|
KRES::IdMapper &idMapper();
|
|
|
|
/**
|
|
Returns whether there are any changes cached.
|
|
*/
|
|
bool hasChanges() const;
|
|
|
|
/**
|
|
Clears all cached changes.
|
|
*/
|
|
void clearChanges();
|
|
|
|
/**
|
|
Clears the change caches for a given addressee
|
|
|
|
Removes the identifier addressee from all three "type" caches.
|
|
|
|
@param addr The addressee to remove from the caches
|
|
*/
|
|
void clearChange( const KABC::Addressee &addr );
|
|
|
|
/**
|
|
Clears the change caches for a given @p uid
|
|
|
|
Removes the identifier addressee from all three "type" caches.
|
|
|
|
@param uid The unique identifier of an addressee to remove from the
|
|
caches. See KABC::Addressee::uid()
|
|
*/
|
|
void clearChange( const QString &uid );
|
|
|
|
/**
|
|
Returns a list of the @c "added" addressees
|
|
*/
|
|
KABC::Addressee::List addedAddressees() const;
|
|
|
|
/**
|
|
Returns a list of the @c "changed" addressees
|
|
*/
|
|
KABC::Addressee::List changedAddressees() const;
|
|
|
|
/**
|
|
Returns a list of the @c "deleted" addressees
|
|
*/
|
|
KABC::Addressee::List deletedAddressees() const;
|
|
|
|
protected:
|
|
/**
|
|
Returns the file path of the cache file.
|
|
|
|
Cache file contents will be in vCard format, see
|
|
KABC::VCardConverter::parseVCards() and
|
|
KABC::VCardConverter::createVCards()
|
|
|
|
@see loadFromCache()
|
|
@see saveFromCache()
|
|
*/
|
|
virtual QString cacheFile() const;
|
|
|
|
/**
|
|
Determines the file path for saving caches of a given @p type.
|
|
|
|
Will be used by loadChangesCache and saveChangesCache().
|
|
|
|
@param type The type of change, i.e. @c "added", @c "delete"
|
|
or @c "changed"
|
|
*/
|
|
virtual QString changesCacheFile( const QString &type ) const;
|
|
|
|
/**
|
|
Loads change caches (added, deleted, changed addressees) from
|
|
respective cache files.
|
|
|
|
Subclasses can override the filename for each type by re-implementing
|
|
changesCacheFile().
|
|
|
|
File contents are expected to be in vCard format.
|
|
See KABC::VCardConverter::parseVCards()
|
|
*/
|
|
void loadChangesCache();
|
|
|
|
/**
|
|
Saves cached changes (added, deleted, changed addressees) to
|
|
respective cache files.
|
|
|
|
Subclasses can override the filename for each type by re-implementing
|
|
changesCacheFile().
|
|
|
|
File contents will be in vCard format.
|
|
See KABC::VCardConverter::createVCards()
|
|
*/
|
|
void saveChangesCache();
|
|
|
|
/**
|
|
Sets the identifier of the instances IdMapper.
|
|
|
|
@see idMapper()
|
|
@see IdMapper::setIdentifier()
|
|
*/
|
|
void setIdMapperIdentifier();
|
|
|
|
private:
|
|
class Private;
|
|
Private *const d;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|