diff -r fd64c38c277d -r b46a585f6909 presencecache/inc/presencecachereader2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presencecache/inc/presencecachereader2.h Fri Jun 11 13:29:23 2010 +0300 @@ -0,0 +1,155 @@ +/* +* 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 reader. +* +*/ + +#ifndef MPRESENCECACHEREADER2_H +#define MPRESENCECACHEREADER2_H + +#include +#include +#include +#include + +class MPresenceBuddyInfo2; +class MPresenceCacheReadHandler2; + +/** + * Interface for presence cache reader 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 v5.1 + */ +class MPresenceCacheReader2 + { +public: + + + /** + * Factory method to instantiate MPresenceCacheReader. + * + * @return The new MPresenceCacheReader object. Object + * ownership is returned to caller. + */ + IMPORT_C static MPresenceCacheReader2* CreateReaderL( ); + + /** + * Public destructor. + * Objects can be deleted through this interface. + */ + virtual ~MPresenceCacheReader2() {}; + + +public: //Sub interfaces for presence cache reader, Synchonous methods + + + /** + * Reads presence info from cache for a given identity, returns immediately. + * + * @param aIdentity buddy id, identity must be in xsp id format + * @return MPresenceInfo for the given buddy. Ownership to caller. + * Null if service or buddy not found, not on Cleanup in that case. + */ + virtual MPresenceBuddyInfo2* PresenceInfoLC(const TDesC& aIdentity) = 0; + + /** + * Returns total number of buddies stored in presence cache. + * It includes all services, probably useful while deciding performance + * overheads or informing to the user. + * + * @return TInt Total number of presence infos in presence cache. + */ + virtual TInt BuddyCountInAllServices() = 0; + + /** + * Returns total number of buddies (presence infos) stored in a specific + * service in presence cache. It includes only the given service. + * + * @param aServiceName as in device's service table + * @return TInt buddy count or error code. e.g. in case of service not + * found return value is KErrNotFound. + */ + virtual TInt BuddyCountInService(const TDesC& aServiceName) = 0; + + /** + * Returns total number services in presence cache. + * + * @return TInt total number of services in presence cache. + */ + virtual TInt ServicesCount() = 0; + + /** + * Cancels any async. read operation going on. After calling this + * method no callback will be received from asycn read method. + * + * @return error code, KErrNone if successfully cancelled. + */ + virtual TInt CancelRead() = 0; + + +public: //Sub interfaces for presence cache reader, Asynchronous methods + + /** + * Reads all presence info from cache for a given service. Returns in + * MPresenceCacheReadHandler2's HandlePresenceReadL. + * + * @param aServiceName Service name to search from + * @param aHandler to handle async. callback + * @return error code, in case of error callback wont be called. + */ + virtual TInt AllBuddiesPresenceInService(const TDesC& aServiceName, + MPresenceCacheReadHandler2* aHandler) = 0; + +public: //Sub interfaces for presence cache reader, Asynchronous methods + + /** + * Sets the observer to receive Presence Buddy Change notifications. + * Observer must be set before using SubscribePresenceBuddyChangeL. + * If client changes the observer using this method, all the notifications + * related to existing and new subscriptions will be delivered to + * the new observer. + * + * @return Error code, if KErrNone observer is successfully set. + */ + virtual TInt SetObserverForSubscribedNotifications( + MPresenceCacheReadHandler2* aHandler) = 0; + + /** + * Subscribe for given presence buddy's change in presence. An observer + * must be set before using this method by SetObserverForSubscribedNotifications. + * Notifcations are delivered through MPresenceCacheReadHandler2's HandlePresenceNotificationL + * + * @param aIdentity buddy id, identity must be in xsp id format + * @return KErrNone if successful, KErrArgument if observer not set + * @leave Only in system error cases e.g. if failed to allocate memory. + */ + virtual TInt SubscribePresenceBuddyChangeL(const TDesC& aIdentity) = 0; + + /** + * Unsubscribe for given presence buddy's change in presence. The request + * is ignored if invalid. + * + * @param aIdentity buddy id, identity must be in xsp id format + * @leave Only in system error cases e.g. if failed to allocate memory. + */ + virtual void UnSubscribePresenceBuddyChangeL(const TDesC& aIdentity) = 0; + + }; + +#endif // MPRESENCECACHEREADER2_H + + +