diff -r 000000000000 -r b497e44ab2fc syncmlfw/ds/dsutils/ProfileUtil/testprofileutil/src/testsync.cpp --- /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 +#include +#include +#include "testprofileutil.h" +//SyncML headers +#include +#include +#include +#include +#include +#include +#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 +} + + +