diff -r 2872ae438bf7 -r e538444823de locationmanager/server/src/clocationmanagersession.cpp --- a/locationmanager/server/src/clocationmanagersession.cpp Wed Sep 15 12:40:59 2010 +0300 +++ b/locationmanager/server/src/clocationmanagersession.cpp Wed Oct 13 15:02:02 2010 +0300 @@ -48,12 +48,7 @@ CLocationManagerSession::~CLocationManagerSession() { LOG( "CLocationManagerSession::~CLocationManagerSession(), begin" ); - // don't call stop GPS positioning from here... - // we are expecting the application to start and stop else on server terminate, we will do the same. - // this is not okay when user takes a photograph and then transfer photo using BT/PC . - // at this point, it will stop the trail for camera where as camera session is still valid. - - + TRAP_IGNORE(Server().StopGPSPositioningL()); Server().CancelNotificationRequest( iNotificationHandle ); Server().CancelLocationRequest( iLocationHandle ); Server().CancelTrackLogNotificationRequest( iTrackLogNotificationHandle ); @@ -91,15 +86,22 @@ // void CLocationManagerSession::ServiceL( const RMessage2& aMessage ) { - LOG( "CLocationManagerSession::ServiceL, begin" ); - LOG1("Message id - %d", aMessage.Function()); + LOG( "CLocationManagerSession::ServiceL" ); + _LIT( KSemaphore, "LocManSynchSemaphore" ); + RSemaphore semaphore; + const TInt result = semaphore.OpenGlobal( KSemaphore ); + LOG1( "CLocationManagerSession::ServiceL - semaphore open result: %d", result ); iMessage = RMessage2( aMessage ); + if ( result == KErrNone ) + { + semaphore.Signal(); + semaphore.Close(); + } TRAPD( err, DispatchMessageL( aMessage ) ); if ( err != KErrNone ) { aMessage.Complete( err ); } - LOG( "CLocationManagerSession::ServiceL, end" ); } // -------------------------------------------------------------------------- @@ -178,18 +180,6 @@ case ELocManCancelTrackLogNotify: CancelTrackLogNotificationRequest( aMessage ); break; - case ELocManTagPending: - Server().TagPendingRequestL(aMessage); - break; - case ELocManStartGeoTaging: - Server().StartGeoTaggingL(aMessage); - break; - case ELocManCancelTagPendingReq: - Server().CancelTagPendingRequest(aMessage); - break; - case ELocManCancelGeoTaggingReq: - Server().CancelGeoTaggingRequest(aMessage); - break; default: aMessage.Complete( KErrArgument ); break; @@ -504,7 +494,7 @@ } // -------------------------------------------------------------------------- -// CLocationManagerSession::RegisterTrackLogObserver +// CLocationManagerSession::GpsQualityChange // -------------------------------------------------------------------------- // void CLocationManagerSession::RegisterTrackLogObserver( const RMessage2& aMessage ) @@ -513,11 +503,6 @@ TRAP_IGNORE( Server().AddTrackLogNotificationRequestL( aMessage ) ); } - -// -------------------------------------------------------------------------- -// CLocationManagerSession::GetCaptureSettingL -// -------------------------------------------------------------------------- -// void CLocationManagerSession::GetCaptureSettingL( const RMessage2& aMessage ) { TInt KParamCaptureSetting = 0;