diff -r c8e5c3d81b42 -r 39aa16f3fdc2 syncmlfw/syncservice/SRC/SyncService.cpp --- a/syncmlfw/syncservice/SRC/SyncService.cpp Wed Jun 23 19:10:17 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,328 +0,0 @@ -/* -* Copyright (c) 2005 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: Client for DS and DM initiated syncs -* -*/ - - - -// INCLUDE FILES - -#include - -#include -#include -#include -#include -#include -#include -#include "SyncServiceDebug.h" - -#include -#include -#include - -// ---------------------------------------------------------------------------- -// RSyncService::StartSyncL -// ---------------------------------------------------------------------------- -// -void RSyncService::StartSyncL( TSyncServiceParam aParam ) - { - FLOG( _L( "[RSyncService] StartSyncL" ) ); - - TSyncParameters parameters; - parameters.iCommand = KSyncServCmdStartSync; - parameters.iJobId = aParam.iJobId; - parameters.iProfileId = aParam.iProfileId; - parameters.iSilent = aParam.iSilent; - TInt err = - SendReceive( ESyncServiceCommand, TIpcArgs( parameters.iCommand, - parameters.iJobId, - parameters.iProfileId, - parameters.iSilent ) ); - User::LeaveIfError( err ); - } - -// ---------------------------------------------------------------------------- -// RSyncService::EnableProgressNoteL -// ---------------------------------------------------------------------------- -// -void RSyncService::EnableProgressNoteL( TBool aEnabled ) - { - FLOG( _L("[RSyncService] EnableProgressNoteL") ); - - TSyncParameters parameters; - parameters.iCommand = KSyncServCmdShowProgress; - - if ( aEnabled ) - { - parameters.iJobId = KSyncServEnabled; - } - else - { - parameters.iJobId = KSyncServDisabled; - } - - TInt err = - SendReceive( ESyncServiceCommand, TIpcArgs( parameters.iCommand, - parameters.iJobId, - parameters.iProfileId, - parameters.iSilent ) ); - User::LeaveIfError( err ); - } - -// ---------------------------------------------------------------------------- -// RSyncService::ServiceUid -// ---------------------------------------------------------------------------- -// -TUid RSyncService::ServiceUid() const - { - FLOG( _L( "[RSyncService] ServiceUid" ) ); - - return TUid::Uid( KSyncServiceUid ); - } - -// ---------------------------------------------------------------------------- -// CSyncService::CSyncService -// ---------------------------------------------------------------------------- -// -CSyncService::CSyncService( ) - { - FLOG( _L( "[CSyncService] CSyncService" ) ); - - } - -// ---------------------------------------------------------------------------- -// CSyncService::~CSyncService -// ---------------------------------------------------------------------------- -// -CSyncService::~CSyncService( ) - { - FLOG( _L( "[CSyncService] ~CSyncService" ) ); - - delete iMonitor; - iService.Close(); - } - -// ---------------------------------------------------------------------------- -// CSyncService::NewL -// ---------------------------------------------------------------------------- -// -EXPORT_C CSyncService* CSyncService::NewL( MAknServerAppExitObserver* aObserver, - TUint aServiceId ) - { - FLOG( _L( "[CSyncService] NewL" ) ); - - CSyncService* self = new(ELeave) CSyncService(); - CleanupStack::PushL(self); - self->ConstructL( aObserver, aServiceId ); - CleanupStack::Pop(self); - return self; - } - -// ---------------------------------------------------------------------------- -// CSyncService::ConstructL -// ---------------------------------------------------------------------------- -// -void CSyncService::ConstructL( MAknServerAppExitObserver* /*aObserver*/, - TUint aServiceId ) - { - FLOG( _L( "[CSyncService] ConstructL" ) ); - iServiceId = aServiceId; - } - -// ---------------------------------------------------------------------------- -// CSyncService::StartSyncL -// ---------------------------------------------------------------------------- -// -EXPORT_C TUid CSyncService::StartSyncL( TSyncServiceParam aParam ) - { - FLOG( _L( "[CSyncService] StartSyncL" ) ); - - iServiceId = aParam.iServiceId; - iUid = DiscoverL( iServiceId ); - - TInt error = KErrNotFound; - - if( iService.ServerName().Length() > 0 ) - { - FLOG( _L( "[CSyncService] ConstructL connect to existing app" ) ); - TRAP( error, iService.StartSyncL( aParam ) ); - if ( error == KErrNone ) - { - return iUid; - } - } - if ( error ) - { - TFullName aServerName; - if ( iServiceId == KDevManServiceStart ) - { - CRepository* centrep = NULL; - centrep = CRepository::NewL( KCRUidNSmlNotifierDomainKeys ); - centrep->Get( KNSmlDMAppName, aServerName ); - delete centrep; - } - else - { - aServerName = KDataSyncServiceName; - } - FLOG( _L( "[CSyncService] ConstructL connect to existing app with predefined name" ) ); - iService.Close(); - TRAP( error, iService.ConnectExistingByNameL( aServerName ) ); - } - if ( error ) - { - FLOG( _L( "[CSyncService] ConstructL connect to new app" ) ); - TRAP( error, iService.ConnectNewAppL( iUid ) ); - if( error ) - { - FLOG( _L( "[CSyncService] ConnectNewAppL: Error not supported" ) ); - User::Leave( KErrNotSupported ); - } - } - - iService.StartSyncL( aParam ); - return iUid; - } - -// ---------------------------------------------------------------------------- -// CSyncService::EnableProgressNoteL -// ---------------------------------------------------------------------------- -// -EXPORT_C void CSyncService::EnableProgressNoteL( TBool aEnabled ) - { - FLOG( _L( "[CSyncService] EnableProgressNoteL" ) ); - - TFullName DmAppName; - CRepository* centrep = NULL; - centrep = CRepository::NewL( KCRUidNSmlNotifierDomainKeys ); - centrep->Get( KNSmlDMAppName, DmAppName ); - delete centrep; - - if( iService.ServerName().Length() > 0 ) - { - TRAPD(error, iService.EnableProgressNoteL( aEnabled ) ); - if ( error != KErrNone ) - { - TFullName aServerName; - if ( iServiceId == KDevManServiceStart ) - { - aServerName = DmAppName; - } - else - { - aServerName = KDataSyncServiceName; - } - FLOG( _L( "[CSyncService] EnableProgressNoteL connect to existing app with predefined name" ) ); - iService.Close(); - iService.ConnectExistingByNameL( aServerName ); - iService.EnableProgressNoteL( aEnabled ); - } - } - else - { - // Sync has been started from APP UI so connect to the service and enable progressnote - TFullName aServerName; - if ( iServiceId == KDevManServiceStart ) - { - aServerName = DmAppName; - } - else - { - aServerName = KDataSyncServiceName; - } - FLOG( _L( "[CSyncService] EnableProgressNoteL connect to existing app with predefined name" ) ); - iService.ConnectExistingByNameL( aServerName ); - iService.EnableProgressNoteL( aEnabled ); - } - FLOG( _L( "[CSyncService] EnableProgressNoteL" ) ); - } - -// ---------------------------------------------------------------------------- -// CSyncService::DiscoverL -// ---------------------------------------------------------------------------- -// -TUid CSyncService::DiscoverL( TUint aServiceId ) - { - FLOG( _L( "[CSyncService] DiscoverL" ) ); - - CApaAppServiceInfoArray* services = NULL; - RApaLsSession ls; - TUid appUid = TUid::Uid( 0x0 ); // Set the uid as NULL - - if( ls.Connect() == KErrNone ) - { - CleanupClosePushL( ls ); - TInt ret = ls.GetServerApps( TUid::Uid( KSyncServiceUid ) ); - - if( ret != KErrNone ) - { - CleanupStack::PopAndDestroy( ); // closes RApaLsSession - return appUid; // return NULL appUid - } - - services = ls.GetServiceImplementationsLC( TUid::Uid( KSyncServiceUid ) ); - - if( services ) - { - TArray s = services->Array( ); - - TInt count = s.Count( ); - - if( count != 0) - { // - for( TInt i = 0; i < count; i++ ) - { - if( TryMatchL( s[i], appUid, aServiceId ) ) - { // If one of the services match, return the uid set by TryMatchL - break; - } - } - } - } - CleanupStack::PopAndDestroy( 2 ); // destroys services + closes RApaLsSession - } - return appUid; - } - -// ---------------------------------------------------------------------------- -// CSyncService::TryMatchL -// ---------------------------------------------------------------------------- -// -TBool CSyncService::TryMatchL( const TApaAppServiceInfo aInfo, - TUid& aAppUid, - TUint aServiceId ) - { - FLOG( _L( "[CSyncService] TryMatchL" ) ); - - RResourceReader r; - r.OpenLC( aInfo.OpaqueData() ); - - TInt serviceType = r.ReadUint32L( ); // the service type (sync start) - - CleanupStack::PopAndDestroy( ); - - if( serviceType == aServiceId ) - { - aAppUid.iUid = aInfo.Uid( ).iUid; - FLOG( _L( "[CSyncService] TryMatchL return ETrue" ) ); - return ETrue; - } - - FLOG( _L( "[CSyncService] TryMatchL return EFalse" ) ); - return EFalse; - } - -// End of file