--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/datasourcemodules/defaultpositioningmodule/src/epos_cposfixstatetimer.cpp Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,182 @@
+// Copyright (c) 2007-2009 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:
+//
+
+
+
+// INCLUDE FILES
+#include "epos_defaultproxycommon.h"
+#include "epos_cposfixstatetimer.h"
+#include "epos_cpossingletonmanager.h"
+#include "epos_mposfixstatetimerlistener.h"
+
+#include <lbs/epos_cpositioner.h>
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CPosFixStateTimer::CPosFixStateTimer(
+ TPositionModuleId aModuleId,
+ MPosFixStateTimerListener& aListener )
+ : iModuleId( aModuleId ),
+ iListener( aListener )
+ {
+ }
+
+// EPOC default constructor can leave.
+void CPosFixStateTimer::ConstructL()
+ {
+ iTimeshiftTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ iUnknownTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ }
+
+// Two phase constructor
+CPosFixStateTimer* CPosFixStateTimer::NewL(
+ TPositionModuleId aModuleId,
+ MPosFixStateTimerListener& aListener )
+ {
+ CPosFixStateTimer* self = new ( ELeave ) CPosFixStateTimer(
+ aModuleId,
+ aListener );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// Destructor
+CPosFixStateTimer::~CPosFixStateTimer()
+ {
+ if ( iTimeshiftTimer )
+ {
+ iTimeshiftTimer->Cancel();
+ delete iTimeshiftTimer;
+ }
+
+ if ( iUnknownTimer )
+ {
+ iUnknownTimer->Cancel();
+ delete iUnknownTimer;
+ }
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::StartTimeshiftTimer
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::StartTimeshiftTimer(
+ TTimeIntervalMicroSeconds aInterval )
+ {
+ if ( iTimeshiftTimer->IsActive() )
+ {
+ return;
+ }
+
+ iTimeshiftTimer->Start(
+ aInterval.Int64(),
+ 0,
+ TCallBack( TimeshiftTimeoutCallback, this ) );
+
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::CancelTimeshiftTimer
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::CancelTimeshiftTimer()
+ {
+ iTimeshiftTimer->Cancel();
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::StartUnknownTimer
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::StartUnknownTimer(
+ TTimeIntervalMicroSeconds aInterval )
+ {
+ if ( iUnknownTimer->IsActive() )
+ {
+ return;
+ }
+
+ iUnknownTimer->Start(
+ aInterval.Int64(),
+ 0,
+ TCallBack( UnknownTimeoutCallback, this ) );
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::CancelUnknownTimer
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::CancelUnknownTimer()
+ {
+ iUnknownTimer->Cancel();
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::ModuleId
+// ---------------------------------------------------------
+//
+TPositionModuleId CPosFixStateTimer::ModuleId() const
+ {
+ return iModuleId;
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::TimeshiftTimeoutCallback
+// ---------------------------------------------------------
+//
+TInt CPosFixStateTimer::TimeshiftTimeoutCallback( TAny* aAny )
+ {
+ reinterpret_cast < CPosFixStateTimer* > ( aAny )->
+ TimeshiftTimeout();
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::TimeshiftTimeout
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::TimeshiftTimeout()
+ {
+ iTimeshiftTimer->Cancel();
+ iListener.TimeshiftTimerTimeout( iModuleId );
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::UnknownTimeoutCallback
+// ---------------------------------------------------------
+//
+TInt CPosFixStateTimer::UnknownTimeoutCallback( TAny* aAny )
+ {
+ reinterpret_cast < CPosFixStateTimer* > ( aAny )->
+ UnknownTimeout();
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CPosFixStateTimer::UnknownTimeout
+// ---------------------------------------------------------
+//
+void CPosFixStateTimer::UnknownTimeout()
+ {
+ iUnknownTimer->Cancel();
+ iListener.UnknownTimerTimeout( iModuleId );
+ }
+
+// End of File