--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/inc/cvimpstenginecontactmgmtextention.h Wed Sep 01 12:33:36 2010 +0100
@@ -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