VirtualBox

Changeset 18120 in vbox


Ignore:
Timestamp:
Mar 20, 2009 2:38:43 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
44792
Message:

Main/Progress: implement cancelling of activities associated with progress objects

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/ProgressImpl.cpp

    r15165 r18120  
    738738            tr ("Operation cannot be canceled"));
    739739
    740 /// @todo (dmik): implement operation cancellation!
    741 //    mCompleted = TRUE;
    742 //    mCanceled = TRUE;
    743 //    return S_OK;
    744 
    745     ComAssertMsgFailed (("Not implemented!"));
    746     ReturnComNotImplemented();
     740    mCanceled = TRUE;
     741    return S_OK;
    747742}
    748743
     
    763758    AutoWriteLock alock (this);
    764759
    765     AssertReturn (!mCompleted && !mCanceled, E_FAIL);
    766760    AssertReturn (aPercent >= 0 && aPercent <= 100, E_INVALIDARG);
     761
     762    if (mCancelable && mCanceled)
     763    {
     764        Assert(!mCompleted);
     765        return E_FAIL;
     766    }
     767    else
     768        AssertReturn (!mCompleted && !mCanceled, E_FAIL);
     769
    767770
    768771    mOperationPercent = aPercent;
     
    826829
    827830    AssertReturn (mCompleted == FALSE, E_FAIL);
     831
     832    if (mCanceled && SUCCEEDED(aResultCode))
     833        aResultCode = E_FAIL;
    828834
    829835    mCompleted = TRUE;
     
    938944    AutoWriteLock alock (this);
    939945
     946    AssertReturn (mCompleted == FALSE, E_FAIL);
     947
     948    if (mCanceled && SUCCEEDED(aResultCode))
     949        aResultCode = E_FAIL;
     950
    940951    mCompleted = TRUE;
    941952    mResultCode = aResultCode;
     
    14171428        return setError (E_FAIL, tr ("Operation cannot be cancelled"));
    14181429
    1419 /// @todo (dmik): implement operation cancellation!
    1420 //    mCompleted = TRUE;
    1421 //    mCanceled = TRUE;
    1422 //    return S_OK;
    1423 
    1424     ComAssertMsgFailed (("Not implemented!"));
    1425     ReturnComNotImplemented();
     1430    mCanceled = TRUE;
     1431    return S_OK;
    14261432}
    14271433
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette