syncmlfw/ds/dsutils/ProfileUtil/testprofileutil/src/testsync.cpp
changeset 0 b497e44ab2fc
child 25 b183ec05bd8c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/ds/dsutils/ProfileUtil/testprofileutil/src/testsync.cpp	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,336 @@
+/*
+* Copyright (c) 2002 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:  ?Description
+*
+*/
+
+
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "testprofileutil.h"
+//SyncML headers
+#include <SyncMLDef.h>
+#include <SyncMLClient.h>
+#include <SyncMLClientDS.h>
+#include <SyncMLClientDM.h>
+#include <SyncMLTransportProperties.h>
+#include <commdb.h> 
+#include "nsmlconstants.h"
+
+#include "NsmlProfileUtil.h"
+
+
+
+
+// ============================== MEMBER FUNCTIONS ============================
+
+// ----------------------------------------------------------------------------
+// CSync::NewL
+// Two Phase Construction
+// ----------------------------------------------------------------------------
+CSync* CSync::NewL(TInt aParam)
+{
+
+    CSync* self = new (ELeave) CSync;
+    CleanupStack::PushL(self);
+    self->ConstructL(aParam);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+// ----------------------------------------------------------------------------
+// CSync::CSync
+// Constructor
+// ----------------------------------------------------------------------------
+CSync::CSync() : CActive(CActive::EPriorityHigh)
+{	
+   CActiveScheduler::Add(this);
+}
+
+// ----------------------------------------------------------------------------
+// CSync::ConstructL
+// Second phase constructor
+// ----------------------------------------------------------------------------
+void CSync::ConstructL(TInt aParam)
+{  
+    iPrgPrevStatus = TStatus(-1);
+	iPrgCurStatus = TStatus(-1);
+    iState = ERegister;
+    iInterruptStage=aParam;
+    IssueRequest();
+}
+
+// ----------------------------------------------------------------------------
+// CSync::~CSync
+// Destructor*
+// ----------------------------------------------------------------------------
+CSync::~CSync()
+{
+}
+
+// ----------------------------------------------------------------------------
+// CSync::RunL
+// ---------------------------------------------------------------------------
+void CSync::RunL()
+{
+    switch ( iState ) 
+    {
+		case ERegister:
+		     RegisterL();
+		     break;
+		case ESyncOk:
+    		 StartSyncL();
+    	     break;
+    	case EInitSync:
+    		 break;
+		case EComplete:
+			 Complete();
+		     break;
+    	case ECancel:
+    	     SyncCancel();
+		default:
+		    break;
+    }
+}
+
+// ----------------------------------------------------------------------------
+// CSync::RunError
+// ----------------------------------------------------------------------------
+TInt CSync::RunError ( TInt aError )
+{
+      return aError;
+}
+
+// ----------------------------------------------------------------------------
+// CSync::DoCancel
+// ----------------------------------------------------------------------------
+void CSync::DoCancel()
+{
+    // Cleanup sync session
+    CloseSyncSession();
+}
+
+// ----------------------------------------------------------------------------
+// CSync::RegisterL
+// ----------------------------------------------------------------------------
+void CSync::RegisterL()
+{
+    // Wait for events
+    iState = ESyncOk;
+    IssueRequest();
+}
+
+// ----------------------------------------------------------------------------
+// CSync::RegisterL
+// ----------------------------------------------------------------------------
+void CSync::StartSyncL()
+{
+    TBool doSync = EFalse;
+    
+    OpenSyncSessionL();
+         
+    // Trigger sync here	    
+	// Register for sync events    
+	iSyncSession.RequestEventL(*this);     // for MSyncMLEventObserver events      
+	iSyncSession.RequestProgressL(*this);  // for MSyncMLProgressObserver events
+	    
+	iSyncJob.CreateL(iSyncSession, 5);
+	       
+	iState = EInitSync;
+	IssueRequest();
+	    
+}
+
+// ----------------------------------------------------------------------------
+// CSync::SyncCancel
+// ----------------------------------------------------------------------------
+
+void CSync::SyncCancel()
+{
+	iSyncSession.CancelEvent();
+	iSyncSession.Close();
+	
+	Cancel();
+    // Close the server
+    CActiveScheduler::Stop();
+}
+
+
+// ----------------------------------------------------------------------------
+// CSync::OpenSyncSessionL
+// ----------------------------------------------------------------------------
+void CSync::OpenSyncSessionL()
+{
+	TRAPD(err, iSyncSession.OpenL());
+	    
+	    if (err != KErrNone)
+    	{
+	      	User::Leave(err);
+    	}
+	
+}
+
+// ----------------------------------------------------------------------------
+// CSync::Complete
+// ----------------------------------------------------------------------------
+void CSync::Complete()
+{
+    
+	Cancel();
+
+    // Close the server
+    CActiveScheduler::Stop();
+    
+}
+
+// ----------------------------------------------------------------------------
+// CSync::CloseSyncSession
+// ----------------------------------------------------------------------------
+void CSync::CloseSyncSession()
+{
+		iSyncSession.CancelEvent();
+		iSyncSession.Close();
+}
+
+// ----------------------------------------------------------------------------
+// CSync::EventL
+// ----------------------------------------------------------------------------
+void CSync::IssueRequest()
+{
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete(status, KErrNone);
+    SetActive();
+}
+
+// ----------------------------------------------------------------------------
+// CSync::OnSyncMLSessionEvent
+// ----------------------------------------------------------------------------
+void CSync::OnSyncMLSessionEvent(TEvent aEvent, 
+                                   TInt /*aIdentifier*/, 
+                                   TInt /*aError*/, 
+                                   TInt /*aAdditionalData*/)
+{    
+	
+    switch ( aEvent )
+    {
+    	case EJobStart:
+    	     break;
+    	case EJobStartFailed:
+		case EJobRejected:
+		case ETransportTimeout:
+		case EServerSuspended:
+		case EServerTerminated:	 
+	  	case EJobStop:
+			 TInt err(KErrNone);
+		     iState = EComplete;
+	     	 IssueRequest();	
+    	     break;
+    }
+}
+
+// -----------------------------------------------------------------------------
+// CSync::OnSyncMLSyncError (from MSyncMLProgressObserver)
+//
+// -----------------------------------------------------------------------------
+//
+void CSync::OnSyncMLSyncError(TErrorLevel aErrorLevel, TInt aError, TInt /*aTaskId*/, TInt /*aInfo1*/, TInt /*aInfo2*/)
+{
+   //nothing
+}
+
+
+// -----------------------------------------------------------------------------
+// CSync::OnSyncMLSyncProgress (from MSyncMLProgressObserver)
+//
+// -----------------------------------------------------------------------------
+//
+void CSync::OnSyncMLSyncProgress(TStatus aStatus, TInt aInfo1, TInt /*aInfo2*/)
+{
+	iPrgPrevStatus = iPrgCurStatus;
+
+	iPrgCurStatus = aStatus; 
+	
+	switch(iInterruptStage)
+	{
+		case 1:if(aStatus==ESmlConnecting)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }		  
+		      break;
+		case 2:if(aStatus==ESmlConnected)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		
+		      break;
+		case 3:if(aStatus==ESmlLoggingOn)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		      break;
+		case 4:if(aStatus==ESmlLoggedOn)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		      break;
+		case 5:if(aStatus==ESmlSendingModificationsToServer)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		      break;
+		      
+	    case 6:if(aStatus==ESmlReceivingModificationsFromServer)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		      break;
+	   case 7:if(aStatus==ESmlSendingMappingsToServer)
+	           {
+  				iProfileEngine = CreateProfileEngineExtendedL();
+  				iProfileEngine->SetActiveProfileL( 5);	
+  				iProfileEngine->Release();
+	           }
+		      break;
+		default:
+		      break;
+		    
+	}
+	
+	
+}
+
+void CSync::OnSyncMLDataSyncModifications(TInt aTaskId, 
+                      const TSyncMLDataSyncModifications& aClientModifications,
+                      const TSyncMLDataSyncModifications& aServerModifications)
+{
+	//Do Nothing
+}
+
+
+