imservices/ossprotocoladaptation/src/presentitygroups/csubscribepresentitygroupcontentrequest.cpp
branchRCL_3
changeset 14 7797b2f86d2b
parent 13 b6f2a363adf7
child 16 cfe5eb8bb9ca
--- a/imservices/ossprotocoladaptation/src/presentitygroups/csubscribepresentitygroupcontentrequest.cpp	Wed Apr 14 16:17:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2007-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:  Subscribe Presentity Group content request to the Network Server.
-*
-*/
-
-
-#include <ximpprotocolconnectionhost.h>
-#include "csubscribepresentitygroupcontentrequest.h"
-#include "cossprotocolconnectionmanager.h"
-#include <ximpobjectfactory.h>
-#include <protocolpresencedatahost.h>
-#include <presenceobjectfactory.h>
-#include <ximpobjectcollection.h>
-#include <protocolpresentitygroupsdatahost.h>
-#include <presentitygroupinfo.h>
-#include <presentitygroupmemberinfo.h>
-#include <ximpidentity.h>
-#include <ximpdatasubscriptionstate.h>
-#include "ossprotocolpluginlogger.h"
-
-#include <glib/gstrfuncs.h>
-#include <gtypes.h>
-#include <stdlib.h>
-#include "stringutils.h"
-#include <string.h>
-#include <sys/types.h>
-#include <stdio.h>
-#include <glib/gprintf.h>
-#include "msgliterals.h"
-#include "msg_enums.h"
-#include "ossprotocoladaptutils.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::CSubscribePresentityGroupContentRequest()
-// ---------------------------------------------------------------------------
-//
-CSubscribePresentityGroupContentRequest::CSubscribePresentityGroupContentRequest (
-    MOSSProtocolConnectionManager& aConnMan,
-    TXIMPRequestId aRequestId ) :
-		CActive ( EPriorityNormal ),
-		iRequestId ( aRequestId ),
-		iConnMan ( aConnMan ),
-		iListcount ( 0 )
-	{
-	LOGGER ( TXT ( "::CSubscribePresentityGroupContentRequest Start" ) );
-	CActiveScheduler::Add ( this );
-	LOGGER ( TXT ( "::CSubscribePresentityGroupContentRequest End" ) );
-	}
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::ConstructL()
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::ConstructL Start-End" ) );
-	iGroupName = NULL;
-	
-	}
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::NewL
-// ---------------------------------------------------------------------------
-//
-CSubscribePresentityGroupContentRequest* CSubscribePresentityGroupContentRequest::NewL (
-    MOSSProtocolConnectionManager& aConnMan,
-    TXIMPRequestId aRequestId )
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::NewL Start" ) );
-
-	CSubscribePresentityGroupContentRequest* self = new ( ELeave )
-	CSubscribePresentityGroupContentRequest ( aConnMan, aRequestId );
-	CleanupStack::PushL ( self );
-	self->ConstructL();
-	CleanupStack::Pop ( self );
-
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::NewL End" ) );
-	return self;
-	}
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::NewLC()
-// ---------------------------------------------------------------------------
-//
-CSubscribePresentityGroupContentRequest* CSubscribePresentityGroupContentRequest::NewLC (
-    MOSSProtocolConnectionManager& aConnMan,
-    TXIMPRequestId aRequestId )
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::NewLC Start" ) );
-
-	CSubscribePresentityGroupContentRequest* self =
-	    CSubscribePresentityGroupContentRequest::NewL ( aConnMan, aRequestId );
-	CleanupStack::PushL ( self );
-
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::NewLC End" ) );
-	return self;
-	}
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::~CSubscribePresentityGroupContentRequest()
-// ---------------------------------------------------------------------------
-//
-CSubscribePresentityGroupContentRequest::~CSubscribePresentityGroupContentRequest()
-	{
-	LOGGER ( TXT ( "::~CSubscribePresentityGroupContentRequest Start" ) );
-	delete iGroupName;
-	iGroupName = NULL;
-    Cancel();
-    //iContacts.ResetAndDestroy();
-	LOGGER ( TXT ( "::~CSubscribePresentityGroupContentRequest End" ) );
-	}
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::DoCancel()
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::DoCancel Start" ) );
-	iConnMan.DataHandler().CancelListening();
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::DoCancel End" ) );
-	}
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::RunL()
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::RunL()
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::RunL Start" ) );
-	User::LeaveIfError( iStatus.Int() );
-    TRAPD( error, ProcessIncomingDataL( ) );
-    if ( error != KErrNone )
-		{
-		Cancel();
-		}
-
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::RunL End" ) );
-	}
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CSubscribePresentityGroupContentRequest::RunError ( TInt  aError )
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::RunError Start" ) );
-
-	iConnMan.HandleToHost().HandleRequestCompleted ( iRequestId, aError );
-
-	delete this;
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::RunError End" ) );
-	return KErrNone;
-	}
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::SubscribePresentityGroupContentL
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::SubscribePresentityGroupContentL (
-    const MXIMPIdentity& aIdentity )
-    {
-    LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::SubscribePresentityGroupContentL Start" ) );
-    if(iGroupName)
-        {
-        delete iGroupName;
-        iGroupName = NULL;
-        }
-    iGroupName = aIdentity.Identity().AllocL();
-    iConnMan.SetGroupIDL( *iGroupName ); // this groupname is used by contactsync class for synchronisation
-
-    if(iConnMan.DataHandler().IsFetchContactsCompleted())
-        {
-        ProcessIncomingDataL( );
-        }
-    else
-        {
-        if ( ! ( this->IsActive() ) )
-            {
-            iConnMan.DataHandler().ListenIncomingData ( iStatus );
-            SetActive();
-            }
-        }
-
-
-    LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::SubscribePresentityGroupContentL End" ) );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::ProcessIncomingDataL()
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::ProcessIncomingDataL()
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::ProcessIncomingDataL Start" ) );
-
-	PopulateDataL();
-
-	MXIMPObjectFactory& prfwObjFact = iConnMan.HandleToHost().ObjectFactory();
-
-	MPresenceObjectFactory& prObjFact =
-	iConnMan.HandleToHost().ProtocolPresenceDataHost().PresenceObjectFactory();
-
-	MXIMPIdentity* contactIdentity = NULL;
-	MPresentityGroupMemberInfo* groupMemberInfo = NULL;
-	MXIMPObjectCollection* listOfContacts = prfwObjFact.NewObjectCollectionLC();
-	
-	//get the ref to contacts which was already stored in PopulateDataL
-	RPointerArray<HBufC>& contacts =  iConnMan.GetContactManager().GetContactsListL();	
-
-	for(TInt i = 0;i<contacts.Count();i++)
-		{
-		contactIdentity = prfwObjFact.NewIdentityLC();
-		groupMemberInfo = prObjFact.NewPresentityGroupMemberInfoLC();
-		contactIdentity->SetIdentityL ( *(contacts[ i ] ));
-		groupMemberInfo->SetGroupMemberIdL ( contactIdentity );
-		groupMemberInfo->SetGroupMemberDisplayNameL ( *(contacts[ i ] ) );
-		listOfContacts->AddObjectL ( groupMemberInfo );	
-		CleanupStack::Pop ( 2 );//groupMemberInfo, contactIdentity		
-
-		}
-
-	MXIMPIdentity* groupIdentity = prfwObjFact.NewIdentityLC();
-
-	groupIdentity->SetIdentityL ( *iGroupName );
-
-	iConnMan.HandleToHost().ProtocolPresenceDataHost().GroupsDataHost().HandlePresentityGroupContentL (
-	groupIdentity, listOfContacts );
-	iConnMan.HandleToHost().HandleRequestCompleted ( iRequestId, KErrNone );
-	CleanupStack::Pop ( 2 );//groupIdentity,listOfContacts 
-
-	delete this;
-
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::ProcessIncomingDataL End" ) );
-
-	}
-
-// ---------------------------------------------------------------------------
-// CSubscribePresentityGroupContentRequest::PopulateDataL
-// ---------------------------------------------------------------------------
-//
-void CSubscribePresentityGroupContentRequest::PopulateDataL()
-	{
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::PopulateDataL Start" ) );
-	
-	int len = MAX_SIZE_DATA;    
-    char* pResponse = NULL, *pOrigResponse = NULL;  
-    
- 	TInt datacount = iConnMan.DataHandler().IncomingDataCount();
- 	//to keep the local copy of contacts in adaptation till logout
- 	RPointerArray<HBufC>& contacts = iConnMan.GetContactManager().GetContactsListL(); 
- 	
- 	while( datacount )
-		{
-		// get the incoming response from the server with transaction id equals zero
-		pOrigResponse = pResponse = iConnMan.DataHandler().ResponseL ( 0 );
-		CleanupStack::PushL(pOrigResponse) ;
-		if( pResponse )
-			{
-			pResponse += sizeof ( message_hdr_resp );
-		
-			while(1)
-				{
-				len = strlen(pResponse) + 1;
-				if (1 == len)
-					{
-					break;
-					}
-				char* contact = pResponse;	
-				pResponse += len;
-			
-				HBufC16 *contactName = OssProtocolAdapUtils::ConvertCharToTUint16LC( contact );				
-				contacts.AppendL(contactName);
-				LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::PopulateDataL:ContactName:%S " ), contactName );
-				CleanupStack::Pop ( contactName );				
-				}	
-			}
-
-		CleanupStack::PopAndDestroy(pOrigResponse) ;//pOrigResponse
-		
-		datacount = iConnMan.DataHandler().IncomingDataCount();
-		}
-
-	LOGGER ( TXT ( "CSubscribePresentityGroupContentRequest::PopulateDataL End" ) );
-	}
-
-
-
-// End of file