diff -r 000000000000 -r 094583676ce7 wvuing/IMPSConnectionUI/ClientPluginSrc/IMPSPublishLevelPolicy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSConnectionUI/ClientPluginSrc/IMPSPublishLevelPolicy.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,217 @@ +/* +* Copyright (c) 2004 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: Presence Publish Level Policy which offers publish level changing and initializing +* +*/ + +#ifndef __IMPSPUBLISHLEVELPOLICY_H +#define __IMPSPUBLISHLEVELPOLICY_H + +// INCLUDES +#include +#include + + +//FORWARD DECLARATION +class CPEngAttributeListStore2; +class MPEngAttributeList2; +class CPEngNWSessionSlotID2; + +// TYPE DEFINITIONS +/** + * Attribute list mutator function type definition. + **/ +typedef void ( *TSetPresenceL )( MPEngAttributeList2& ); + + + +// CLASS DECLARATION + +/** +* Presence Publish Level Policy. Offers +* publish level changing and initializing. +* +* @lib IMPSuilib.dll +* @since 2.1 +*/ +NONSHARABLE_CLASS( IMPSPublishLevelPolicy ) + + { +public: // New functions + + /** + * Initialize settings of Publish level, based on the settings + * from the settings stored in the shared data. + * Function is synchronous and creates only attribute lists for + * contact lists based on the publish level + * + * @param aNWSessionSlotID the network session slot ID + * @since 2.1 + */ + static void InitializePublishLevelL( CPEngNWSessionSlotID2& aNWSessionSlotID ); + + + // New set functions + + /** + * Update settings of the attribute lists, so it reflects publishinglevel passed + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @param aPublishLevel publish level to + * @return + */ + static void UpdateAttributeListsL( TInt aPublishLevel, + CPEngNWSessionSlotID2& aNWSessionSlotID ); + +private: + /** + * Set Attribute lists so it reflects private and Public publish level + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @param aAttributeListFactory attribute lists factory instance, function does not take + * ownership + * @return + */ + static void SetPrivatePublicPublishingL( CPEngAttributeListStore2& aAttributeListFactory ); + + + /** + * Set Attribute lists so it reflects only private publishing + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @param aAttributeListFactory attribute lists factory instance, function does not take + * ownership + * @return + */ + static void SetOnlyPrivatePublishingL( CPEngAttributeListStore2& aAttributeListFactory ); + + + /** + * Set Attribute lists so it reflects only Public publishing + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @param aAttributeListFactory attribute lists factory instance, function does not take + * ownership + * @return + */ + static void SetOnlyPublicPublishingL( CPEngAttributeListStore2& aAttributeListFactory ); + + + /** + * Set Attribute lists so it reflects all publishing OFF + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @param aAttributeListFactory attribute lists factory instance, function does not take + * ownership + * @return + */ + static void SetPublishOffL( CPEngAttributeListStore2& aAttributeListFactory ); + + + /** + * Set Attribute lists so it reflects all publishing ON + * as parameter, no network asynchronous operations are performed, all changes + * are done only on local machine + * + * @since 2.1 + * @return + */ + static void SetPublishAllOnL(); + + /** + * Attribute list mutator. + * + * Updates given PEC contact lists attribute list + * to given publish level. (Publish level is declared + * trough the given function pointer.) + * + * @since 2.1 + * @param aAttrLstStore Attribute list store to use to mutate attribute list. + * @param aContactList The contact list which attribute list to change. + * @return aPresenceCall The attribute list mutator function to use to + * alter the attribute list. + */ + static void UpdateAttributeListL( CPEngAttributeListStore2& aAttrLstStore, + const TDesC& aContactList, + TSetPresenceL aPresenceCall ); + + /** + * Attribute list mutator. + * + * Updates default attribute list to given publish level. + * (Publish level is declared trough the given function pointer.) + * + * @since 2.1 + * @param aAttrLstStore Attribute list store to use to mutate attribute list. + * @return aPresenceCall The attribute list mutator function to use to + * alter the attribute list. + */ + static void UpdateDefaultAttrListL( CPEngAttributeListStore2& aAttrLstStore, + TSetPresenceL aPresenceCall ); + + + /** + * Attribute list mutator. + * Sets PEC "private presence" attributes on the + * given attribute list. + * + * @since 2.1 + * @param aAttrListModel Attribute list to alter. + */ + static void SetPrivatePresenceL( MPEngAttributeList2& aAttrListModel ); + + + /** + * Attribute list mutator. + * Sets PEC "public presence" attributes on the + * given attribute list. + * + * @since 2.1 + * @param aAttrListModel Attribute list to alter. + */ + static void SetPublicPresenceL( MPEngAttributeList2& aAttrListModel ); + + + /** + * Attribute list mutator. + * Sets PEC "no presence" attributes on the + * given attribute list. + * + * @since 2.1 + * @param aAttrListModel Attribute list to alter. + */ + static void SetNoPresence( MPEngAttributeList2& aAttrListModel ); + + + +protected: //prohibited constructor / destructor + + ~IMPSPublishLevelPolicy(); + IMPSPublishLevelPolicy(); + + }; + +#endif // __IMPSPUBLISHLEVELPOLICY_H + +// End of File