hwrmhaptics/tsrc/hapticstestplugins/src/plugintimer.cpp
changeset 76 cb32bcc88bad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hwrmhaptics/tsrc/hapticstestplugins/src/plugintimer.cpp	Fri Oct 08 14:33:25 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Haptics test adaptation plugin timer implementation
+*
+*/
+
+
+#include "plugintimer.h"
+#include <hwrmpluginservice.h>
+#include <hwrmvibracommands.h>
+#include "hwrmhapticstrace.h"
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::NewL
+// Instantiates a CPluginTimer object.
+// Also adds the newly constructed object to active scheduler and starts the 
+// embedded CTimer through After() method call.
+// -----------------------------------------------------------------------------
+//
+CPluginTimer* CPluginTimer::NewL(
+        const TTimeIntervalMicroSeconds32& aInterval, 
+        MHWRMHapticsPluginCallback* aService,
+        TInt aCommandId,
+        TUint8 aTransId, 
+        TInt aRetVal,
+        MPluginTimerCallback* aCallback )
+    {
+    CPluginTimer* self = new( ELeave ) CPluginTimer( 0, aService, aCommandId, aTransId, aRetVal, aCallback );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    CActiveScheduler::Add( self );
+
+    COMPONENT_TRACE( (_L("HWRM Plugin - CPluginTimer::NewL - Setting timer: %d"), aInterval) );
+
+    self->After( aInterval );
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::~CPluginTimer
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CPluginTimer::~CPluginTimer()    
+    {
+    // PCLint demands
+    iCallback = NULL;
+    iService = NULL; 
+    }
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::CPluginTimer
+// Constructor
+// -----------------------------------------------------------------------------
+//
+CPluginTimer::CPluginTimer( TInt aPriority, 
+                            MHWRMHapticsPluginCallback* aService,
+                            TInt aCommandId,
+                            TUint8 aTransId,
+                            TInt aRetVal,
+                            MPluginTimerCallback* aCallback )
+    : CTimer( aPriority ),
+      iService( aService ),
+      iCommandId( aCommandId ),
+      iTransId( aTransId ),
+      iRetVal( aRetVal ),
+      iCallback( aCallback )
+    {
+    // empty
+    }
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::ConstructL
+// Two-phase (leavable) construction method. Calls the parent class ConstructL.
+// -----------------------------------------------------------------------------
+//
+void CPluginTimer::ConstructL()
+    {
+    CTimer::ConstructL();
+    }
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::RunL
+// Active scheduler calls RunL when timer expires. This in turn dispatches the 
+// further handling to the test stub object through MPluginTimerCallback interface.
+// -----------------------------------------------------------------------------
+//    
+void CPluginTimer::RunL()
+    {
+    iCallback->GenericTimerFired( iService, iCommandId, iTransId, iRetVal );
+    }
+
+// -----------------------------------------------------------------------------
+// CPluginTimer::TransId
+// Getter method for transaction Id.
+// -----------------------------------------------------------------------------
+//
+TUint8 CPluginTimer::TransId() const
+    {
+    return  iTransId;
+    }
+
+// End of files