telephonyserverplugins/simatktsy/src/csattimer.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/simatktsy/src/csattimer.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simatktsy/src/csattimer.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,468 +1,468 @@
-// Copyright (c) 2005-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:
-// Name        : CSatTimer.cpp
-// Part of     : Common Sim Atk TSY / commonsimatktsy
-// Implementation of the sat timer functions. 
-// Version     : 1.0
-//
-
-
-
-//  INCLUDE FILES
-#include "CSatTimer.h"              // Class header
-#include "TfLogger.h"               // For TFLOGSTRING
-#include "CSatNotificationsTsy.h"   // Sat Tsy class
-#include "CSatDataPackage.h"	        // For data packages
-
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSatTimer* CSatTimer::NewL(CSatNotificationsTsy* aSatNotificationsTsy)
-    {    
-    CSatTimer* const self = new ( ELeave ) CSatTimer();
-    CleanupStack::PushL( self );
-    self->ConstructL(aSatNotificationsTsy);
-    CleanupStack::Pop();    	
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::ConstructL
-// Creates CSatTimer object.
-// -----------------------------------------------------------------------------
-//
-void CSatTimer::ConstructL
-        ( 
-        CSatNotificationsTsy* aSatNotificationsTsy
-        )
-    {
-
-    TFLOGSTRING( "CSAT: CSatTimer::ConstructL" );
-    iSatNotificationsTsy = aSatNotificationsTsy;
-    iTimerTable = new ( ELeave ) RArray<TTimer>( KMaxNumberOfParallelTimers );  
-    // Neutral priority, 0
-    iTimer = CHeartbeat::NewL( CActive::EPriorityStandard );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::CSatTimer
-// C++ constructor
-// -----------------------------------------------------------------------------
-//
-CSatTimer::CSatTimer()
-    {    
-    // None
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSatTimer::~CSatTimer
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSatTimer::~CSatTimer
-        (
-        //None
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::~CSatTimer" );
-    if ( iTimer )
-        {
-        // Stop calling Beat...
-        iTimer->Cancel();
-        delete iTimer;
-        }
-
-    if ( iTimerTable )
-	    {
-	    iTimerTable->Close();
-	    delete iTimerTable;
-	    }
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::Start
-// Starts timer.
-// -----------------------------------------------------------------------------
-//
-TInt CSatTimer::Start
-        (
-        TInt aTimerId,      // Timer Id
-        TUint32 aTimerValue // Timer value
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::Start" );
-    TInt ret( KErrNone );
-
-     // Check if the entry is already in the table 
-    if ( CheckTimerTable( aTimerId ) )
-        {
-        // Delete the old entry
-        DeleteTimerById( aTimerId ); 
-        }
-
-    // Calculate the trigger time (actual beat amount + timeout)
-    TUint32 timeStamp = iBeatCounter + aTimerValue;
-    // Create timer
-    TTimer timer( aTimerId, iBeatCounter, timeStamp );
-    
-    // Insert the entry in the table
-    ret = iTimerTable->InsertInOrderAllowRepeats( timer, 
-        TTimer::OrderEntries );
-        
-    // Check if active 
-    if ( ( KErrNone == ret ) && ( !iTimer->IsActive() ) ) 
-        {
-        // Timer tick is on the second 
-        iTimer->Start( ETwelveOClock, this );
-        } 
-
-    return ret;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::Stop
-// Stops timer
-// -----------------------------------------------------------------------------
-//
-void CSatTimer::Stop
-        (
-        //None
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::Stop" );
-    // Check if active 
-    if ( iTimer->IsActive () ) 
-        { 
-        // Cancel beat method calling 
-        iTimer->Cancel(); 
-        } 
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::Beat
-// Beat is called once every second.
-// -----------------------------------------------------------------------------
-//
-void CSatTimer::Beat
-        (
-        //None
-        )
-    {
-	TInt ret( KErrNone );
-    iBeatCounter++;
-    TBool timeStampGreater( ETrue ); 
-    for( TInt numberOfTimers = iTimerTable->Count(); 
-         timeStampGreater && 0 < numberOfTimers; numberOfTimers-- )
-        {
-        // Get the pointer to the TimerTable  
-        TTimer& timerTable = ( *iTimerTable )[ numberOfTimers - 1 ];
-        
-        if ( timerTable.TimeStamp() <= iBeatCounter )
-            {
-            // Proactive command ongoing
-            if( !( iIsProactiveCommandOnGoing ) )
-                {
-                // Call completion of the request due expired timer 
-                TRAPD( trapError, ret = iSatNotificationsTsy->TimerExpirationL( 
-					timerTable.TimerId(), 
-					iBeatCounter - timerTable.TimerStartTime() ) 
-					);
-					
-                if ( trapError )
-					{
-					ret = trapError;
-					TFLOGSTRING2("CSAT: CSatTimer::Beat, Trap error: %d", 
-						trapError);
-					}
-					
-                // Remove timer from the table
-                if ( KErrNone == ret )
-                    {
-                    DeleteTimerById( timerTable.TimerId() );
-                    }
-                }
-            }
-        else // TimerTable->iTimeStamp > iBeatCounter
-            {
-            // Table is ordered -> Break
-            timeStampGreater = EFalse; 
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::Synchronize
-// Called when synchronization is lost. The iBeatCounter is increased.
-// -----------------------------------------------------------------------------
-//
-void CSatTimer::Synchronize
-        (
-        // None
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::Synchronize" );
-    iBeatCounter++;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::CheckTimerTable
-// Check if an entry is in iEntryTable
-// -----------------------------------------------------------------------------
-//
-TBool CSatTimer::CheckTimerTable
-        (
-        TInt aTimerId
-        )
-    {
-    
-    TFLOGSTRING( "CSAT: CSatTimer::CheckTimerTable" );
-    TBool ret( EFalse );
-
-    // Create the entry with meaningful values only
-    TTimer timer( aTimerId, 0, 0 );
-
-    // Find the entry for this Handle in the list 
-    TInt position = iTimerTable->Find ( timer, TTimer::CompareEntries );
-
-    if ( KErrNotFound != position )
-        {
-        ret = ETrue;
-        }
-
-    return ret;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::DeleteTimerById
-// Deletes an entry from the entry table using the handle type 
-// and the handle store as identificators.
-// -----------------------------------------------------------------------------
-//
-TInt CSatTimer::DeleteTimerById
-        (
-        TInt aTimerId // Timer identifier
-        )
-    { 
-    
-    TFLOGSTRING( "CSAT: CSatTimer::DeleteTimerById" );
-    TInt ret( KErrNotFound );
-
-    // Create the entry with meaningful values only
-    TTimer timer( aTimerId, 0, 0 );
-
-    // Find the entry for this Handle in the list 
-    TInt position = iTimerTable->Find ( timer, 
-        TTimer::CompareEntries );  
-    // Check if element is found
-    if ( KErrNotFound != position ) 
-        {
-        iTimerTable->Remove( position );
-        iTimerTable->Compress();
-        // Check if empty
-        if ( 0 == iTimerTable->Count() )
-            {
-            // Restart the beatCounter
-            iBeatCounter = 0;
-            // Stop timer till new entry is done
-            Stop();
-            }
-        ret = KErrNone;
-        }
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::CurrentValueOfTimerById
-// Finds an entry from the entry table using the timer identification
-// -----------------------------------------------------------------------------
-//
-TUint32 CSatTimer::CurrentValueOfTimerById
-        (
-        TInt aTimerId // Timer identifier
-        )
-    { 
-    TFLOGSTRING( "CSAT: CSatTimer::CurrentValueOfTimerById" );
-    TInt ret( KErrNotFound );
-
-    // Create the entry with meaningful values only
-    TTimer timer( aTimerId, 0, 0 );
-
-    // Find the entry for this Handle in the list 
-    TInt position = iTimerTable->Find( timer, 
-        TTimer::CompareEntries );  
-        
-    // Check if element is found
-    if ( KErrNotFound != position ) 
-        {
-        // Get the pointer to the TimerTable  
-        TTimer& timerTable = ( *iTimerTable )[ position ];
-
-        // Get timeStamp
-        TUint32 timerStamp = timerTable.TimeStamp();
-
-        // Current timer value = timer timeout value - current time
-        ret = timerStamp - iBeatCounter;
-
-        // If current timer value is smaller than zero set value to 0
-        // this can happen if there is some kind of delay before 
-        // timer is expired and iBeatCounter is still counting...   
-        if( 0 > ret )
-            {
-            ret = 0;
-            }            
-        }
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::SetProactiveCommandOnGoingStatus
-// Sets ProactiveCommandOngoing status
-// -----------------------------------------------------------------------------
-//
-void CSatTimer::SetProactiveCommandOnGoingStatus
-        ( 
-        TBool aStatus 
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::SetProactiveCommandOnGoingStatus" );
-    iIsProactiveCommandOnGoing = aStatus;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::TTimer
-// Default constructor Sets timer information to the TimerTable
-// -----------------------------------------------------------------------------
-//
-CSatTimer::TTimer::TTimer
-        (
-        TInt aTimerId,       // Timer id
-        TUint32 aStartTime,  // Timer start time
-        TUint32 aTimeStamp   // Time stamp
-        ): iTimerId( aTimerId ), iStartTime( aStartTime ), 
-           iTimeStamp( aTimeStamp )
-    {
-    TFLOGSTRING( "CSAT: TTimer::TTimer" );
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::TimeStamp
-// Gets the value of iTimeStamp
-// -----------------------------------------------------------------------------
-//
-TUint32 CSatTimer::TTimer::TimeStamp
-        (
-        // None
-        )
-    {
-    TFLOGSTRING( "CSAT: TTimer::TimeStamp" );
-    return iTimeStamp;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::TimerId
-// Gets the value of iTimerId
-// -----------------------------------------------------------------------------
-//
-TInt CSatTimer::TTimer::TimerId
-        (
-        // None
-        )
-    {
-    TFLOGSTRING( "CSAT: TTimer::TimerId" );
-    return iTimerId;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::TimerStartTime
-// Gets the value of iStartTime
-// -----------------------------------------------------------------------------
-//
-TUint32 CSatTimer::TTimer::TimerStartTime
-        (
-        // None
-        )
-    {
-    TFLOGSTRING( "CSAT: TTimer::TimerStartTime" );
-    return iStartTime;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::CompareEntries
-// Compares two entries are return if the are same of not.
-// -----------------------------------------------------------------------------
-//
-TBool CSatTimer::TTimer::CompareEntries
-        (
-        const CSatTimer::TTimer& aArg1, 
-        const CSatTimer::TTimer& aArg2 
-        )
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::TTimer::CompareEntries" );
-    TBool ret( EFalse ); 
-
-    // We are interested only in the timer id
-    if ( aArg1.iTimerId == aArg2.iTimerId )
-        {
-        ret =  ETrue;
-        }
-    else
-        {
-        TFLOGSTRING( "CSAT: CSatTimer::TTimer::CompareEntries, Not equal" );
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatTimer::OrderEntries
-// Compares two entries and returns which is the order between them.
-// -----------------------------------------------------------------------------
-//
-TInt CSatTimer::TTimer::OrderEntries 
-        (
-        const CSatTimer::TTimer& aArg1, 
-        const CSatTimer::TTimer& aArg2  
-        ) 
-    {
-    TFLOGSTRING( "CSAT: CSatTimer::TTimer::OrderEntries" );
-    TInt ret( KFirstTimeStampSmaller );
-
-    // We are interested only in the time stamp
-    if ( aArg1.iTimeStamp == aArg2.iTimeStamp )
-        {
-        ret = KTimeStampsEqual;
-        }
-    else if ( aArg1.iTimeStamp > aArg2.iTimeStamp )
-        {
-        ret = KFirstTimeStampBigger;
-        }
-    else
-        {
-        TFLOGSTRING( "CSAT: CSatTimer::TTimer::OrderEntries, \
-            KFirstTimeStampSmaller" );
-        }
-
-    return ret;
-    }
-
-// End of File
-
+// Copyright (c) 2005-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:
+// Name        : CSatTimer.cpp
+// Part of     : Common Sim Atk TSY / commonsimatktsy
+// Implementation of the sat timer functions. 
+// Version     : 1.0
+//
+
+
+
+//  INCLUDE FILES
+#include "CSatTimer.h"              // Class header
+#include "TfLogger.h"               // For TFLOGSTRING
+#include "CSatNotificationsTsy.h"   // Sat Tsy class
+#include "CSatDataPackage.h"	        // For data packages
+
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSatTimer* CSatTimer::NewL(CSatNotificationsTsy* aSatNotificationsTsy)
+    {    
+    CSatTimer* const self = new ( ELeave ) CSatTimer();
+    CleanupStack::PushL( self );
+    self->ConstructL(aSatNotificationsTsy);
+    CleanupStack::Pop();    	
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::ConstructL
+// Creates CSatTimer object.
+// -----------------------------------------------------------------------------
+//
+void CSatTimer::ConstructL
+        ( 
+        CSatNotificationsTsy* aSatNotificationsTsy
+        )
+    {
+
+    TFLOGSTRING( "CSAT: CSatTimer::ConstructL" );
+    iSatNotificationsTsy = aSatNotificationsTsy;
+    iTimerTable = new ( ELeave ) RArray<TTimer>( KMaxNumberOfParallelTimers );  
+    // Neutral priority, 0
+    iTimer = CHeartbeat::NewL( CActive::EPriorityStandard );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::CSatTimer
+// C++ constructor
+// -----------------------------------------------------------------------------
+//
+CSatTimer::CSatTimer()
+    {    
+    // None
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSatTimer::~CSatTimer
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CSatTimer::~CSatTimer
+        (
+        //None
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::~CSatTimer" );
+    if ( iTimer )
+        {
+        // Stop calling Beat...
+        iTimer->Cancel();
+        delete iTimer;
+        }
+
+    if ( iTimerTable )
+	    {
+	    iTimerTable->Close();
+	    delete iTimerTable;
+	    }
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::Start
+// Starts timer.
+// -----------------------------------------------------------------------------
+//
+TInt CSatTimer::Start
+        (
+        TInt aTimerId,      // Timer Id
+        TUint32 aTimerValue // Timer value
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::Start" );
+    TInt ret( KErrNone );
+
+     // Check if the entry is already in the table 
+    if ( CheckTimerTable( aTimerId ) )
+        {
+        // Delete the old entry
+        DeleteTimerById( aTimerId ); 
+        }
+
+    // Calculate the trigger time (actual beat amount + timeout)
+    TUint32 timeStamp = iBeatCounter + aTimerValue;
+    // Create timer
+    TTimer timer( aTimerId, iBeatCounter, timeStamp );
+    
+    // Insert the entry in the table
+    ret = iTimerTable->InsertInOrderAllowRepeats( timer, 
+        TTimer::OrderEntries );
+        
+    // Check if active 
+    if ( ( KErrNone == ret ) && ( !iTimer->IsActive() ) ) 
+        {
+        // Timer tick is on the second 
+        iTimer->Start( ETwelveOClock, this );
+        } 
+
+    return ret;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::Stop
+// Stops timer
+// -----------------------------------------------------------------------------
+//
+void CSatTimer::Stop
+        (
+        //None
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::Stop" );
+    // Check if active 
+    if ( iTimer->IsActive () ) 
+        { 
+        // Cancel beat method calling 
+        iTimer->Cancel(); 
+        } 
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::Beat
+// Beat is called once every second.
+// -----------------------------------------------------------------------------
+//
+void CSatTimer::Beat
+        (
+        //None
+        )
+    {
+	TInt ret( KErrNone );
+    iBeatCounter++;
+    TBool timeStampGreater( ETrue ); 
+    for( TInt numberOfTimers = iTimerTable->Count(); 
+         timeStampGreater && 0 < numberOfTimers; numberOfTimers-- )
+        {
+        // Get the pointer to the TimerTable  
+        TTimer& timerTable = ( *iTimerTable )[ numberOfTimers - 1 ];
+        
+        if ( timerTable.TimeStamp() <= iBeatCounter )
+            {
+            // Proactive command ongoing
+            if( !( iIsProactiveCommandOnGoing ) )
+                {
+                // Call completion of the request due expired timer 
+                TRAPD( trapError, ret = iSatNotificationsTsy->TimerExpirationL( 
+					timerTable.TimerId(), 
+					iBeatCounter - timerTable.TimerStartTime() ) 
+					);
+					
+                if ( trapError )
+					{
+					ret = trapError;
+					TFLOGSTRING2("CSAT: CSatTimer::Beat, Trap error: %d", 
+						trapError);
+					}
+					
+                // Remove timer from the table
+                if ( KErrNone == ret )
+                    {
+                    DeleteTimerById( timerTable.TimerId() );
+                    }
+                }
+            }
+        else // TimerTable->iTimeStamp > iBeatCounter
+            {
+            // Table is ordered -> Break
+            timeStampGreater = EFalse; 
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::Synchronize
+// Called when synchronization is lost. The iBeatCounter is increased.
+// -----------------------------------------------------------------------------
+//
+void CSatTimer::Synchronize
+        (
+        // None
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::Synchronize" );
+    iBeatCounter++;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::CheckTimerTable
+// Check if an entry is in iEntryTable
+// -----------------------------------------------------------------------------
+//
+TBool CSatTimer::CheckTimerTable
+        (
+        TInt aTimerId
+        )
+    {
+    
+    TFLOGSTRING( "CSAT: CSatTimer::CheckTimerTable" );
+    TBool ret( EFalse );
+
+    // Create the entry with meaningful values only
+    TTimer timer( aTimerId, 0, 0 );
+
+    // Find the entry for this Handle in the list 
+    TInt position = iTimerTable->Find ( timer, TTimer::CompareEntries );
+
+    if ( KErrNotFound != position )
+        {
+        ret = ETrue;
+        }
+
+    return ret;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::DeleteTimerById
+// Deletes an entry from the entry table using the handle type 
+// and the handle store as identificators.
+// -----------------------------------------------------------------------------
+//
+TInt CSatTimer::DeleteTimerById
+        (
+        TInt aTimerId // Timer identifier
+        )
+    { 
+    
+    TFLOGSTRING( "CSAT: CSatTimer::DeleteTimerById" );
+    TInt ret( KErrNotFound );
+
+    // Create the entry with meaningful values only
+    TTimer timer( aTimerId, 0, 0 );
+
+    // Find the entry for this Handle in the list 
+    TInt position = iTimerTable->Find ( timer, 
+        TTimer::CompareEntries );  
+    // Check if element is found
+    if ( KErrNotFound != position ) 
+        {
+        iTimerTable->Remove( position );
+        iTimerTable->Compress();
+        // Check if empty
+        if ( 0 == iTimerTable->Count() )
+            {
+            // Restart the beatCounter
+            iBeatCounter = 0;
+            // Stop timer till new entry is done
+            Stop();
+            }
+        ret = KErrNone;
+        }
+
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::CurrentValueOfTimerById
+// Finds an entry from the entry table using the timer identification
+// -----------------------------------------------------------------------------
+//
+TUint32 CSatTimer::CurrentValueOfTimerById
+        (
+        TInt aTimerId // Timer identifier
+        )
+    { 
+    TFLOGSTRING( "CSAT: CSatTimer::CurrentValueOfTimerById" );
+    TInt ret( KErrNotFound );
+
+    // Create the entry with meaningful values only
+    TTimer timer( aTimerId, 0, 0 );
+
+    // Find the entry for this Handle in the list 
+    TInt position = iTimerTable->Find( timer, 
+        TTimer::CompareEntries );  
+        
+    // Check if element is found
+    if ( KErrNotFound != position ) 
+        {
+        // Get the pointer to the TimerTable  
+        TTimer& timerTable = ( *iTimerTable )[ position ];
+
+        // Get timeStamp
+        TUint32 timerStamp = timerTable.TimeStamp();
+
+        // Current timer value = timer timeout value - current time
+        ret = timerStamp - iBeatCounter;
+
+        // If current timer value is smaller than zero set value to 0
+        // this can happen if there is some kind of delay before 
+        // timer is expired and iBeatCounter is still counting...   
+        if( 0 > ret )
+            {
+            ret = 0;
+            }            
+        }
+
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::SetProactiveCommandOnGoingStatus
+// Sets ProactiveCommandOngoing status
+// -----------------------------------------------------------------------------
+//
+void CSatTimer::SetProactiveCommandOnGoingStatus
+        ( 
+        TBool aStatus 
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::SetProactiveCommandOnGoingStatus" );
+    iIsProactiveCommandOnGoing = aStatus;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::TTimer
+// Default constructor Sets timer information to the TimerTable
+// -----------------------------------------------------------------------------
+//
+CSatTimer::TTimer::TTimer
+        (
+        TInt aTimerId,       // Timer id
+        TUint32 aStartTime,  // Timer start time
+        TUint32 aTimeStamp   // Time stamp
+        ): iTimerId( aTimerId ), iStartTime( aStartTime ), 
+           iTimeStamp( aTimeStamp )
+    {
+    TFLOGSTRING( "CSAT: TTimer::TTimer" );
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::TimeStamp
+// Gets the value of iTimeStamp
+// -----------------------------------------------------------------------------
+//
+TUint32 CSatTimer::TTimer::TimeStamp
+        (
+        // None
+        )
+    {
+    TFLOGSTRING( "CSAT: TTimer::TimeStamp" );
+    return iTimeStamp;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::TimerId
+// Gets the value of iTimerId
+// -----------------------------------------------------------------------------
+//
+TInt CSatTimer::TTimer::TimerId
+        (
+        // None
+        )
+    {
+    TFLOGSTRING( "CSAT: TTimer::TimerId" );
+    return iTimerId;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::TimerStartTime
+// Gets the value of iStartTime
+// -----------------------------------------------------------------------------
+//
+TUint32 CSatTimer::TTimer::TimerStartTime
+        (
+        // None
+        )
+    {
+    TFLOGSTRING( "CSAT: TTimer::TimerStartTime" );
+    return iStartTime;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::CompareEntries
+// Compares two entries are return if the are same of not.
+// -----------------------------------------------------------------------------
+//
+TBool CSatTimer::TTimer::CompareEntries
+        (
+        const CSatTimer::TTimer& aArg1, 
+        const CSatTimer::TTimer& aArg2 
+        )
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::TTimer::CompareEntries" );
+    TBool ret( EFalse ); 
+
+    // We are interested only in the timer id
+    if ( aArg1.iTimerId == aArg2.iTimerId )
+        {
+        ret =  ETrue;
+        }
+    else
+        {
+        TFLOGSTRING( "CSAT: CSatTimer::TTimer::CompareEntries, Not equal" );
+        }
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatTimer::OrderEntries
+// Compares two entries and returns which is the order between them.
+// -----------------------------------------------------------------------------
+//
+TInt CSatTimer::TTimer::OrderEntries 
+        (
+        const CSatTimer::TTimer& aArg1, 
+        const CSatTimer::TTimer& aArg2  
+        ) 
+    {
+    TFLOGSTRING( "CSAT: CSatTimer::TTimer::OrderEntries" );
+    TInt ret( KFirstTimeStampSmaller );
+
+    // We are interested only in the time stamp
+    if ( aArg1.iTimeStamp == aArg2.iTimeStamp )
+        {
+        ret = KTimeStampsEqual;
+        }
+    else if ( aArg1.iTimeStamp > aArg2.iTimeStamp )
+        {
+        ret = KFirstTimeStampBigger;
+        }
+    else
+        {
+        TFLOGSTRING( "CSAT: CSatTimer::TTimer::OrderEntries, \
+            KFirstTimeStampSmaller" );
+        }
+
+    return ret;
+    }
+
+// End of File
+