author | ulf69 <ulf69> | 2004-08-02 18:33:07 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-08-02 18:33:07 (UTC) |
commit | 60a6886f06be31ec690df34dc8e3b8931c2d3bd7 (patch) (side-by-side diff) | |
tree | c4c7c15cfd3753a3342806a11fb8f5c20bb4f923 /kabc/resource.h | |
parent | 863c4c3678e59ef125c08c00e9532ded5b540f67 (diff) | |
download | kdepimpi-60a6886f06be31ec690df34dc8e3b8931c2d3bd7.zip kdepimpi-60a6886f06be31ec690df34dc8e3b8931c2d3bd7.tar.gz kdepimpi-60a6886f06be31ec690df34dc8e3b8931c2d3bd7.tar.bz2 |
added support for syncable resources
-rw-r--r-- | kabc/resource.h | 56 |
1 files changed, 51 insertions, 5 deletions
diff --git a/kabc/resource.h b/kabc/resource.h index c363125..db806a6 100644 --- a/kabc/resource.h +++ b/kabc/resource.h @@ -9,126 +9,172 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #ifndef KABC_RESOURCE_H #define KABC_RESOURCE_H #include <kresources/resource.h> + #include "addressbook.h" +class KSyncProfile; + namespace KABC { /** * @short Helper class for handling coordinated save of address books. * * This class is used as helper class for saving address book. * @see requestSaveTicket(), save(). */ class Ticket { friend class Resource; public: Resource *resource() { return mResource; } private: Ticket( Resource *resource ) : mResource( resource ) {} Resource *mResource; }; /** * @internal */ class Resource : public KRES::Resource { +private: + /** + * make this constructor private to force everybody to use the other one + */ + Resource( const KConfig *config); + public: /** * Constructor */ - Resource( const KConfig *config ); + Resource( const KConfig *config, bool syncable ); /** * Destructor. */ virtual ~Resource(); /** * Sets the address book of the resource. */ void setAddressBook( AddressBook* ); /** * Returns a pointer to the addressbook. */ AddressBook *addressBook(); /** * Writes the resource specific config to file. */ virtual void writeConfig( KConfig *config ); /** * Open the resource and returns if it was successfully */ virtual bool doOpen(); - /** - * Close the resource and returns if it was successfully - */ - virtual void doClose(); /** * Request a ticket, you have to pass through @ref save() to * allow locking. */ virtual Ticket *requestSaveTicket(); /** * Load all addressees to the addressbook */ virtual bool load(); /** * Save all addressees to the addressbook. * * @param ticket The ticket you get by @ref requestSaveTicket() */ virtual bool save( Ticket *ticket ); /** * Removes a addressee from resource. This method is mainly * used by record-based resources like LDAP or SQL. */ virtual void removeAddressee( const Addressee& addr ); + /** * This method is called by an error handler if the application * crashed */ virtual void cleanUp(); + + /** + * This method returns the number of elements that are currently in the resource. + */ + virtual int count() const; + + /** + * This method removes all elements from the resource!! (Not from the addressbook) + */ + virtual bool clear(); + + /** + * Set name of file to be used for saving. + */ + virtual void setFileName( const QString & ); + + /** + * Return name of file used for loading and saving the address book. + */ + virtual QString fileName() const; + + + virtual bool isSyncable() const; + + /** + * Set the name of resource.You can override this method, + * but also remember to call Resource::setResourceName(). + */ + virtual void setResourceName( const QString &name ); + + + protected: Ticket *createTicket( Resource * ); + virtual void doClose(); private: AddressBook *mAddressBook; + KSyncProfile *mSyncProfile; + QString mFileName; + }; + } + + + #endif |