uiservicetab/vimpstengine/inc/cvimpstenginecontactmgmtextention.h
changeset 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/inc/cvimpstenginecontactmgmtextention.h	Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,166 @@
+/*
+* 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: Implements the Contact Management Extention Feature
+*
+*/
+
+#ifndef __CVIMPSTENGINECONTACTMGMTEXTENTION_H
+#define __CVIMPSTENGINECONTACTMGMTEXTENTION_H
+
+//  INCLUDES
+#include <e32base.h>
+
+#include "mvimpstenginecontactmgmtextention.h"
+#include "tvimpstenums.h"
+#include "mvimpstenginesessioncntxtobserver.h"
+
+// FORWARD DECLARATIONS           
+class CVIMPSTEngineRequestMapper;
+class MPresentityGroups;
+class MXIMPContext;
+class MXIMPIdentity;
+   
+// CLASS DECLARATION
+/**
+ * This Class implements the Contact Management Extention Feature
+ * @lib vimpstengine.lib
+ * @since S60 5.0 
+ */
+NONSHARABLE_CLASS( CVIMPSTEngineContactMgmtExtention ) : public CBase,							   
+							   public MVIMPSTEngineContactMgmtExtention,
+							   public MVIMPSTEngineSessionCntxtObserver
+						 	
+    {
+    //for test cases
+    friend class T_VIMPSTEngineContactMgmtExtention;
+
+    public:  // Two-phased constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         * @param aPresContext: presence context
+         * @param aPresGroup - Presentity Group
+         * @param aRequestMapper: Request Mapper for XIMP Events
+         */
+        
+        static CVIMPSTEngineContactMgmtExtention* NewL(
+        					MXIMPContext& aPresenceCtx,
+        					MPresentityGroups& aPresGroup,
+							CVIMPSTEngineRequestMapper& aRequestMapper);
+        /**
+         * Two-phased constructor.
+         * @param aPresContext: presence context
+         * @param aPresGroup - Presentity Group
+         * @param aRequestMapper: Request Mapper for XIMP Events
+         */										
+        static CVIMPSTEngineContactMgmtExtention* NewLC(
+        					MXIMPContext& aPresenceCtx,
+        					MPresentityGroups& aPresGroup,
+							CVIMPSTEngineRequestMapper& aRequestMapper);
+
+        /**
+         * C++ Destructor.
+         */
+        virtual ~CVIMPSTEngineContactMgmtExtention();
+        
+   	
+    private:
+		
+        /**
+         * default constructor
+         * @param aPresContext: presence context
+         * @param aPresGroup - Presentity Group
+         * @param aRequestMapper: event observer to get the notifications of the events.
+         */
+        CVIMPSTEngineContactMgmtExtention(
+        					MXIMPContext& aPresenceCtx,
+        					MPresentityGroups& aPresGroup,
+							CVIMPSTEngineRequestMapper& aRequestMapper);
+        
+        
+	 	/**
+	     * CreateIdentityLC 
+	     * create the identity for given param
+	     * @ aparam  aListId, to create
+	     * @ return pointer to MPrFwIdentity
+	     */
+	 	MXIMPIdentity* CreateIdentityLC(const TDesC& aListId) ;
+	 	
+	 
+    public: // See MVIMPSTEngineContactMgmtExtention   	
+		
+        /**
+	     * See MVIMPSTEngineContactMgmtExtention	     
+		 */
+         TInt AddServerContactL(const TDesC& aContactList, 
+         						const TDesC& aUserId,const TDesC& aNickname,
+         						TBool aWaitToComplete = ETrue ) ;
+        
+        
+         /**
+	     * See MVIMPSTEngineContactMgmtExtention	     
+		 */
+         TInt DeleteServerContactL( const TDesC& aContactListId, const TDesC& aUserId ) ;
+		
+	
+	private:
+		/**
+		 * See MVIMPSTEngineSessionCntxtObserver		 
+		 */ 
+		void HandleSessionContextEventL( const MXIMPContext& aContext, 
+                                          const MXIMPBase& aEvent,
+                                          TXimpOperation aXimpOperation = EVIMPSTXimpOperationNoOperation);	                       
+
+	public: // From MVIMPSTEngineExtentionFeatures
+	
+		/**
+		* See MVIMPSTEngineExtentionFeatures
+		*/
+		TVIMPSTEnums::FeatureSupport IsSupported() const;
+		
+		
+		/**
+		* See MVIMPSTEngineExtentionFeatures
+		*/
+		TVIMPSTEnums::ExtentionType Type() const;
+		
+		/**
+         * See MVIMPSTEngineExtentionFeatures
+         */
+        void  SetSupported(TVIMPSTEnums::FeatureSupport aSupported) ;
+
+    		
+    private:   	
+    	
+    	// not own 
+    	MXIMPContext& 		iPresenceCtx;
+    	
+    	// not deletable
+    	MPresentityGroups& 		iPresGroup; 	
+    	 
+    	
+       //doesnt own
+        CVIMPSTEngineRequestMapper& iRequestMapper;         
+       
+    	//Whether the extention Feature Supported or not
+    	TVIMPSTEnums::FeatureSupport 	iSupported; 
+    	    	
+    	//Result code from waited request
+	    TInt    iReqResult;
+	    
+    };
+    
+#endif      //__CVIMPSTENGINECONTACTMGMTEXTENTION_H
+
+// End of File