--- a/phoneengine/callhandling/src/cpegprstermination.cpp Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneengine/callhandling/src/cpegprstermination.cpp Wed Sep 01 12:30:10 2010 +0100
@@ -16,8 +16,10 @@
*/
+
// INCLUDE FILES
#include "cpegprstermination.h"
+#include <ccoutlinterface.h>
#include <talogger.h>
// ============================ MEMBER FUNCTIONS ===============================
@@ -41,6 +43,7 @@
{
TEFLOGSTRING( KTAOBJECT, "cpecall: CPEGprsTermination::~CPEGprsTermination" );
Cancel();
+ delete iInterface;
}
// -----------------------------------------------------------------------------
@@ -50,6 +53,15 @@
void CPEGprsTermination::StartL()
{
TEFLOGSTRING( KTAINT, "cpecall: CPEGprsTermination::StartL" );
+
+ Cancel();
+ delete iInterface;
+ iInterface = NULL;
+
+ iInterface = CCoUtlInterface::NewL();
+ TEFLOGSTRING( KTAREQOUT, "cpecall: CPEGprsTermination::StartL CCoUtlInterface::Terminate()" );
+ iInterface->Terminate( iStatus );
+ SetActive();
}
// -----------------------------------------------------------------------------
@@ -59,7 +71,19 @@
TBool CPEGprsTermination::IsTerminating() const
{
TEFLOGSTRING( KTAINT, "cpecall: CPEGprsTermination::IsTerminating" );
- return EFalse;
+ if ( !iInterface )
+ {
+ return EFalse;
+ }
+ else
+ {
+ CCoUtlInterface::TState current =
+ iInterface->CurrentState();
+
+ return
+ ( current != CCoUtlInterface::EIdle ) &&
+ ( current != CCoUtlInterface::EConfirm );
+ }
}
// -----------------------------------------------------------------------------
@@ -69,6 +93,8 @@
void CPEGprsTermination::RunL()
{
TEFLOGSTRING2( KTAREQEND, "cpecall: CPEGprsTermination::RunL status: %d", iStatus.Int() );
+ delete iInterface;
+ iInterface = NULL;
}
// -----------------------------------------------------------------------------
@@ -78,6 +104,10 @@
void CPEGprsTermination::DoCancel()
{
TEFLOGSTRING( KTAREQEND, "cpecall: CPEGprsTermination::DoCancel" );
+ if( iInterface )
+ {
+ iInterface->Cancel();
+ }
}
// End of File