wlanutilities/wlansniffer/wlansnifferkeepalive/src/wsfkeepalivetimer.cpp
changeset 31 e8f4211554fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/wlansnifferkeepalive/src/wsfkeepalivetimer.cpp	Mon May 24 21:11:39 2010 +0300
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2010 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:
+* Timer implementation.
+*/
+
+// System include files
+
+// User include files
+
+#include "wsfkeepalivetimer.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "wsfkeepalivetimerTraces.h"
+#endif
+
+// External function prototypes
+
+// Local constants
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+CWsfKeepaliveTimer* CWsfKeepaliveTimer::NewL(
+    MWsfKeepaliveTimerNotify& aNotify )
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_NEWL_ENTRY );
+    
+    CWsfKeepaliveTimer* me =
+        new ( ELeave ) CWsfKeepaliveTimer( aNotify );
+    CleanupStack::PushL( me );
+    me->ConstructL();
+    CleanupStack::Pop( me );
+    
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_NEWL_EXIT );
+    return me;
+    }
+ 
+CWsfKeepaliveTimer::~CWsfKeepaliveTimer()
+    {   
+    OstTraceFunctionEntry0( DUP1_CWSFKEEPALIVETIMER_CWSFKEEPALIVETIMER_ENTRY );
+
+    Cancel();
+    iTimer.Close();
+
+    OstTraceFunctionExit0( DUP1_CWSFKEEPALIVETIMER_CWSFKEEPALIVETIMER_EXIT );
+    }
+ 
+void CWsfKeepaliveTimer::After( TTimeIntervalMicroSeconds32 aInterval )
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_AFTER_ENTRY );
+
+    // Cancel a (possibly) ongoing timer before starting new one
+    Cancel();
+    iTimer.After( iStatus, aInterval );
+    SetActive();
+
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_AFTER_EXIT );
+    }
+ 
+void CWsfKeepaliveTimer::Stop()
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_STOP_ENTRY );
+
+    iTimer.Cancel();
+
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_STOP_EXIT );
+    }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CWsfKeepaliveTimer::CWsfKeepaliveTimer( MWsfKeepaliveTimerNotify& aNotify ) :
+    CActive( EPriorityStandard ),
+    iNotify( aNotify )
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_CWSFKEEPALIVETIMER_ENTRY );
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_CWSFKEEPALIVETIMER_EXIT );
+    }
+ 
+// ---------------------------------------------------------------------------
+// Leaving constructor
+// ---------------------------------------------------------------------------
+//
+void CWsfKeepaliveTimer::ConstructL()
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_CONSTRUCTL_ENTRY );
+ 
+    CActiveScheduler::Add( this );
+    User::LeaveIfError( iTimer.CreateLocal() );
+
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_CONSTRUCTL_EXIT );
+    }
+ 
+// ---------------------------------------------------------------------------
+// Handles an active object's request completion event
+// ---------------------------------------------------------------------------
+//
+void CWsfKeepaliveTimer::RunL()
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_RUNL_ENTRY );
+    
+    iNotify.TimerExpired( iStatus.Int() );
+
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_RUNL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------
+// Implements cancellation of an outstanding request
+// ---------------------------------------------------------------------------
+//
+void CWsfKeepaliveTimer::DoCancel()
+    {
+    OstTraceFunctionEntry0( CWSFKEEPALIVETIMER_DOCANCEL_ENTRY );
+    
+    iTimer.Cancel();
+
+    OstTraceFunctionExit0( CWSFKEEPALIVETIMER_DOCANCEL_EXIT );
+    }