--- a/syncmlfw/syncservice/SRC/SyncService.cpp Tue Jul 13 09:16:46 2010 +0530
+++ /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 <bldvariant.hrh>
-
-#include <centralrepository.h>
-#include <SyncMLNotifierDomainCRKeys.h>
-#include <SyncServiceSession.h>
-#include <SyncServiceParams.h>
-#include <SyncService.h>
-#include <SyncServiceConst.h>
-#include "SyncServiceDebug.h"
-
-#include <apgcli.h>
-#include <AknServerApp.h>
-#include <barsread2.h>
-
-// ----------------------------------------------------------------------------
-// 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<TApaAppServiceInfo> 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