--- 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