telephonyserverplugins/common_tsy/commontsy/src/mmutility/CMmPrivateUtility.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/commontsy/src/mmutility/CMmPrivateUtility.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/commontsy/src/mmutility/CMmPrivateUtility.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,349 +1,349 @@
-// Copyright (c) 2006-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 "CMmPrivateUtility.h"
-#include "MmTsy_conf.h"
-#include "CMmCommonStaticUtility.h"
-#include "cmmphonetsy.h"
-#include "cmmcalltsy.h"
-#include "Cmmpacketcontexttsy.h"
-#include <f32file.h>
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// MmTsyPanic
-// Panic method for MM TSY. NOTE! TRAP's can't handle this but Panic goes 
-// through them. Use this method only when Panic is absolutely necessary.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void MmTsyPanic( TMmTsyError aError ) 
-    {
-    _LIT( KPanicCategory, "MM TSY PANIC" );
-    User::Panic( KPanicCategory, aError );
-    }
-
-// ---------------------------------------------------------------------------
-// MmTsyPanic
-// Leave method for MM TSY. TRAP's will handle these cases.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void MmTsyLeaveL( TMmTsyError aError )
-    {
-    User::Leave( aError );
-    }
-    
-// ======== MEMBER FUNCTIONS ========
-
-
-CNetNetworkAvailableInfo::CNetNetworkAvailableInfo() : CBase()
-    {
-    }
-
-CNetNetworkAvailableInfo::~CNetNetworkAvailableInfo()
-    {
-    }
-
-CListReadAllAttempt* CListReadAllAttempt::NewL(
-    RMobilePhone::TClientId* aId )
-    {
-    CListReadAllAttempt* read = new ( ELeave ) CListReadAllAttempt( aId );
-    CleanupStack::PushL( read );
-    read->ConstructL();
-    CleanupStack::Pop();
-    return read;
-    }
-
-CListReadAllAttempt::CListReadAllAttempt(
-    RMobilePhone::TClientId* aId ) : CBase()
-    {
-    iClient.iSessionHandle = aId->iSessionHandle;
-    iClient.iSubSessionHandle = aId->iSubSessionHandle;
-    iListBuf = NULL;
-    }
-
-void CListReadAllAttempt::ConstructL()
-    {
-    }
-
-CListReadAllAttempt::~CListReadAllAttempt()
-    {
-    delete iListBuf;
-    }
-
-CAcquireEntry* CAcquireEntry::NewL(
-    const TTsyReqHandle aTsyReqHandle )
-    {
-    return new ( ELeave ) CAcquireEntry( aTsyReqHandle );
-    }
-
-CAcquireEntry::CAcquireEntry(
-    const TTsyReqHandle aTsyReqHandle )
-    {
-    iTsyReqHandle = aTsyReqHandle;
-    }
-
-CAcquireEntry::~CAcquireEntry()
-    { 
-    }
-
-// ---------------------------------------------------------------------------
-// CAcquireEntry::Deque
-// 
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CAcquireEntry::Deque()
-    {
-    iLink.Deque();
-    iLink.iPrev = iLink.iNext = NULL;
-    }
-
-CAcquireOwnerList* CAcquireOwnerList::NewL()
-    {
-    CAcquireOwnerList* ac = new ( ELeave ) CAcquireOwnerList();
-    CleanupStack::PushL( ac );
-    ac->ConstructL();
-    CleanupStack::Pop();
-    return ac;
-    }
-
-CAcquireOwnerList::CAcquireOwnerList()
-    {
-    }
-
-void CAcquireOwnerList::ConstructL()
-    {
-    iAcquireList.SetOffset( _FOFF ( CAcquireEntry, iLink ) );
-    }
-
-CAcquireOwnerList::~CAcquireOwnerList()
-    { 
-    }
-
-// ---------------------------------------------------------------------------
-// CAcquireOwnerList::FindByTsyReqHandle
-// loop through entries in the iAcquireList and return pointer to  
-// CAcquireEntry object
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-CAcquireEntry* CAcquireOwnerList::FindByTsyReqHandle(
-    const TTsyReqHandle aTsyReqHandle )
-    {
-    CAcquireEntry* entry;
-    TDblQueIter<CAcquireEntry> iter( iAcquireList );
-    while( entry = iter++, entry != NULL )
-        {
-        if( entry->iTsyReqHandle == aTsyReqHandle )
-            return entry;
-        }
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CAcquireOwnerList::Remove
-// delete the entry
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CAcquireOwnerList::Remove(
-    CAcquireEntry* aEntry )
-    {
-    aEntry->Deque();
-    delete aEntry;
-    }
-
-CHeartbeatRunner* CHeartbeatRunner::NewL( CMmCallTsy* aMmCall, CMmPhoneTsy* aMmPhone ) 
-    {
-    CHeartbeatRunner* runner = new ( ELeave ) CHeartbeatRunner;
-    CleanupStack::PushL( runner );
-    runner->iMmCall = aMmCall;
-    runner->iMmPhone = aMmPhone;    
-    runner->ConstructL();
-    CleanupStack::Pop();
-    return runner;
-    }
-
-CHeartbeatRunner::CHeartbeatRunner()
-    {
-    }
-
-void CHeartbeatRunner::ConstructL()
-    {
-    // neutral priority, 0
-    iHeartbeat = CHeartbeat::NewL( CActive::EPriorityStandard );
-    iActive = EFalse; 
-    iStartTime = 0;
-    iAirTimeDuration = EFalse;
-    iPreviousNumberOfBeats = 0;
-    }
-
-CHeartbeatRunner::~CHeartbeatRunner()
-    {
-    if ( iHeartbeat )
-        {
-        //stop calling Beat...
-        iHeartbeat->Cancel();
-        }
-
-    delete iHeartbeat;
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::Start
-// Starts timer.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CHeartbeatRunner::Start()
-    {
-    //Check if active 
-    if ( !iActive ) 
-        {
-        //Initialize iStartime
-        iStartTime.UniversalTime();
-        //Timer tick is on the second 
-        iHeartbeat->Start( ETwelveOClock, this );
-        //Set flag to indicate that timer is active
-        iActive = ETrue;
-        //Set flag to indicate that air time duration counter is not started
-        iAirTimeDuration = EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::StartAirTimeDuration
-// Starts AirTimeDuration timer.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CHeartbeatRunner::StartAirTimeDuration()
-    {
-    //Check if active 
-    if ( !iActive ) 
-        { 
-        //Initialize iStartime
-        iStartTime.UniversalTime();
-        //Timer tick is on the second 
-        iHeartbeat->Start( ETwelveOClock, this );
-        //Set flag to indicate that timer is active
-        iActive = ETrue;
-        //Set flag to indicate that air time duration counter is started
-        iAirTimeDuration = ETrue;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::Stop
-// Stops timer
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool CHeartbeatRunner::Stop()
-    {
-    TBool ret = iActive;
-
-    //Check if active 
-    if ( iActive ) 
-        { 
-        // Save the number of beats
-        iPreviousNumberOfBeats = NumberOfBeats();
-        //Reset iStartTime
-        iStartTime = 0;
-        //Cancel beat method calling 
-        iHeartbeat->Cancel(); 
-        //Set flag to indicate that timer is not active
-        iActive = EFalse;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::Beat
-// Beat is called once every second. If iMmCall is not null
-// (timer is used for calculating the duration of a call), the method
-// CompleteNotifyCallDurationChange is called (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CHeartbeatRunner::Beat()
-    {
-    // if iMmCall is not null, this timer is used to count the duration of a 
-    // call
-    if ( iMmCall )
-        {
-        //complete notify duration change, 1 sec gone
-        iMmCall->CompleteNotifyCallDurationChange();
-        }
-        
-    if ( iMmPhone )
-        {
-        //complete notify duration change, 10 sec gone
-        if ( NumberOfBeats() % iMmPhone->KLifeTimeUpdateInterval == 0 )
-        	{        	
-        	iMmPhone->CompleteNotifyCallDurationChange();
-        	}
-        }                
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::NumberOfBeats
-// Returns number of beats from the previous Start of the timer.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TInt CHeartbeatRunner::NumberOfBeats()
-    {
-    if(iActive)
-    	{
-    	TTime currentTime;
-    	currentTime.UniversalTime();
-    	TTimeIntervalSeconds secondsFromStart( 0 );
-    	currentTime.SecondsFrom( iStartTime, secondsFromStart );
-    	return secondsFromStart.Int();
-    	}
-    return iPreviousNumberOfBeats;
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::Synchronize
-// Implementation of MBeating::Synchronize. Since the number of beats are calculated
-// by using start and actual current times, there is no need for synchronization.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CHeartbeatRunner::Synchronize()
-    {
-    // do nothing 
-    }
-
-// ---------------------------------------------------------------------------
-// CHeartbeatRunner::GetTimerStartTime
-// Returns the starting time of the timer as a TTime pointer
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TTime* CHeartbeatRunner::GetTimerStartTime()
-    {
-    return &iStartTime;
-    }
-
-//  End of File 
+// Copyright (c) 2006-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 "CMmPrivateUtility.h"
+#include "MmTsy_conf.h"
+#include "CMmCommonStaticUtility.h"
+#include "cmmphonetsy.h"
+#include "cmmcalltsy.h"
+#include "Cmmpacketcontexttsy.h"
+#include <f32file.h>
+
+// ======== LOCAL FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// MmTsyPanic
+// Panic method for MM TSY. NOTE! TRAP's can't handle this but Panic goes 
+// through them. Use this method only when Panic is absolutely necessary.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void MmTsyPanic( TMmTsyError aError ) 
+    {
+    _LIT( KPanicCategory, "MM TSY PANIC" );
+    User::Panic( KPanicCategory, aError );
+    }
+
+// ---------------------------------------------------------------------------
+// MmTsyPanic
+// Leave method for MM TSY. TRAP's will handle these cases.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void MmTsyLeaveL( TMmTsyError aError )
+    {
+    User::Leave( aError );
+    }
+    
+// ======== MEMBER FUNCTIONS ========
+
+
+CNetNetworkAvailableInfo::CNetNetworkAvailableInfo() : CBase()
+    {
+    }
+
+CNetNetworkAvailableInfo::~CNetNetworkAvailableInfo()
+    {
+    }
+
+CListReadAllAttempt* CListReadAllAttempt::NewL(
+    RMobilePhone::TClientId* aId )
+    {
+    CListReadAllAttempt* read = new ( ELeave ) CListReadAllAttempt( aId );
+    CleanupStack::PushL( read );
+    read->ConstructL();
+    CleanupStack::Pop();
+    return read;
+    }
+
+CListReadAllAttempt::CListReadAllAttempt(
+    RMobilePhone::TClientId* aId ) : CBase()
+    {
+    iClient.iSessionHandle = aId->iSessionHandle;
+    iClient.iSubSessionHandle = aId->iSubSessionHandle;
+    iListBuf = NULL;
+    }
+
+void CListReadAllAttempt::ConstructL()
+    {
+    }
+
+CListReadAllAttempt::~CListReadAllAttempt()
+    {
+    delete iListBuf;
+    }
+
+CAcquireEntry* CAcquireEntry::NewL(
+    const TTsyReqHandle aTsyReqHandle )
+    {
+    return new ( ELeave ) CAcquireEntry( aTsyReqHandle );
+    }
+
+CAcquireEntry::CAcquireEntry(
+    const TTsyReqHandle aTsyReqHandle )
+    {
+    iTsyReqHandle = aTsyReqHandle;
+    }
+
+CAcquireEntry::~CAcquireEntry()
+    { 
+    }
+
+// ---------------------------------------------------------------------------
+// CAcquireEntry::Deque
+// 
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CAcquireEntry::Deque()
+    {
+    iLink.Deque();
+    iLink.iPrev = iLink.iNext = NULL;
+    }
+
+CAcquireOwnerList* CAcquireOwnerList::NewL()
+    {
+    CAcquireOwnerList* ac = new ( ELeave ) CAcquireOwnerList();
+    CleanupStack::PushL( ac );
+    ac->ConstructL();
+    CleanupStack::Pop();
+    return ac;
+    }
+
+CAcquireOwnerList::CAcquireOwnerList()
+    {
+    }
+
+void CAcquireOwnerList::ConstructL()
+    {
+    iAcquireList.SetOffset( _FOFF ( CAcquireEntry, iLink ) );
+    }
+
+CAcquireOwnerList::~CAcquireOwnerList()
+    { 
+    }
+
+// ---------------------------------------------------------------------------
+// CAcquireOwnerList::FindByTsyReqHandle
+// loop through entries in the iAcquireList and return pointer to  
+// CAcquireEntry object
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+CAcquireEntry* CAcquireOwnerList::FindByTsyReqHandle(
+    const TTsyReqHandle aTsyReqHandle )
+    {
+    CAcquireEntry* entry;
+    TDblQueIter<CAcquireEntry> iter( iAcquireList );
+    while( entry = iter++, entry != NULL )
+        {
+        if( entry->iTsyReqHandle == aTsyReqHandle )
+            return entry;
+        }
+    return NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcquireOwnerList::Remove
+// delete the entry
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CAcquireOwnerList::Remove(
+    CAcquireEntry* aEntry )
+    {
+    aEntry->Deque();
+    delete aEntry;
+    }
+
+CHeartbeatRunner* CHeartbeatRunner::NewL( CMmCallTsy* aMmCall, CMmPhoneTsy* aMmPhone ) 
+    {
+    CHeartbeatRunner* runner = new ( ELeave ) CHeartbeatRunner;
+    CleanupStack::PushL( runner );
+    runner->iMmCall = aMmCall;
+    runner->iMmPhone = aMmPhone;    
+    runner->ConstructL();
+    CleanupStack::Pop();
+    return runner;
+    }
+
+CHeartbeatRunner::CHeartbeatRunner()
+    {
+    }
+
+void CHeartbeatRunner::ConstructL()
+    {
+    // neutral priority, 0
+    iHeartbeat = CHeartbeat::NewL( CActive::EPriorityStandard );
+    iActive = EFalse; 
+    iStartTime = 0;
+    iAirTimeDuration = EFalse;
+    iPreviousNumberOfBeats = 0;
+    }
+
+CHeartbeatRunner::~CHeartbeatRunner()
+    {
+    if ( iHeartbeat )
+        {
+        //stop calling Beat...
+        iHeartbeat->Cancel();
+        }
+
+    delete iHeartbeat;
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::Start
+// Starts timer.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CHeartbeatRunner::Start()
+    {
+    //Check if active 
+    if ( !iActive ) 
+        {
+        //Initialize iStartime
+        iStartTime.UniversalTime();
+        //Timer tick is on the second 
+        iHeartbeat->Start( ETwelveOClock, this );
+        //Set flag to indicate that timer is active
+        iActive = ETrue;
+        //Set flag to indicate that air time duration counter is not started
+        iAirTimeDuration = EFalse;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::StartAirTimeDuration
+// Starts AirTimeDuration timer.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CHeartbeatRunner::StartAirTimeDuration()
+    {
+    //Check if active 
+    if ( !iActive ) 
+        { 
+        //Initialize iStartime
+        iStartTime.UniversalTime();
+        //Timer tick is on the second 
+        iHeartbeat->Start( ETwelveOClock, this );
+        //Set flag to indicate that timer is active
+        iActive = ETrue;
+        //Set flag to indicate that air time duration counter is started
+        iAirTimeDuration = ETrue;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::Stop
+// Stops timer
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TBool CHeartbeatRunner::Stop()
+    {
+    TBool ret = iActive;
+
+    //Check if active 
+    if ( iActive ) 
+        { 
+        // Save the number of beats
+        iPreviousNumberOfBeats = NumberOfBeats();
+        //Reset iStartTime
+        iStartTime = 0;
+        //Cancel beat method calling 
+        iHeartbeat->Cancel(); 
+        //Set flag to indicate that timer is not active
+        iActive = EFalse;
+        }
+
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::Beat
+// Beat is called once every second. If iMmCall is not null
+// (timer is used for calculating the duration of a call), the method
+// CompleteNotifyCallDurationChange is called (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CHeartbeatRunner::Beat()
+    {
+    // if iMmCall is not null, this timer is used to count the duration of a 
+    // call
+    if ( iMmCall )
+        {
+        //complete notify duration change, 1 sec gone
+        iMmCall->CompleteNotifyCallDurationChange();
+        }
+        
+    if ( iMmPhone )
+        {
+        //complete notify duration change, 10 sec gone
+        if ( NumberOfBeats() % iMmPhone->KLifeTimeUpdateInterval == 0 )
+        	{        	
+        	iMmPhone->CompleteNotifyCallDurationChange();
+        	}
+        }                
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::NumberOfBeats
+// Returns number of beats from the previous Start of the timer.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt CHeartbeatRunner::NumberOfBeats()
+    {
+    if(iActive)
+    	{
+    	TTime currentTime;
+    	currentTime.UniversalTime();
+    	TTimeIntervalSeconds secondsFromStart( 0 );
+    	currentTime.SecondsFrom( iStartTime, secondsFromStart );
+    	return secondsFromStart.Int();
+    	}
+    return iPreviousNumberOfBeats;
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::Synchronize
+// Implementation of MBeating::Synchronize. Since the number of beats are calculated
+// by using start and actual current times, there is no need for synchronization.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CHeartbeatRunner::Synchronize()
+    {
+    // do nothing 
+    }
+
+// ---------------------------------------------------------------------------
+// CHeartbeatRunner::GetTimerStartTime
+// Returns the starting time of the timer as a TTime pointer
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TTime* CHeartbeatRunner::GetTimerStartTime()
+    {
+    return &iStartTime;
+    }
+
+//  End of File