--- a/uiservicetab/vimpstengine/src/cvimpstenginecontactmgmtextention.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,316 +0,0 @@
-/*
-* 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: Implementation for CVIMPSTEngineContactMgmtExtention
-*
-*/
-
-// INCLUDE FILES
-#include "cvimpstenginecontactmgmtextention.h"
-
-#include <ximpcontext.h>
-#include <ximprequestcompleteevent.h>
-#include <presentitygroups.h>
-#include <presentitygroupinfo.h>
-#include <presentitygroupmemberinfo.h>
-#include <ximpidentity.h>
-#include <ximpobjectfactory.h>
-#include <ximpstatus.h>
-
-#include "cvimpstenginerequestmapper.h"
-#include "cvimpstenginerequest.h"
-#include "tvimpstenums.h"
-
-
-#include "vimpstallerrors.h"
-#include "tvimpstconsts.h"
-
-#include "uiservicetabtracer.h"
-
-// Constants
-_LIT( KListNameAllBuddy ,"buddylist" );
-
-
-// ================= MEMBER FUNCTIONS =======================
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------
-CVIMPSTEngineContactMgmtExtention* CVIMPSTEngineContactMgmtExtention::NewL(
- MXIMPContext& aPresenceCtx,
- MPresentityGroups& aPresGroup,
- CVIMPSTEngineRequestMapper& aRequestMapper)
- {
- TRACER_AUTO;
- CVIMPSTEngineContactMgmtExtention* self =
- CVIMPSTEngineContactMgmtExtention::NewLC( aPresenceCtx,
- aPresGroup,
- aRequestMapper
- );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::NewLC
-// Two-phased constructor.
-// ---------------------------------------------------------
-CVIMPSTEngineContactMgmtExtention* CVIMPSTEngineContactMgmtExtention::NewLC(
- MXIMPContext& aPresenceCtx,
- MPresentityGroups& aPresGroup,
- CVIMPSTEngineRequestMapper& aRequestMapper)
- {
- TRACER_AUTO;
- CVIMPSTEngineContactMgmtExtention* self = new (ELeave)
- CVIMPSTEngineContactMgmtExtention(aPresenceCtx, aPresGroup,aRequestMapper);
- CleanupStack::PushL( self );
-
- return self;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::CVIMPSTEngineContactMgmtExtention
-// ---------------------------------------------------------
-CVIMPSTEngineContactMgmtExtention::CVIMPSTEngineContactMgmtExtention(
- MXIMPContext& aPresenceCtx,
- MPresentityGroups& aPresGroup,
- CVIMPSTEngineRequestMapper& aRequestMapper)
- :
- iPresenceCtx(aPresenceCtx),
- iPresGroup(aPresGroup),
- iRequestMapper(aRequestMapper),
- iSupported(TVIMPSTEnums::ESupportUnKnown)
- {
-
- }
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::~CVIMPSTEngineContactMgmtExtention
-// ---------------------------------------------------------
-CVIMPSTEngineContactMgmtExtention::~CVIMPSTEngineContactMgmtExtention()
- {
- TRACER_AUTO;
- }
-
-
-// -----------------------------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::IsSupported()
-// -----------------------------------------------------------------------------
-//
-TVIMPSTEnums::FeatureSupport CVIMPSTEngineContactMgmtExtention::IsSupported() const
- {
- return iSupported;
- }
-
-
-// -----------------------------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::Type()
-// -----------------------------------------------------------------------------
-//
-TVIMPSTEnums::ExtentionType CVIMPSTEngineContactMgmtExtention::Type() const
- {
- return TVIMPSTEnums::EContactManagement;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::DeleteServerContactL
-// ---------------------------------------------------------
-TInt CVIMPSTEngineContactMgmtExtention::DeleteServerContactL( const TDesC& aContactListId,
- const TDesC& aUserId )
- {
- TRACER_AUTO;
- TRACE( "DeleteServerContactL aContactListId = %s",&aContactListId );
- // err is initialized to KErrNone, b'coz if adaptation or presence is not supported then,
- // the request should not be sent to the server, this is a hack as the voip
- // writes the adaptation uid into settings even if presence is not supported.
- // bug has to be raised to voip.
-
- TInt err = KErrNone;
-
- if (iSupported == TVIMPSTEnums::ESupported)
- {
- //if there is no contact list id, contact is added to default contact list
- // here its "buddylist"
- HBufC* listId = HBufC::NewLC(KPropertyMaxLength); // onto cleanup stack
- TPtr listIdPtr = listId->Des();
- if(0 == aContactListId.Length())
- {
- listIdPtr.Copy(KListNameAllBuddy);
- }
- else
- {
- listIdPtr.Copy(aContactListId) ;
- }
- MXIMPIdentity* listIdentity = CreateIdentityLC( listIdPtr ) ;
- MXIMPIdentity* userIdentity = CreateIdentityLC( aUserId ) ;
-
- //not sure whether we can pass NULL for listIdentity / userIdentity
- //lets leave it to the adaptation.
- //so ignoring the NULL for listIdentity, userIdentity
- TXIMPRequestId reqId = iPresGroup.RemovePresentityGroupMemberL(
- *listIdentity, *userIdentity );
-
- iRequestMapper.CreateRequestL(reqId, ETrue, EVIMPSTXimpOperationDeleteContact);// waite here
-
- // codescanner warning can be ignored as MXIMPIdentity doesn't allow to pass pointer
- // to PopAnddestroy function. It gives panic
- CleanupStack::PopAndDestroy(); //userIdentity
- CleanupStack::PopAndDestroy(); //listIdentity
-
- CleanupStack::PopAndDestroy(); // listId;
-
- err = iReqResult;
- }
- return err;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::AddServerContactL
-// ---------------------------------------------------------
-TInt CVIMPSTEngineContactMgmtExtention::AddServerContactL(const TDesC& aContactList,
- const TDesC& aUserId,
- const TDesC& aNickname ,
- TBool aWaitToComplete /*= ETrue*/ )
- {
-
- TRACER_AUTO;
-
- // err is initialized to KErrNone, b'coz if adaptation or presence is not supported then,
- // the request should not be sent to the server, this is a hack as the voip
- // writes the adaptation uid into settings even if presence is not supported.
- // bug has to be raised to voip.
- TInt err = KErrNone;
-
- if (iSupported == TVIMPSTEnums::ESupported)
- {
- //if there is no contact list id, contact is added to default contact list
- // here its "buddylist"
- HBufC* listId = HBufC::NewLC(KPropertyMaxLength); // onto cleanup stack
- TPtr listIdPtr = listId->Des();
- if(0 == aContactList.Length())
- {
- listIdPtr.Copy(KListNameAllBuddy);
- }
- else
- {
- listIdPtr.Copy(aContactList) ;
- }
-
- HBufC* userId = HBufC::NewLC(KPropertyMaxLength); // onto cleanup stack
- TPtr userIdPtr = userId->Des();
-
- //domain name is checked on the ui and command process side.
- userIdPtr.Zero();
- userIdPtr.Append( aUserId );
-
- // create identity
- MXIMPIdentity* listIdentity = CreateIdentityLC( listIdPtr ) ;
- MXIMPIdentity* userIdentity = CreateIdentityLC( userIdPtr ) ; // onto cleanup stack
-
- //not sure whether we can pass NULL for listIdentity / userIdentity
- //lets leave it to the adaptation.
- //so ignoring the NULL for listIdentity, userIdentity
- TXIMPRequestId reqId = iPresGroup.AddPresentityGroupMemberL(*listIdentity,
- *userIdentity,
- aNickname) ;
-
- iRequestMapper.CreateRequestL(reqId, aWaitToComplete, EVIMPSTXimpOperationAddContact );
-
- // codescanner warning can be ignored as MXIMPIdentity doesn't allow to pass pointer
- // to PopAnddestroy function. It gives panic
- CleanupStack::PopAndDestroy(); //userIdentity
- CleanupStack::PopAndDestroy(); //listIdentity
-
- CleanupStack::PopAndDestroy(); //userId
- CleanupStack::PopAndDestroy(); // listId
-
- err = iReqResult;
- }
-
- return err;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::CreateIdentityLC
-// ---------------------------------------------------------
-MXIMPIdentity* CVIMPSTEngineContactMgmtExtention::CreateIdentityLC(const TDesC& aListId)
- {
- TRACER_AUTO;
-
- MXIMPObjectFactory& objFactory = iPresenceCtx.ObjectFactory();
- MXIMPIdentity* newIdentity = objFactory.NewIdentityLC();
- //no need to check for null as NewIdentityLC does not return null,
- // if failed ot allocate memory it will leave with KErrNoMemory
- newIdentity->SetIdentityL( aListId) ;
- return newIdentity;
- }
-
-
-// ---------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::HandleSessionContextEventL
-// ---------------------------------------------------------
-void CVIMPSTEngineContactMgmtExtention::HandleSessionContextEventL(const MXIMPContext& /*aContext*/,
- const MXIMPBase& aEvent,
- TXimpOperation aXimpOperation /*= EVIMPSTXimpOperationNoOperation*/ )
- {
-
- TRACER_AUTO;
-
- switch( aEvent.GetInterfaceId() )
- {
- case MXIMPRequestCompleteEvent::KInterfaceId:
- {
- TRACE( "InsideCallbackswitch::MXIMPRequestCompleteEvent");
- if ( (EVIMPSTXimpOperationAddContact == aXimpOperation)
- || (EVIMPSTXimpOperationDeleteContact == aXimpOperation) )
- {
- const MXIMPRequestCompleteEvent* event =
- TXIMPGetInterface< const MXIMPRequestCompleteEvent >::From(
- aEvent, MXIMPBase::EPanicIfUnknown );
-
- iReqResult = event->CompletionResult().ResultCode();
- const TXIMPRequestId& reqId = event->RequestId();
- // Note:FindRequestId does not pass the ownership. hanece req
- // should not be deleted.
- CVIMPSTEngineRequest *req = iRequestMapper.FindRequestId( reqId );
-
- if ( req )
- {
- req->StopWait() ;
- iRequestMapper.RemoveRequestId(reqId);
- }
- }
- break;
- }
-
- default:
- {
- break;
- }
- }
- }
-
-//----------------------------------------------------------------------------
-// CVIMPSTEngineContactMgmtExtention::SetSupported()
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTEngineContactMgmtExtention::SetSupported(TVIMPSTEnums::FeatureSupport aSupported)
- {
- iSupported = aSupported;
- }
-
-// end of file