diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstengine/inc/cvimpstenginecontactmgmtextention.h --- /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 + +#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