diff -r 000000000000 -r e686773b3f54 contacts_plat/presence_cache_api/inc/presencecachewriter2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contacts_plat/presence_cache_api/inc/presencecachewriter2.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Interface for presence cache writer. +* +*/ + +#ifndef MPRESENCECACHEWRITER2_H +#define MPRESENCECACHEWRITER2_H + +#include +#include +#include + +class MPresenceBuddyInfo2; +class MPresenceCacheWriteHandler2; + +/** + * Interface for presence cache writer API. This interface is implemented + * by the Presence Cache client. Notice that an xsp id is + * in the form ovi:xyz@example.com + * + * @since S60 v3.2 + */ +class MPresenceCacheWriter2 + { +public: + + /** + * Factory method to instantiate MPresenceCacheWriter2. + * + * @return The new MPresenceCacheWriter object. Object + * ownership is returned to caller. + */ + + IMPORT_C static MPresenceCacheWriter2* CreateWriterL( ); + + /** + * Public destructor. + * Objects can be deleted through this interface. + */ + virtual ~MPresenceCacheWriter2() {}; + + +public: //Sub interfaces for presence cache writer, Synchronous methods + + /** + * Writes presence info to cache for a given buddy. Leaves only in system + * errors. + * + * @param aPresenceBuddyInfo contains xsp identity and presence + * @return Error code + */ + virtual TInt WritePresenceL(const MPresenceBuddyInfo2* aPresenceBuddyInfo) = 0; + + /** + * Instantiates new buddy presence info object. + * + * @return New buddy presence info instance. Object ownership + * is returned to caller. + * @leave KErrNoMemory if failed to allocate memory. + */ + virtual MPresenceBuddyInfo2* NewBuddyPresenceInfoLC() = 0; + + + /** + * Delete all buddies presence associated with given service. + * + * @param aServiceName service name as in sp table + * @return error code + */ + virtual TInt DeleteService(const TDesC& aServiceName) = 0; + + /** + * Deletes all presence related to given xsp identity. + * Leaves only in system errors. + * + * @param aIdentity identity for buddy to be removed, in xsp format + * @return error code + */ + virtual TInt DeletePresenceL(const TDesC& aIdentity) = 0; + + /** + * Cancels any async. write operation going on. After calling this + * method no callback will be received from asycn write method. + * + * @return error code, KErrNone if successfully cancelled. + */ + virtual TInt CancelWrite() = 0; + + +public: //Sub interfaces for presence cache writer, Asynchronous methods + + /** + * Writes buddy presence info objects to cache. Returns in + * MPresenceCacheWriteHandler2's HandlePresenceWriteL. Provide a null pointer + * to receive no call back. Leaves only in system errors. + * + * @param aBuddyPresenceInfos presence infos for all buddies. + * Ownership remains to caller. + * @param MPresenceCacheWriterHandler2 to handle async calls. A 'NULL' pointer + * can be provided to receive no call back. + * @return TInt error code. + */ + virtual TInt WriteMultiplePresenceL( + const RPointerArray& aPresenceBuddyInfos, + MPresenceCacheWriteHandler2* aHandler) = 0; + + }; + +#endif // MPRESENCECACHEWRITER_H