--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosactivetask.cpp Thu Apr 01 23:32:44 2010 +0300
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosactivetask.cpp Fri Apr 16 18:13:14 2010 +0300
@@ -79,6 +79,7 @@
// Start the AO
iStatus = KRequestPending;
+ MPX_DEBUG1("CVcxMyVideosActiveTask::StartL SetActive");
SetActive();
TRequestStatus* status = &iStatus;
User::RequestComplete( status, KErrNone );
@@ -126,6 +127,8 @@
//
void CVcxMyVideosActiveTask::RunL()
{
+ MPX_DEBUG1("CVcxMyVideosActiveTask::RunL() start");
+
switch ( iObserver.HandleStepL() )
{
case MVcxMyVideosActiveTaskObserver::EDone:
@@ -136,10 +139,13 @@
ContinueStepping();
break;
- //observer is responsible for calling Done or ContinueStepping
+ //observer is responsible for calling Done, Cancel or ContinueStepping
case MVcxMyVideosActiveTaskObserver::EStopStepping:
+ MPX_DEBUG1("CVcxMyVideosActiveTask::RunL stopped stepping");
+ iStopped = ETrue;
break;
}
+ MPX_DEBUG1("CVcxMyVideosActiveTask::RunL() exit");
}
// ---------------------------------------------------------------------------
@@ -153,6 +159,7 @@
iObserver.HandleOperationCompleted( KErrNone );
delete iCurCommand;
iCurCommand = NULL;
+ iStopped = EFalse;
MPX_DEBUG1("CVcxMyVideosActiveTask::Done() exit");
}
@@ -165,21 +172,39 @@
{
++iCurStep;
iStatus = KRequestPending;
+ MPX_DEBUG1("CVcxMyVideosActiveTask::ContinueStepping SetActive");
SetActive();
+ iStopped = EFalse;
TRequestStatus* status = &iStatus;
User::RequestComplete( status, KErrNone );
}
+void CVcxMyVideosActiveTask::Cancel()
+ {
+ if ( iStopped && !IsActive() )
+ {
+ MPX_DEBUG1("CVcxMyVideosActiveTask:: was paused, calling DoCancel()");
+ DoCancel();
+ }
+ else
+ {
+ MPX_DEBUG1("CVcxMyVideosActiveTask:: wasn't paused, calling CActive::Cancel() normally");
+ CActive::Cancel();
+ }
+ }
// ---------------------------------------------------------------------------
// From CActive
// ---------------------------------------------------------------------------
//
void CVcxMyVideosActiveTask::DoCancel()
{
+ MPX_DEBUG1("CVcxMyVideosActiveTask::DoCancel() start");
// Callback and cleanup
iObserver.HandleOperationCompleted( KErrCancel );
delete iCurCommand;
iCurCommand = NULL;
+ iStopped = EFalse;
+ MPX_DEBUG1("CVcxMyVideosActiveTask::DoCancel() exit");
}
// ---------------------------------------------------------------------------
@@ -188,11 +213,15 @@
//
TInt CVcxMyVideosActiveTask::RunError( TInt aError )
{
+ MPX_DEBUG1("CVcxMyVideosActiveTask::RunError() start");
+
// Callback and cleanup
iObserver.HandleOperationCompleted( aError );
delete iCurCommand;
iCurCommand = NULL;
+ iStopped = EFalse;
+ MPX_DEBUG1("CVcxMyVideosActiveTask::RunError() exit");
return KErrNone;
}