diff -r 2872ae438bf7 -r e538444823de locationmanager/server/src/clocationmanagerserver.cpp --- a/locationmanager/server/src/clocationmanagerserver.cpp Wed Sep 15 12:40:59 2010 +0300 +++ b/locationmanager/server/src/clocationmanagerserver.cpp Wed Oct 13 15:02:02 2010 +0300 @@ -17,10 +17,6 @@ #include #include -#include -#include -#include -#include #include "clocationmanagerserver.h" #include "clocationmanagersession.h" @@ -33,12 +29,8 @@ #include "mdeobjectdef.h" #include "mdepropertydef.h" #include "mdcserializationbuffer.h" -#include "clocationgeotagtimerao.h" -#include "nwregistrationstatushandler.h" using namespace MdeConstants; -using namespace CommsDat; - // -------------------------------------------------------------------------- // RunServerL @@ -76,7 +68,6 @@ { TRAP( ret, RunServerL() ); delete cleanup; - cleanup = NULL; } return ret; } @@ -100,10 +91,9 @@ // -------------------------------------------------------------------------- // CLocationManagerServer::CLocationManagerServer() - : CPolicyServer( KLocManagerSessionPriority, + : CPolicyServer( CActive::EPriorityStandard, KLocationManagerPolicy, ESharableSessions ), - iASW(NULL), iTimer( NULL ), iSessionReady( EFalse ), iTagId( 0 ), @@ -111,16 +101,7 @@ iLocManStopRemapDelay( 0 ), iCaptureSetting( RLocationTrail::EOff ), iRemoveLocation( EFalse ), - iWaitForPositioningStopTimeout ( EFalse ), - iTelServerIsOpen(EFalse), - iPhoneIsOpen(EFalse), - iNwRegistrationStatusHandler(NULL), - iHomeNwInfoAvailableFlag(EFalse), - iGeoTagTimer(NULL) -#ifdef LOC_REVERSEGEOCODE - ,iGeoTaggingPendingReqObj(NULL) - ,iEcomSession(NULL) -#endif //LOC_REVERSEGEOCODE + iWaitForPositioningStopTimeout ( EFalse ) { } @@ -134,22 +115,18 @@ LOG ("CLocationManagerServer::ConstructL() begin"); StartL( KLocServerName ); - - // initialize etel - InitialisePhoneL(); + + RProcess process; + process.SetPriority( EPriorityBackground ); + process.Close(); -#ifdef LOC_REVERSEGEOCODE - iEcomSession = &(REComSession::OpenL()); -#endif //LOC_REVERSEGEOCODE - iASW = new (ELeave) CActiveSchedulerWait(); + iMdeSession = CMdESession::NewL( *this ); + iLocationRecord = CLocationRecord::NewL(); + iTrackLog = CTrackLog::NewL(); - iNwRegistrationStatusHandler = CNwRegistrationStatusHandler::NewL(iPhone); + iASW->Start(); - iLocationRecord = CLocationRecord::NewL(*this, iPhone); - iTrackLog = CTrackLog::NewL(); - iMdeSession = CMdESession::NewL( *this ); - iLocationRecord->SetObserver( this ); iLocationRecord->SetAddObserver( iTrackLog ); @@ -157,55 +134,34 @@ iTrackLog->AddGpxObserver( this ); CRepository* repository = CRepository::NewLC( KRepositoryUid ); - TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); - - LOG1("iLocManStopDelay:%d", iLocManStopDelay); + TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay ); + + LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay:%d", iLocManStopDelay); if ( err != KErrNone ) - { - LOG1("iLocManStopDelay err:%d", err); + { + LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay err:%d", err); iLocManStopDelay = KLocationTrailShutdownDelay; - } + } err = repository->Get( KLocationTrailRemapShutdownTimer, iLocManStopRemapDelay ); CleanupStack::PopAndDestroy( repository ); - LOG1("iLocManStopRemapDelay:%d", iLocManStopRemapDelay); + LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay:%d", iLocManStopRemapDelay); if ( err != KErrNone ) { - LOG1("iLocManStopRemapDelay err:%d", err); + LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay err:%d", err); iLocManStopRemapDelay = KLocationTrailRemapShutdownDelay; } - - if( !iSessionReady ) - { - iASW->Start(); - } - - delete iASW; - iASW = NULL; - - if( iSessionReady ) + + TRAPD( error, iTimer = CPeriodic::NewL( CActive::EPriorityUserInput ) ); + if ( error != KErrNone ) { - LOG("Session is ready to give service"); - //Create the instance of the geotagging timer object - // Create timer, if n/w or reverse geo code based feature flag is enabled -#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID) - iGeoTagTimer = CLocationGeoTagTimerAO::NewL(*iMdeSession, *this); - //Schedule a task for geotagging every day at 3.00 AM - iGeoTagTimer->StartTimer(); -#endif - } - else - { - LOG("Unable to open MDE session. Closing.."); - User::Leave( KErrCouldNotConnect ); - } - - RProcess process; - process.SetPriority( EPriorityBackground ); - process.Close(); + LOG("CLocationManagerServer::ConstructL - iTimer not created"); + iTimer = NULL; + } + LOG ("CLocationManagerServer::ConstructL() end"); } @@ -217,30 +173,13 @@ // CLocationManagerServer::~CLocationManagerServer() { - LOG("CLocationManagerServer::~CLocationManagerServer ,begin"); -#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID) - delete iGeoTagTimer; - iGeoTagTimer = NULL; -#endif -#ifdef LOC_REVERSEGEOCODE - delete iGeoTaggingPendingReqObj; - iGeoTaggingPendingReqObj = NULL; -#endif //LOC_REVERSEGEOCODE + delete iLocationRecord; + delete iTrackLog; + delete iTimer; + //delete iRelationQuery; + delete iASW; + delete iMdeSession; - delete iLocationRecord; - iLocationRecord = NULL; - delete iTrackLog; - iTrackLog = NULL; - delete iTimer; - iTimer = NULL; - delete iRelationQuery; - iRelationQuery = NULL; - delete iASW; - iASW = NULL; - delete iMdeSession; - iMdeSession = NULL; - delete iNwRegistrationStatusHandler; - iNwRegistrationStatusHandler = NULL; iTargetObjectIds.Close(); CancelRequests(iNotifReqs); iNotifReqs.Close(); @@ -251,115 +190,9 @@ CancelCopyRequests(iCopyReqs); iCopyReqs.Close(); iSessionCount = 0; - if(iPhoneIsOpen) - { - iPhoneIsOpen = EFalse; // not required - iPhone.Close(); - } - if(iTelServerIsOpen) - { - iTelServerIsOpen = EFalse; - iTelServer.Close(); - } -#ifdef LOC_REVERSEGEOCODE - if(iEcomSession) - { - iEcomSession->Close(); - } -#endif //LOC_REVERSEGEOCODE - LOG("CLocationManagerServer::~CLocationManagerServer ,end"); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::GetCommDbTSYnameL -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::GetCommDbTSYnameL(TDes& aTsyName) - { - LOG( "CLocationManagerServer::GetCommDbTSYnameL(), begin" ); -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - CMDBField* globalSettingField = new(ELeave) CMDBField(KCDTIdBearerAvailabilityCheckTSY); - CleanupStack::PushL(globalSettingField); - globalSettingField->SetRecordId(1); - globalSettingField->SetMaxLengthL(KMaxTextLength); - globalSettingField->LoadL(*db); - aTsyName = *globalSettingField; - CleanupStack::PopAndDestroy(globalSettingField); - - CleanupStack::PopAndDestroy(db); - LOG( "CLocationManagerServer::GetCommDbTSYnameL(), end" ); - } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::InitialisePhoneL // -------------------------------------------------------------------------- -// -void CLocationManagerServer::InitialisePhoneL() - { - LOG( "CLocationManagerServer::InitialisePhoneL(), begin" ); - User::LeaveIfError(iTelServer.Connect()); - iTelServerIsOpen = ETrue; - TBuf tsyName; - GetCommDbTSYnameL(tsyName); - - User::LeaveIfError(iTelServer.LoadPhoneModule(tsyName)); - - TInt numPhones; - User::LeaveIfError(iTelServer.EnumeratePhones(numPhones)); - - TInt phoneIndx; - TInt ret = KErrHardwareNotAvailable; - - for(phoneIndx=0; phoneIndx& aMessageList) @@ -378,10 +211,6 @@ aMessageList.Reset(); } -// -------------------------------------------------------------------------- -// CLocationManagerServer::CancelCopyRequests -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CancelCopyRequests(RArray& aMessageList) { const TInt count = aMessageList.Count(); @@ -398,14 +227,10 @@ aMessageList.Reset(); } -// -------------------------------------------------------------------------- -// CLocationManagerServer::HandleSessionOpened -// -------------------------------------------------------------------------- -// + void CLocationManagerServer::HandleSessionOpened(CMdESession& /*aSession*/, TInt aError) { - LOG ("CLocationManagerServer::HandleSessionOpened() start"); - if ( iASW && iASW->IsStarted() ) + if ( iASW->IsStarted() ) { iASW->AsyncStop(); } @@ -424,31 +249,18 @@ } } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::HandleSessionError -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::HandleSessionError(CMdESession& /*aSession*/, TInt aError) +void CLocationManagerServer::HandleSessionError(CMdESession& /*aSession*/, TInt /*aError*/) { - LOG1 ("CLocationManagerServer::HandleSessionError() start, Error - %d", aError); - ARG_USED(aError); iSessionReady = EFalse; delete iMdeSession; iMdeSession = NULL; - if ( iASW && iASW->IsStarted() ) + if ( iASW->IsStarted() ) { iASW->AsyncStop(); } } - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::IsSessionReady -// -------------------------------------------------------------------------- -// TBool CLocationManagerServer::IsSessionReady() { return iSessionReady; @@ -490,9 +302,11 @@ // void CLocationManagerServer::RemoveSession() { - LOG1( "CLocationManagerServer::RemoveSession. Session count - %d", iSessionCount); iSessionCount--; - StopServer(); + if ( !iSessionCount ) + { + CActiveScheduler::Stop(); + } } // -------------------------------------------------------------------------- @@ -520,8 +334,7 @@ if ( iTimer ) { - delete iTimer; - iTimer = NULL; + iTimer->Cancel(); } iLocationRecord->StartL( aCaptureSetting ); @@ -542,19 +355,24 @@ if( state != RLocationTrail::ETrailStopped && state != RLocationTrail::ETrailStopping ) { - if(iTimer == NULL) + if(!iTimer) { - TRAP_IGNORE(iTimer = CLocationServerTimerHandler::NewL(*this)); + TRAPD( error, iTimer = CPeriodic::NewL( CActive::EPriorityUserInput ) ); + if ( error != KErrNone ) + { + LOG("CLocationManagerServer::StopGPSPositioningL() - iTimer not created"); + iTimer = NULL; + } + } + if(iTimer) + { + iTimer->Cancel(); + iLocationRecord->SetStateToStopping(); + iTimer->Start( iLocManStopDelay * 1000000, 0, TCallBack( CheckForRemappingCallback, this ) ); } - if ( iTimer == NULL) - { - // If timer can't be created we stop the location trail immediately. - iLocationRecord->Stop(); - } else { - iLocationRecord->SetStateToStopping(); - iTimer->StartTimer( iLocManStopDelay * 1000000, MLocationServerTimerObserver::EStopRecording); + iLocationRecord->Stop(); } } @@ -571,61 +389,48 @@ LOG( "CLocationManagerServer::StopRecording()" ); iWaitForPositioningStopTimeout = EFalse; iLocationRecord->Stop(); - } - -// -------------------------------------------------------------------------- -// CLocationUtilityServer::LocationServerTimerCallBackL -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::LocationServerTimerCallBackL - (const TLocationServerTimerType aLocationServerTimerType, const TInt /*aErrorCode*/) - { - LOG1( "CLocationManagerServer::LocationServerTimerCallBackL, begin, Type - %d", - aLocationServerTimerType); - switch(aLocationServerTimerType) - { - case MLocationServerTimerObserver::EStopRecording: - CheckForRemappingCallback(); - break; - case MLocationServerTimerObserver::EPositioningStopTimeout: - PositioningStopTimeout(); - break; - case MLocationServerTimerObserver::ELocGeneralPurpose: - default: - // execution shouldn't come over here. - LOG("Invalid timer type"); - break; - } - LOG( "CLocationManagerServer::LocationServerTimerCallBackL, end" ); + if(iTimer) + { + iTimer->Cancel(); + } + } // -------------------------------------------------------------------------- // CLocationUtilityServer::PositioningStopTimeout // -------------------------------------------------------------------------- // -void CLocationManagerServer::PositioningStopTimeout() +TInt CLocationManagerServer::PositioningStopTimeout( TAny* aAny ) { LOG( "CLocationManagerServer::PositioningStopTimeout" ); - StopRecording(); + CLocationManagerServer* self = STATIC_CAST( CLocationManagerServer*, aAny ); + self->StopRecording(); + + return KErrNone; } // -------------------------------------------------------------------------- -// CLocationUtilityServer::CheckForRemappingCallback +// CLocationUtilityServer::PositioningStopTimeout // -------------------------------------------------------------------------- // -void CLocationManagerServer::CheckForRemappingCallback() +TInt CLocationManagerServer::CheckForRemappingCallback( TAny* aAny ) { - LOG( "CLocationManagerServer::CheckForRemappingCallback, begin" ); - if ( iLocationRecord->RemappingNeeded() && !iLocationRecord->IsLowBattery()) + LOG( "CLocationManagerServer::CheckForRemappingCallback" ); + CLocationManagerServer* self = STATIC_CAST( CLocationManagerServer*, aAny ); + + self->iTimer->Cancel(); + + if ( self->iLocationRecord->RemappingNeeded() && !self->iLocationRecord->IsLowBattery()) { - iTimer->StartTimer( iLocManStopRemapDelay * 1000000, MLocationServerTimerObserver::EPositioningStopTimeout); - iWaitForPositioningStopTimeout = ETrue; + self->iTimer->Start( self->iLocManStopRemapDelay * 1000000, 0, TCallBack( PositioningStopTimeout, self ) ); + self->iWaitForPositioningStopTimeout = ETrue; } else { - StopRecording(); + self->StopRecording(); } - LOG( "CLocationManagerServer::CheckForRemappingCallback, end" ); + + return KErrNone; } // -------------------------------------------------------------------------- @@ -743,7 +548,7 @@ } // -------------------------------------------------------------------------- -// CLocationManagerServer::GetCurrentNetworkInfo +// CLocationManagerServer::GetCurrentCellId // -------------------------------------------------------------------------- // void CLocationManagerServer::GetCurrentNetworkInfo( CTelephony::TNetworkInfoV1& aNetworkInfo ) @@ -825,11 +630,6 @@ LOG( "CLocationManagerServer::CurrentLocation(), end" ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::GPSSignalQualityChanged -// -------------------------------------------------------------------------- -// void CLocationManagerServer::GPSSignalQualityChanged( const TPositionSatelliteInfo& aSatelliteInfo ) { LOG( "CLocationManagerServer::GPSSignalQualityChanged" ); @@ -877,10 +677,7 @@ } -// -------------------------------------------------------------------------- -// CLocationManagerServer::CancelTrackLogNotificationRequest -// -------------------------------------------------------------------------- -// + void CLocationManagerServer::CancelTrackLogNotificationRequest( const TInt aHandle ) { LOG( "CLocationManagerServer::CancelTrackLogNotificationRequest(), begin" ); @@ -907,11 +704,6 @@ LOG( "CLocationManagerServer::CancelTrackLogNotificationRequest(), end" ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CreateLocationObjectL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CreateLocationObjectL( const TLocationData& aLocationData, const TUint& aObjectId ) { @@ -923,21 +715,13 @@ iLocationRecord->CreateLocationObjectL( aLocationData, aObjectId ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::LocationSnapshotL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::LocationSnapshotL( const TUint& aObjectId ) { - LOG( "CLocationManagerServer::LocationSnapshotL(), begin" ); if ( !IsSessionReady() ) { - LOG( "Session is not ready" ); User::Leave( KErrNotReady ); } iLocationRecord->LocationSnapshotL( aObjectId ); - LOG( "CLocationManagerServer::LocationSnapshotL(), end" ); } // -------------------------------------------------------------------------- @@ -973,11 +757,6 @@ iRelationQuery->FindL( 1, 1 ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CopyLocationObjectL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CopyLocationObjectL( TItemId aSource, const RArray& aTargets, TMessageQuery& aMessageQuery ) { @@ -1039,11 +818,6 @@ } } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CopyLocationObjectL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CopyLocationObjectL( const TDesC& aSource, const RArray& aTargets, TMessageQuery& aQuery ) { @@ -1065,24 +839,13 @@ CopyLocationObjectL( source, iTargetObjectIds, aQuery ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::HandleQueryNewResults -// -------------------------------------------------------------------------- -// void CLocationManagerServer::HandleQueryNewResults( CMdEQuery& /*aQuery*/, TInt /*aFirstNewItemIndex*/, TInt /*aNewItemCount*/ ) { } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::HandleQueryCompleted -// -------------------------------------------------------------------------- -// void CLocationManagerServer::HandleQueryCompleted( CMdEQuery& aQuery, TInt aError ) { - LOG("CLocationManagerServer::HandleQueryCompleted"); if ( iRemoveLocation ) { if( aQuery.Count() > 0 && aError == KErrNone ) @@ -1116,7 +879,6 @@ } iCopyReqs[i].iMessage.Complete( aError ); delete iCopyReqs[i].iQuery; - iCopyReqs[i].iQuery = NULL; iCopyReqs.Remove( i ); break; } @@ -1127,11 +889,6 @@ iTargetObjectIds.Reset(); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::NewLC -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CopyLocationL( CMdEQuery& aQuery ) { CMdEObjectDef& locationDef = aQuery.NamespaceDef().GetObjectDefL( Location::KLocationObject ); @@ -1163,18 +920,12 @@ { iCopyReqs[i].iMessage.Complete( KErrNone ); delete iCopyReqs[i].iQuery; - iCopyReqs[i].iQuery = NULL; iCopyReqs.Remove( i ); break; } } } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::InitCopyLocationByIdL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::InitCopyLocationByIdL( const RMessage2& aMessage ) { const TInt KParamSourceId = 0; @@ -1208,11 +959,6 @@ CleanupStack::PopAndDestroy(&targetIds); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::InitCopyLocationByURIL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::InitCopyLocationByURIL( const RMessage2& aMessage ) { LOG( "CLocationManagerSession::CopyLocationDataByUriL begin" ); @@ -1262,14 +1008,8 @@ LOG( "CLocationManagerSession::CopyLocationDataByUriL end" ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StartTrackLogL -// -------------------------------------------------------------------------- -// TItemId CLocationManagerServer::StartTrackLogL() { - LOG("CLocationManagerServer::StartTrackLogL"); if ( iTrackLog->IsRecording() ) { User::Leave( KErrInUse ); @@ -1286,14 +1026,8 @@ return iTagId; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StopTrackLogL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::StopTrackLogL() { - LOG("CLocationManagerServer::StopTrackLogL"); if ( iTrackLog->IsRecording() ) { iTrackLog->StopRecordingL(); @@ -1306,14 +1040,8 @@ } } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CompleteNotifyRequest -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CompleteNotifyRequest( TEventTypes aEventType, TInt aError ) { - LOG("CLocationManagerServer::CompleteNotifyRequest"); const TInt KEventTypeParam = 2; TPckg wrapEventType( aEventType ); @@ -1331,35 +1059,19 @@ iTrackLogNotifyReqs.Reset(); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::IsTrackLogRecording -// -------------------------------------------------------------------------- -// void CLocationManagerServer::IsTrackLogRecording( TBool &aRec ) { aRec = iTrackLog->IsRecording(); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::GpxFileCreated -// -------------------------------------------------------------------------- -// void CLocationManagerServer::GpxFileCreated( const TDesC& aFileName, TItemId aTagId, TReal32 aLength, TTime aStart, TTime aEnd ) { TRAP_IGNORE( CreateTrackLogL( aTagId, aFileName, aLength, aStart, aEnd ) ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CreateTrackLogTagL -// -------------------------------------------------------------------------- -// TItemId CLocationManagerServer::CreateTrackLogTagL() { - LOG("CLocationManagerServer::CreateTrackLogTagL"); if ( !IsSessionReady() ) { User::Leave( KErrNotReady ); @@ -1392,15 +1104,9 @@ return tagId; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CreateTrackLogL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::CreateTrackLogL( TItemId aTagId, const TDesC& aUri, TReal32 aLength, TTime aStart, TTime aEnd ) { - LOG("CLocationManagerServer::CreateTrackLogL"); if ( !IsSessionReady() ) { User::Leave( KErrNotReady ); @@ -1447,11 +1153,6 @@ CleanupStack::PopAndDestroy( trackLog ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::GetTrackLogStatus -// -------------------------------------------------------------------------- -// TInt CLocationManagerServer::GetTrackLogStatus( TBool& aRecording, TPositionSatelliteInfo& aFixQuality) { if ( !iTrackLog ) @@ -1464,11 +1165,6 @@ return KErrNone; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::DeleteTrackLogL -// -------------------------------------------------------------------------- -// TInt CLocationManagerServer::DeleteTrackLogL( const TDesC& aUri ) { LOG( "CLocationManagerServer::DeleteTrackLogL enter" ); @@ -1509,11 +1205,6 @@ return err; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::TrackLogName -// -------------------------------------------------------------------------- -// TInt CLocationManagerServer::TrackLogName( TFileName& aFileName ) { if ( iTrackLog->IsRecording() ) @@ -1524,21 +1215,11 @@ return KErrNotFound; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::GetCaptureSetting -// -------------------------------------------------------------------------- -// void CLocationManagerServer::GetCaptureSetting( RLocationTrail::TTrailCaptureSetting& aCaptureSetting ) { aCaptureSetting = iCaptureSetting; } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::HandleObjectNotification -// -------------------------------------------------------------------------- -// void CLocationManagerServer::HandleObjectNotification( CMdESession& /*aSession*/, TObserverNotificationType aType, const RArray& aObjectIdArray ) @@ -1553,11 +1234,6 @@ TRAP_IGNORE( LinkObjectToTrackLogTagL( aObjectIdArray ) ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StartListeningTagRemovalsL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::StartListeningTagRemovalsL() { if ( !IsSessionReady() ) @@ -1573,11 +1249,6 @@ CleanupStack::Pop( condition ); } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StartListeningObjectCreationsL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::StartListeningObjectCreationsL() { if ( !IsSessionReady() ) @@ -1600,11 +1271,6 @@ } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::LinkObjectToTrackLogTagL -// -------------------------------------------------------------------------- -// void CLocationManagerServer::LinkObjectToTrackLogTagL( const RArray& aObjectIdArray ) { CMdERelationDef& containsRelDef = iMdeSession->GetDefaultNamespaceDefL() @@ -1622,299 +1288,21 @@ } } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::AddGpxObserver -// -------------------------------------------------------------------------- -// void CLocationManagerServer::AddGpxObserver( MGpxConversionObserver* aObserver ) { iTrackLog->AddGpxObserver( aObserver ); } -// -------------------------------------------------------------------------- -// CLocationManagerServer::RemapedCompleted() -// -------------------------------------------------------------------------- -// void CLocationManagerServer::RemapedCompleted() { LOG( "CLocationManagerServer::RemapedCompleted()" ); StopRecording(); } -// -------------------------------------------------------------------------- -// CLocationManagerServer::WaitForPositioningStopTimeout() -// -------------------------------------------------------------------------- -// TBool CLocationManagerServer::WaitForPositioningStopTimeout() { LOG( "CLocationManagerServer::WaitForPositioningStopTimeout()" ); return iWaitForPositioningStopTimeout; } -// -------------------------------------------------------------------------- -// CLocationManagerServer::GeoTaggingCompleted -// -------------------------------------------------------------------------- -// - -void CLocationManagerServer::GeoTaggingCompleted( const TInt aError ) - { - LOG("CLocationManagerServer::GeoTaggingCompleted ,begin"); - ARG_USED(aError); - // do nothing because we are only handling pending request for this object. -#ifdef LOC_REVERSEGEOCODE - if(!iGeoTaggingMessage.IsNull()) - { - LOG("Completing the request"); - iGeoTaggingMessage.Complete(aError); - iGeoTaggingMessage = RMessage2 (); - } -#endif //LOC_REVERSEGEOCODE - StopServer(); - LOG("CLocationManagerServer::GeoTaggingCompleted ,end"); - } - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StopServer -// -------------------------------------------------------------------------- -// - -void CLocationManagerServer::StopServer() - { - LOG("CLocationManagerServer::StopServer ,begin"); - // once geo tagging completed, check whether, we can terminate the server - // dont't stop this process if - // 1. when client are connected. - // 2. 3AM timer is going on. - // 3. Tagging is in progress. - if ( !iSessionCount -#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID) - && iGeoTagTimer == NULL -#endif - && iLocationRecord - && !iLocationRecord->TaggingInProgress()) - { - // Nothing in progress. shutdown the server - LOG("Stop the schedular"); - CActiveScheduler::Stop(); - } - LOG("CLocationManagerServer::StopServer ,end"); - } - -// -------------------------------------------------------------------------- -// CLocationManagerServer::PendingGeoTagReqComplete -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::PendingGeoTagReqComplete( const TInt aError ) - { - LOG("CLocationManagerServer::PendingGeoTagReqComplete ,begin"); - ARG_USED(aError); -#ifdef LOC_REVERSEGEOCODE - if(!iTagPendingMessage.IsNull()) - { - - TGeoTaggingSatus pendingGeoTagEntry = EGeoTagCmpt; - switch(aError) - { - case KErrNotFound: - pendingGeoTagEntry = EGeoTaggingPending; - LOG("Geo tagging pending"); - break; - case KErrInUse: - pendingGeoTagEntry = EGeoTaggingGoingOn; - LOG("Geo tagging going on"); - break; - default: - break; - } - - TPckg pendingGeoTagEntryPkg( pendingGeoTagEntry ); - TRAPD(err, iTagPendingMessage.WriteL( 0, pendingGeoTagEntryPkg )); - iTagPendingMessage.Complete((err == KErrNone) ? KErrNone : err); - iTagPendingMessage = RMessage2 (); - } -#endif //LOC_REVERSEGEOCODE - LOG("CLocationManagerServer::PendingGeoTagReqComplete ,end"); - } - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::TagPendingRequestL -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::TagPendingRequestL( const RMessage2& aMessage ) - { - LOG("CLocationManagerServer::TagPendingRequestL ,begin"); - // Only one request at a time -#ifdef LOC_REVERSEGEOCODE - if(iTagPendingMessage.IsNull() && iGeoTaggingMessage.IsNull()) - { - iTagPendingMessage = RMessage2( aMessage ); - // search for pending entry. - //Create the instance of geotagger class - TBool tagProgress = iLocationRecord->TaggingInProgress(); - if(tagProgress) - { - LOG("Tagging is going on.\n"); - // Let UI to send start geo tagging command. - PendingGeoTagReqComplete(KErrNotFound); - } - else - { - LOG("Tagging is not going on.\n"); - if(iGeoTaggingPendingReqObj == NULL) - { - iGeoTaggingPendingReqObj = CGeoTagger::NewL( this, NULL ); - } - iGeoTaggingPendingReqObj->PendingGeoTagsL( tagProgress); - } - } - else - { - LOG("Server busy\n"); - aMessage.Complete(KErrServerBusy); - } -#else - aMessage.Complete(KErrNotSupported); -#endif //LOC_REVERSEGEOCODE - LOG("CLocationManagerServer::TagPendingRequestL ,end"); - } - - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CancelTagPendingRequest -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::CancelTagPendingRequest( const RMessage2& aMessage ) - { - LOG("CLocationManagerServer::CancelTagPendingRequest ,begin"); - // Only one request at a time -#ifdef LOC_REVERSEGEOCODE - if(!iTagPendingMessage.IsNull()) - { - iTagPendingMessage.Complete(KErrCancel); - iLocationRecord->CancelGeoTagging(); - } - aMessage.Complete(KErrNone); -#else - aMessage.Complete(KErrNotSupported); -#endif //LOC_REVERSEGEOCODE - } - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::CancelGeoTaggingRequest -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::CancelGeoTaggingRequest( const RMessage2& aMessage ) - { - LOG("CLocationManagerServer::CancelGeoTaggingRequest ,begin"); - // Only one request at a time -#ifdef LOC_REVERSEGEOCODE - if(!iGeoTaggingMessage.IsNull()) - { - iGeoTaggingMessage.Complete(KErrCancel); - iGeoTaggingMessage = RMessage2 (); - iLocationRecord->CancelGeoTagging(); - } - aMessage.Complete(KErrNone); -#else - aMessage.Complete(KErrNotSupported); -#endif //LOC_REVERSEGEOCODE - } - - -// -------------------------------------------------------------------------- -// CLocationManagerServer::StartGeoTaggingL -// -------------------------------------------------------------------------- -// -void CLocationManagerServer::StartGeoTaggingL( const RMessage2& aMessage ) - { - LOG("CLocationManagerServer::StartGeoTaggingL ,begin"); -#ifdef LOC_REVERSEGEOCODE - if(iGeoTaggingMessage.IsNull() && iTagPendingMessage.IsNull()) - { - iGeoTaggingMessage = RMessage2( aMessage ); - // search for pending entry. - //Create the instance of geotagger class - if(!iLocationRecord->StartGeoTagging(EInteractive)) - { - if(iGeoTaggingPendingReqObj == NULL) - { - iGeoTaggingPendingReqObj = CGeoTagger::NewL( this, NULL ); - } - iGeoTaggingPendingReqObj->CreateGeoTagsL((TConnectionOption)(aMessage.Int0())); - } - } - else - { - LOG("Server busy\n"); - aMessage.Complete(KErrServerBusy); - } -#else - aMessage.Complete(KErrNotSupported); -#endif //LOC_REVERSEGEOCODE - } - - -// ---------------------------------------------------------------------------- -// CLocationManagerServer::GetCurrentRegisterNw() -// ---------------------------------------------------------------------------- -RMobilePhone::TMobilePhoneNetworkInfoV2& CLocationManagerServer::GetCurrentRegisterNw() - { - LOG( "CLocationManagerServer::GetCurrentRegisterNw ,begin" ); - return iLocationRecord->GetCurrentRegisteredNw(); - } - -// ---------------------------------------------------------------------------- -// CLocationManagerServer::RetrieveHomeNetwork() -// ---------------------------------------------------------------------------- -void CLocationManagerServer::RetrieveHomeNetwork() - { - LOG("CLocationManagerServer::RetrieveHomeNetwork ,begin"); - if(iHomeNwInfoAvailableFlag) - { - RMobilePhone::TMobilePhoneNetworkInfoV1Pckg homeNetworkPckg( iHomeNetwork ); - - TRequestStatus status( KErrNone ); - - iPhone.GetHomeNetwork(status, homeNetworkPckg); - User::WaitForRequest( status ); - if(status.Int() == KErrNone) - { - iHomeNwInfoAvailableFlag = ETrue; - } - } - LOG("CLocationManagerServer::RetrieveHomeNetwork ,end"); - } - -// ---------------------------------------------------------------------------- -// CLocationManagerServer::GetHomeNetworkInfo() -// ---------------------------------------------------------------------------- -const RMobilePhone::TMobilePhoneNetworkInfoV1& - CLocationManagerServer::GetHomeNetworkInfo(TBool& aHomeNwInfoAvailableFlag) - { - LOG("CLocationManagerServer::RetrieveHomeNetwork ,begin"); - if(!iHomeNwInfoAvailableFlag) - { - RetrieveHomeNetwork(); - } - aHomeNwInfoAvailableFlag = iHomeNwInfoAvailableFlag; - return iHomeNetwork; - } - - -// ---------------------------------------------------------------------------- -// CLocationManagerServer::IsRegisteredAtHomeNetwork() -// ---------------------------------------------------------------------------- -TBool CLocationManagerServer::IsRegisteredAtHomeNetwork() - { - LOG( "CLocationManagerServer::IsRegisteredAtHomeNetwork" ); - return (iNwRegistrationStatusHandler && - (iNwRegistrationStatusHandler->GetNetworkRegistrationStatus() - == RMobilePhone::ERegisteredOnHomeNetwork)); - } - // End of file