--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/ClientPluginSrc/CCnUiClientPluginIM.h Wed Sep 01 12:31:13 2010 +0100
@@ -0,0 +1,320 @@
+/*
+* 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: IM client plug-in.
+*
+*/
+
+#ifndef __CCNUICLIENTPLUGINIM_H
+#define __CCNUICLIENTPLUGINIM_H
+
+// INCLUDES
+#include <E32Base.h>
+#include <f32file.h>
+#include "CCnUiClientPluginBase.h"
+#include "MIMPSSharedData.h"
+
+// FORWARD DECLARATIONS
+class CPEngNWSessionSlotID2;
+class CPEngAttributeListStore2;
+class MPEngAttributeList2;
+class MPEngPresenceAttrModel2;
+class RResourceFile;
+class MIMPSSharedData;
+
+// CLASS DECLARATION
+/**
+ * IM client plug-in.
+ *
+ * IM project has responsibility to maintain / change implementation
+ * of this class as they need.
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnUiClientPluginIM ) : public CCnUiClientPluginBase
+
+ {
+public: // Two-phased constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CCnUiClientPluginIM* NewL( CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+
+ /**
+ * Destructor.
+ */
+ ~CCnUiClientPluginIM();
+
+private:
+
+ /**
+ * C++ constructor.
+ */
+ CCnUiClientPluginIM();
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( CPEngNWSessionSlotID2& aNWSessionSlotID );
+
+
+
+private: //From MCnUiClientPlugin
+
+ /**
+ * From MCnUiClientPlugin
+ * @see MCnUiClientPlugin
+ * @since 2.1
+ */
+ TCnUiConnectionMode CurrentConnectionModeSettingL();
+
+
+ /**
+ * From MCnUiClientPlugin
+ * @see MCnUiClientPlugin
+ * @since 2.1
+ */
+ void ReWakeAutomaticConnectionModeL();
+
+
+ /**
+ * From MCnUiClientPlugin
+ * Overloaded from CCnUiClientPluginBase
+ * @see MCnUiClientPlugin
+ * @since 2.1
+ */
+ void ConnectionOpenInitL( TBool aSapConnectionOpen, const CIMPSSAPSettings& aSap );
+
+ /**
+ * From MCnUiClientPlugin
+ * Overloaded from CCnUiClientPluginBase
+ * @see MCnUiClientPlugin
+ * @since 2.1
+ */
+ void LoginCancelledL();
+
+public: //Template methods from CCnUiClientPluginBase
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ TBool DoVerifySapCapabilities( TPEngWVCspServicesTree2 aCurrenServices );
+
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ CDesCArray* DoClientKnownCntListsLC();
+
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ void DoStartExplicitPostLoginSyncL();
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ void DoHandleExplicitPostLoginSyncStepCompleteL( TStepId aStepId, TInt& aStepStatus );
+
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ void DoStartPreLogoutPublishL();
+
+
+ /**
+ * Template method from CCnUiClientPluginBase
+ * @see CCnUiClientPluginBase
+ * @since 2.1
+ */
+ void DoHandlePreLogoutPublishStepCompleteL( TStepId aStepId, TInt& aStepStatus );
+
+private: // New helpers
+
+ /**
+ * Gets IM publish level value.
+ *
+ * @since 2.1
+ * @return IM setting value for attribute publishing
+ */
+ static TInt IMAttributePublishLevelL();
+
+ /**
+ * Updates IM attribute-lists if needed
+ * @param aStatus Request status
+ * @since 2.1
+ */
+ void UpdateIMAttributeListsL( TInt aPublishLevel, MDesCArray& aContactLists );
+
+ /**
+ * Gets default attribute-list
+ * @since 2.1
+ * @return Default attribute-list
+ */
+ static MPEngAttributeList2* DefaultAttributeListLC(
+ CPEngAttributeListStore2& aAttributeListFactory );
+
+
+ /**
+ * Read IM Attributes from resource and set them
+ * @since 3.0
+ * @param aLockedOwnAttributes
+ * On return, contains list of locked own
+ * attributes that should be published and unlocked.
+ */
+ void ReadIMAttributesL( RPointerArray<MPEngPresenceAttrModel2>& aLockedOwnAttributes );
+
+ /**
+ * Update local IM Attributes as given und issues NWE publish if needed
+ * @since 2.1
+ * @param aStatus Request status
+ */
+ void IssueIMAttributeUpdateAndPublishIfNeededL( TInt aPublishLevel );
+
+ /**
+ * Opens correct resource file.
+ * !!! Two items left to cleanup stack. !!!
+ * @param aResourceFile Contains opened file on return
+ * @since 3.0
+ */
+ void OpenResourceFileLC( RResourceFile& aResourceFile );
+
+
+
+ //Ease of IM Branding
+ /**
+ * Opens correct variation resource file.
+ * !!! Two items left to cleanup stack. !!!
+ * @param aResourceFile Contains opened file on return
+ * @since 3.2
+ */
+ void OpenVariationResourceFileLC( RResourceFile& aResourceFile );
+
+
+ /**
+ * Resource reader for non-Cone situations
+ * @param aResourceId The integer-valued resource id to read
+ * @return The value of the integer
+ */
+ TInt ReadResourceIntValueL( TInt aResourceId );
+
+ /**
+ * Calls ResetAndDestroy to given array
+ * @since 3.0
+ * @param aObject Array (RPointerArray<MPEngPresenceAttrModel2>)
+ */
+ static void DestroyCloseModelArray( TAny* aObject );
+
+ /**
+ * Sets presence authorization to all
+ * @since 3.0
+ */
+ void SetAuthorizationToAllL( MDesCArray& aContactLists );
+
+ /**
+ * Sets presence authorization to none
+ * @since 3.0
+ */
+ void SetAuthorizationToNoneL( MDesCArray& aContactLists );
+
+ /**
+ * Sets presence authorization to friends
+ * @since 3.0
+ */
+ void SetAuthorizationToFriendsL(
+ MDesCArray& aContactLists );
+
+ /**
+ * Attaches attribute list to contact lists
+ * @since 3.0
+ */
+ void AttachAttributeListL(
+ MDesCArray& aContactLists,
+ MPEngAttributeList2& aAttributeList );
+
+ /**
+ * Detaches attribute list from contact lists
+ * @since 3.0
+ */
+ void DetachAttributeListL( MDesCArray& aContactLists );
+
+ /**
+ * Get first status message for online state.
+ * @return first status message from saved ones.
+ * If not found, empty descriptor returned.
+ * Ownership is transferred to caller.
+ * @since 3.0
+ */
+ HBufC* GetFirstStatusMessageL() const;
+
+ /**
+ * Get sharedData attribute value.
+ * @return Shared data string.
+ * If not found, empty descriptor returned.
+ * Ownership is transferred to caller.
+ * @since 3.0
+ */
+ HBufC* GetSharedDataL( TIMPSSharedKeys aKey ) const;
+
+ /**
+ * Finds alias for given aUserID inside aAliasTable.
+ * @param aAliasTable string containeing all aliases for different ids
+ * @param aUserId Userid to look for
+ * @param aIndex Position inside aAliasTable, where the wanted alias starts.
+ * Or KErrNotFound
+ * @param aLength aLength length of alias
+ */
+ void LocateAliasL( const TDesC& aAliasTable, const TDesC& aUserId,
+ TInt& aIndex, TInt& aLength );
+
+private: // data
+
+ // ETrue if reactive authorization is used
+ TBool iRAUsed;
+
+ // ETrue if alias attribute is supported
+ TBool iAliasUsed;
+
+ RFs iRFs;
+
+ // ETrue if attribute lists are supported
+ TBool iAttribListsSupported;
+
+ // Presence authorization setting value
+ TInt iPresenceAuth;
+
+ // own. cached alias value
+ HBufC* iAlias;
+
+ //owns
+ MIMPSSharedData* iSharedData;
+ };
+
+#endif //__CCNUICLIENTPLUGINIM_H
+// End of File
+
+