VirtualBox

Changeset 19610 in vbox for trunk


Ignore:
Timestamp:
May 12, 2009 12:10:14 PM (16 years ago)
Author:
vboxsync
Message:

Main/Machine: add extradata key to suppress deleting saved state on discarding it.

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

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

    r19280 r19610  
    24842484        return S_OK;
    24852485
     2486    Utf8Str val;
     2487    HRESULT rc = getExtraData(Utf8Str(aKey), val);
     2488    if (SUCCEEDED(rc))
     2489        val.cloneTo (aValue);
     2490
     2491    return rc;
     2492}
     2493
     2494HRESULT Machine::getExtraData(const Utf8Str &aKey, Utf8Str &aValue)
     2495{
    24862496    HRESULT rc = S_OK;
    24872497
     
    24982508        rc = VirtualBox::loadSettingsTree_Again (tree, file);
    24992509        CheckComRCReturnRC (rc);
    2500 
    2501         const Utf8Str key = aKey;
    25022510
    25032511        Key machineNode = tree.rootKey().key ("Machine");
     
    25112519                 it != items.end(); ++ it)
    25122520            {
    2513                 if (key == (*it).stringValue ("name"))
     2521                if (aKey == (*it).stringValue ("name"))
    25142522                {
    2515                     Bstr val = (*it).stringValue ("value");
    2516                     val.cloneTo (aValue);
     2523                    aValue = (*it).stringValue ("value");
    25172524                    break;
    25182525                }
     
    75877594        }
    75887595
    7589         if (RT_FAILURE(vrc)) 
    7590         {   
     7596        if (RT_FAILURE(vrc))
     7597        {
    75917598            mData->mHandleCfgFile = NIL_RTFILE;
    75927599            mData->mConfigFileReadonly = FALSE;
     
    1126111268    if (deleteSavedState == true)
    1126211269    {
    11263         Assert (!mSSData->mStateFilePath.isEmpty());
    11264         RTFileDelete (Utf8Str (mSSData->mStateFilePath));
     11270        /** @todo remove this API hack, and provide a clean way for
     11271         * detaching a saved state without deleting. */
     11272        Utf8Str val;
     11273        HRESULT rc2 = getExtraData("API/DiscardSavedStateKeepFile", val);
     11274        if (FAILED(rc2) || val != "1")
     11275        {
     11276            Assert (!mSSData->mStateFilePath.isEmpty());
     11277            RTFileDelete (Utf8Str (mSSData->mStateFilePath));
     11278        }
    1126511279        mSSData->mStateFilePath.setNull();
    1126611280        stsFlags |= SaveSTS_StateFilePath;
  • trunk/src/VBox/Main/include/MachineImpl.h

    r19239 r19610  
    794794    HRESULT saveStateSettings (int aFlags);
    795795
     796    HRESULT getExtraData(const Utf8Str &aKey, Utf8Str &aValue);
     797
    796798    HRESULT createImplicitDiffs (const Bstr &aFolder,
    797799                                 ComObjPtr <Progress> &aProgress,
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