diff -r 000000000000 -r e6b17d312c8b ximpfw/core/srcdatamodel/ximpitemparent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ximpfw/core/srcdatamodel/ximpitemparent.h Thu Dec 17 08:54:49 2009 +0200 @@ -0,0 +1,140 @@ +/* +* Copyright (c) 2006 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: Item parent interface. +* +*/ + +#ifndef CXIMPITEMPARENT_H +#define CXIMPITEMPARENT_H + +#include + +class COwnPresenceSubscriptionItem; +class CGroupListSubscriptionItem; +class CGroupContentSubscriptionItem; +class CPresentityPresenceSubscriptionItem; +class CPresentityGroupMembersPresenceSubscriptionItem; +class CWatcherListSubscriptionItem; +class CGrantRequestListSubscriptionItem; +//class CXIMPSubscriptionItemBase; +class CXIMPApiEventBase; +class MXIMPPscContext; +class CXIMPIdentityImp; +class CPresenceConfigurationItem; +class CGroupMembersPresenceConfigurationItem; +class CXIMPConfigurationItemBase; +class CBlockListSubscriptionItem; +class CPresenceToEveryoneConfigurationItem; +class MPresenceCacheWriter; + +// FIX ME +#define PRESENCE_ITEM_PARENT 0xE0000009 + +/** + * Item parent interface. + * + * @since S60 v3.2 + */ +class MXIMPItemParent : public MXIMPItemParentBase + { + public: + enum { KInterfaceId = PRESENCE_ITEM_PARENT}; + +public: // Definitions + + /** + * Remove item + * @param aChild Item pointer to remove. + */ + virtual void RemoveMe( COwnPresenceSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CGroupListSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CGroupContentSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CPresentityPresenceSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CWatcherListSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CPresentityGroupMembersPresenceSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CGrantRequestListSubscriptionItem* aChild ) = 0; + virtual void RemoveMe( CBlockListSubscriptionItem* aChild ) = 0; + + virtual void RemoveMe( CPresenceConfigurationItem* aChild ) = 0; + virtual void RemoveMe( CPresenceToEveryoneConfigurationItem* aChild ) = 0; + virtual void RemoveMe( CGroupMembersPresenceConfigurationItem* aChild ) = 0; + + /** + * Add event + */ + virtual void AddEventL( CXIMPApiEventBase& aEvent, MXIMPPscContext* aContext ) = 0; + + /** + * Register item for expiration purposes. + */ + //virtual void RegisterExpiringItemL( CXIMPSubscriptionItemBase* aExpireItem ) = 0; + + /** + * Unregister item from expiration purposes. + */ + //virtual void UnregisterExpiringItem( CXIMPSubscriptionItemBase* aExpireItem ) = 0; + + /** + * Add item as subscriber for presentity presence. + */ + virtual void AddPresentityPresenceSubscriberL( const CXIMPIdentityImp& aIdentity, CXIMPSubscriptionItemBase* aItem, CXIMPIdentityImp* aGroup = NULL ) = 0; + + /** + * Remove item from subscribing presentity presence. + */ + virtual void RemovePresentityPresenceSubscriber( const CXIMPIdentityImp& aIdentity, CXIMPSubscriptionItemBase* aItem ) = 0; + + /** + * Activate item for subscribing presentity presence + */ + virtual void ActivatePresentityPresenceSubscriberL( const CXIMPIdentityImp& aIdentity, CXIMPSubscriptionItemBase* aItem ) = 0; + + /** + * Synthesise presentity presence subscription event + */ + virtual void SynthesisePresentityPresenceSubscriptionEventToL( const CXIMPIdentityImp& aIdentity, MXIMPPscContext* aContext, TBool aForceEvent ) = 0; + + /** + * Add item as configurator for presentity presence. + */ + virtual void AddPresenceConfiguratorL( const CXIMPIdentityImp& aIdentity, CXIMPConfigurationItemBase* aItem ) = 0; + + /** + * Remove item from configuring presentity presence. + */ + virtual void RemovePresenceConfigurator( const CXIMPIdentityImp& aIdentity, CXIMPConfigurationItemBase* aItem ) = 0; + + /** + * Return the protocol ID of the host of the parent + */ + virtual TInt32 ProtocolUID( ) = 0; + + /** + * Return the global presence cache object + */ + virtual MPresenceCacheWriter* ExternalCache( ) = 0; + +protected: // Destruction + + /** + * Object cannot be delted through this interface + */ + virtual ~MXIMPItemParent(){} + }; + +/* ======================================================================== */ + + + +#endif // CXIMPITEMPARENT_H