VirtualBox

Changeset 31539 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Aug 10, 2010 3:40:18 PM (14 years ago)
Author:
vboxsync
Message:

Main: use settings struct for machine user data; remove iprt::MiniString::raw() and change all occurences to c_str()

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

Legend:

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

    r31464 r31539  
    106106
    107107        // get name
    108         bstrName1 = mUserData->mName;
     108        Utf8Str strVMName = mUserData->s.strName;
    109109        // get description
    110         bstrDescription = mUserData->mDescription;
     110        Utf8Str strDescription = mUserData->s.strDescription;
    111111        // get guest OS
    112         bstrGuestOSType = mUserData->mOSTypeId;
     112        Utf8Str strOsTypeVBox = mUserData->s.strOsType;
    113113        // CPU count
    114114        cCPUs = mHWData->mCPUCount;
     
    126126
    127127        /* Guest OS type */
    128         Utf8Str strOsTypeVBox(bstrGuestOSType);
    129128        ovf::CIMOSType_T cim = convertVBoxOSType2CIMOSType(strOsTypeVBox.c_str());
    130129        pNewDesc->addEntry(VirtualSystemDescriptionType_OS,
     
    134133
    135134        /* VM name */
    136         Utf8Str strVMName(bstrName1);
    137135        pNewDesc->addEntry(VirtualSystemDescriptionType_Name,
    138136                           "",
     
    141139
    142140        // description
    143         Utf8Str strDescription(bstrDescription);
    144141        pNewDesc->addEntry(VirtualSystemDescriptionType_Description,
    145142                           "",
     
    15061503
    15071504            // create a new hard disk interface for the destination disk image
    1508             Log(("Creating target disk \"%s\"\n", strTargetFilePath.raw()));
     1505            Log(("Creating target disk \"%s\"\n", strTargetFilePath.c_str()));
    15091506            rc = mVirtualBox->CreateHardDisk(bstrSrcFormat, Bstr(strTargetFilePath), pTargetDisk.asOutParam());
    15101507            if (FAILED(rc)) throw rc;
  • trunk/src/VBox/Main/ApplianceImplImport.cpp

    r31333 r31539  
    498498                        /* Construct a unique target path */
    499499                        Utf8StrFmt strPath("%s%c%s",
    500                                            strDefaultHardDiskFolder.raw(),
     500                                           strDefaultHardDiskFolder.c_str(),
    501501                                           RTPATH_DELIMITER,
    502502                                           strFilename.c_str());
     
    19721972     */
    19731973
    1974     config.strDescription = stack.strDescription;
     1974    config.machineUserData.strDescription = stack.strDescription;
    19751975
    19761976    config.hardwareMachine.cCPUs = stack.cCPUs;
     
    20872087                DebugBreakThrow(setError(E_FAIL,
    20882088                                         tr("<vbox:Machine> element in OVF contains a medium attachment for the disk image %s but the OVF describes no such image"),
    2089                                          strUuid.raw()));
     2089                                         strUuid.c_str()));
    20902090        } // for (settings::AttachedDevicesList::const_iterator dit = sc.llAttachedDevices.begin();
    20912091    } // for (settings::StorageControllersList::const_iterator sit = config.storageMachine.llStorageControllers.begin();
  • trunk/src/VBox/Main/ConsoleImpl.cpp

    r31332 r31539  
    23092309                    rc = setError(VBOX_E_FILE_ERROR,
    23102310                        tr("Could not create a directory '%s' to save the state to (%Rrc)"),
    2311                         dir.raw(), vrc);
     2311                        dir.c_str(), vrc);
    23122312                    break;
    23132313                }
     
    29802980    va_end(args);
    29812981    return rc;
    2982 }
    2983 
    2984 HRESULT Console::setAuthLibraryError(const char *filename, int rc)
    2985 {
    2986     return setError(E_FAIL, tr("Could not load the external authentication library '%s' (%Rrc)"), filename, rc);
    29872982}
    29882983
     
    49444939
    49454940    Utf8Str logFile = Utf8StrFmt("%s%cVBox.log",
    4946                                  logDir.raw(), RTPATH_DELIMITER);
     4941                                 logDir.c_str(), RTPATH_DELIMITER);
    49474942    Utf8Str pngFile = Utf8StrFmt("%s%cVBox.png",
    4948                                  logDir.raw(), RTPATH_DELIMITER);
     4943                                 logDir.c_str(), RTPATH_DELIMITER);
    49494944
    49504945    /*
     
    49694964            {
    49704965                if (i > 0)
    4971                     oldName = Utf8StrFmt("%s.%d", files[j]->raw(), i);
     4966                    oldName = Utf8StrFmt("%s.%d", files[j]->c_str(), i);
    49724967                else
    49734968                    oldName = *files[j];
    4974                 newName = Utf8StrFmt("%s.%d", files[j]->raw(), i + 1);
     4969                newName = Utf8StrFmt("%s.%d", files[j]->c_str(), i + 1);
    49754970                /* If the old file doesn't exist, delete the new file (if it
    49764971                 * exists) to provide correct rotation even if the sequence is
     
    49924987    int vrc = RTLogCreateEx(&loggerRelease, fFlags, "all",
    49934988                            "VBOX_RELEASE_LOG", RT_ELEMENTS(s_apszGroups), s_apszGroups,
    4994                             RTLOGDEST_FILE, szError, sizeof(szError), logFile.raw());
     4989                            RTLOGDEST_FILE, szError, sizeof(szError), logFile.c_str());
    49954990    if (RT_SUCCESS(vrc))
    49964991    {
     
    63766371
    63776372    LogFlowThisFunc(("Proxying USB device '%s' {%RTuuid}...\n",
    6378                       Address.raw(), uuid.ptr()));
     6373                      Address.c_str(), uuid.ptr()));
    63796374
    63806375    /* leave the lock before a VMR3* call (EMT will call us back)! */
     
    63836378/** @todo just do everything here and only wrap the PDMR3Usb call. That'll offload some notification stuff from the EMT thread. */
    63846379    int vrc = VMR3ReqCallWait(mpVM, VMCPUID_ANY,
    6385                               (PFNRT) usbAttachCallback, 6, this, aHostDevice, uuid.ptr(), fRemote, Address.raw(), aMaskedIfs);
     6380                              (PFNRT)usbAttachCallback, 6, this, aHostDevice, uuid.ptr(), fRemote, Address.c_str(), aMaskedIfs);
    63866381
    63876382    /* restore the lock */
     
    63936388    {
    63946389        LogWarningThisFunc(("Failed to create proxy device for '%s' {%RTuuid} (%Rrc)\n",
    6395                              Address.raw(), uuid.ptr(), vrc));
     6390                             Address.c_str(), uuid.ptr(), vrc));
    63966391
    63976392        switch (vrc)
     
    69226917
    69236918    LogRel(("Console: VM runtime error: fatal=%RTbool, errorID=%s message=\"%s\"\n",
    6924              fFatal, pszErrorId, message.raw()));
     6919             fFatal, pszErrorId, message.c_str()));
    69256920
    69266921    that->onRuntimeError(BOOL(fFatal), Bstr(pszErrorId), Bstr(message));
     
    72527247            Utf8Str ports = bstr;
    72537248            errMsg = Utf8StrFmt(tr("VRDP server can't bind to a port: %s"),
    7254                                 ports.raw());
     7249                                ports.c_str());
    72557250            LogRel(("Warning: failed to launch VRDP server (%Rrc): '%s'\n",
    7256                     vrc, errMsg.raw()));
     7251                    vrc, errMsg.c_str()));
    72577252        }
    72587253        else if (RT_FAILURE(vrc))
     
    72717266            }
    72727267            LogRel(("Failed to launch VRDP server (%Rrc), error message: '%s'\n",
    7273                      vrc, errMsg.raw()));
     7268                     vrc, errMsg.c_str()));
    72747269            throw setErrorStatic(E_FAIL, errMsg.c_str());
    72757270        }
     
    73667361                {
    73677362                    LogFlowFunc(("Restoring saved state from '%s'...\n",
    7368                                  task->mSavedStateFile.raw()));
     7363                                 task->mSavedStateFile.c_str()));
    73697364
    73707365                    vrc = VMR3LoadFromFile(pVM,
     
    79587953    HRESULT rc = S_OK;
    79597954
    7960     LogFlowFunc(("Saving the state to '%s'...\n", task->mSavedStateFile.raw()));
     7955    LogFlowFunc(("Saving the state to '%s'...\n", task->mSavedStateFile.c_str()));
    79617956
    79627957    bool fSuspenededBySave;
     
    79707965    {
    79717966        errMsg = Utf8StrFmt(Console::tr("Failed to save the machine state to '%s' (%Rrc)"),
    7972                             task->mSavedStateFile.raw(), vrc);
     7967                            task->mSavedStateFile.c_str(), vrc);
    79737968        rc = E_FAIL;
    79747969    }
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r31519 r31539  
    15901590            Assert(macAddr);
    15911591            Utf8Str macAddrUtf8 = macAddr;
    1592             char *macStr = (char*)macAddrUtf8.raw();
     1592            char *macStr = (char*)macAddrUtf8.c_str();
    15931593            Assert(strlen(macStr) == 12);
    15941594            RTMAC Mac;
     
    23492349                continue;
    23502350
    2351             const char *pszExtraDataKey = strKey.raw() + sizeof("VBoxInternal/") - 1;
     2351            const char *pszExtraDataKey = strKey.c_str() + sizeof("VBoxInternal/") - 1;
    23522352
    23532353            // get the value
     
    23592359                hrc = pMachine->GetExtraData(Bstr(strKey), bstrExtraDataValue.asOutParam());
    23602360            if (FAILED(hrc))
    2361                 LogRel(("Warning: Cannot get extra data key %s, rc = %Rrc\n", strKey.raw(), hrc));
     2361                LogRel(("Warning: Cannot get extra data key %s, rc = %Rrc\n", strKey.c_str(), hrc));
    23622362
    23632363            /*
     
    33003300        if (pos == Utf8Str::npos) \
    33013301        { \
    3302             Log(( #res " extracting from %s is failed\n", str.raw())); \
     3302            Log(( #res " extracting from %s is failed\n", str.c_str())); \
    33033303            continue; \
    33043304        } \
    33053305        res = str.substr(ppos, pos - ppos); \
    3306         Log2((#res " %s pos:%d, ppos:%d\n", res.raw(), pos, ppos)); \
     3306        Log2((#res " %s pos:%d, ppos:%d\n", res.c_str(), pos, ppos)); \
    33073307        ppos = pos + 1; \
    33083308    } while (0)
     
    33323332                        continue;
    33333333
    3334                     InsertConfigNode(pCfg, strName.raw(), &pPF);
     3334                    InsertConfigNode(pCfg, strName.c_str(), &pPF);
    33353335                    InsertConfigString(pPF, "Protocol", strProto);
    33363336
     
    33413341                        InsertConfigString(pPF, "GuestIP", strGuestIP);
    33423342
    3343                     port = RTStrToUInt16(strHostPort.raw());
     3343                    port = RTStrToUInt16(strHostPort.c_str());
    33443344                    if (port)
    33453345                        InsertConfigInteger(pPF, "HostPort", port);
    33463346
    3347                     port = RTStrToUInt16(strGuestPort.raw());
     3347                    port = RTStrToUInt16(strGuestPort.c_str());
    33483348                    if (port)
    33493349                        InsertConfigInteger(pPF, "GuestPort", port);
     
    34123412
    34133413                Utf8Str HifNameUtf8(HifName);
    3414                 const char *pszHifName = HifNameUtf8.raw();
     3414                const char *pszHifName = HifNameUtf8.c_str();
    34153415
    34163416# if defined(RT_OS_DARWIN)
     
    38233823
    38243824                Utf8Str HifNameUtf8(HifName);
    3825                 const char *pszHifName = HifNameUtf8.raw();
     3825                const char *pszHifName = HifNameUtf8.c_str();
    38263826                ComPtr<IHostNetworkInterface> hostInterface;
    38273827                rc = host->FindHostNetworkInterfaceByName(HifName, hostInterface.asOutParam());
  • trunk/src/VBox/Main/ConsoleVRDPServer.cpp

    r30871 r31539  
    617617            if ((size_t)cbBuffer >= cbAddress)
    618618            {
    619                 if (cbAddress > 0)
    620                 {
    621                     if (address.raw())
    622                     {
    623                         memcpy(pvBuffer, address.raw(), cbAddress);
    624                     }
    625                     else
    626                     {
    627                         /* The value is an empty string. */
    628                         *(uint8_t *)pvBuffer = 0;
    629                     }
    630                 }
    631 
     619                memcpy(pvBuffer, address.c_str(), cbAddress);
    632620                rc = VINF_SUCCESS;
    633621            }
     
    688676            if ((size_t)cbBuffer >= cbPortRange)
    689677            {
    690                 if (cbPortRange > 0)
    691                 {
    692                     if (portRange.raw())
    693                     {
    694                         memcpy(pvBuffer, portRange.raw(), cbPortRange);
    695                     }
    696                     else
    697                     {
    698                         /* The value is an empty string. */
    699                         *(uint8_t *)pvBuffer = 0;
    700                     }
    701                 }
    702 
     678                memcpy(pvBuffer, portRange.c_str(), cbPortRange);
    703679                rc = VINF_SUCCESS;
    704680            }
     
    14701446
    14711447        int rc;
    1472         if (RTPathHavePath(filename.raw()))
    1473             rc = RTLdrLoad(filename.raw(), &mAuthLibrary);
     1448        if (RTPathHavePath(filename.c_str()))
     1449            rc = RTLdrLoad(filename.c_str(), &mAuthLibrary);
    14741450        else
    1475             rc = RTLdrLoadAppPriv(filename.raw(), &mAuthLibrary);
     1451            rc = RTLdrLoadAppPriv(filename.c_str(), &mAuthLibrary);
    14761452
    14771453        if (RT_FAILURE(rc))
     
    15131489        if (RT_FAILURE(rc))
    15141490        {
    1515             mConsole->setAuthLibraryError(filename.raw(), rc);
     1491            mConsole->setError(E_FAIL,
     1492                               mConsole->tr("Could not load the external authentication library '%s' (%Rrc)"),
     1493                               filename.c_str(),
     1494                               rc);
    15161495
    15171496            mpfnAuthEntry = NULL;
  • trunk/src/VBox/Main/DHCPServerRunner.cpp

    r28800 r31539  
    111111             */
    112112            if (mOptions[i].length())
    113                 args[index++] = mOptions[i].raw();  // value
     113                args[index++] = mOptions[i].c_str();  // value
    114114        }
    115115    }
  • trunk/src/VBox/Main/GuestImpl.cpp

    r31525 r31539  
    466466
    467467            pVMMDevPort->pfnSetCredentials(pVMMDevPort,
    468                                            Utf8Str(aUserName).raw(),
    469                                            Utf8Str(aPassword).raw(),
    470                                            Utf8Str(aDomain).raw(),
     468                                           Utf8Str(aUserName).c_str(),
     469                                           Utf8Str(aPassword).c_str(),
     470                                           Utf8Str(aDomain).c_str(),
    471471                                           u32Flags);
    472472            return S_OK;
     
    10201020                    for (unsigned i = 0; i < env.size(); i++)
    10211021                    {
    1022                         vrc = prepareExecuteEnv(Utf8Str(env[i]).raw(), &pvEnv, &cbEnv, &uNumEnv);
     1022                        vrc = prepareExecuteEnv(Utf8Str(env[i]).c_str(), &pvEnv, &cbEnv, &uNumEnv);
    10231023                        if (RT_FAILURE(vrc))
    10241024                            break;
     
    10271027
    10281028                LogRel(("Executing guest process \"%s\" as user \"%s\" ...\n",
    1029                         Utf8Command.raw(), Utf8UserName.raw()));
     1029                        Utf8Command.c_str(), Utf8UserName.c_str()));
    10301030
    10311031                if (RT_SUCCESS(vrc))
     
    10411041                    int i = 0;
    10421042                    paParms[i++].setUInt32(uContextID);
    1043                     paParms[i++].setPointer((void*)Utf8Command.raw(), (uint32_t)strlen(Utf8Command.raw()) + 1);
     1043                    paParms[i++].setPointer((void*)Utf8Command.c_str(), (uint32_t)Utf8Command.length() + 1);
    10441044                    paParms[i++].setUInt32(aFlags);
    10451045                    paParms[i++].setUInt32(uNumArgs);
     
    10481048                    paParms[i++].setUInt32(cbEnv);
    10491049                    paParms[i++].setPointer((void*)pvEnv, cbEnv);
    1050                     paParms[i++].setPointer((void*)Utf8UserName.raw(), (uint32_t)strlen(Utf8UserName.raw()) + 1);
    1051                     paParms[i++].setPointer((void*)Utf8Password.raw(), (uint32_t)strlen(Utf8Password.raw()) + 1);
     1050                    paParms[i++].setPointer((void*)Utf8UserName.c_str(), (uint32_t)Utf8UserName.length() + 1);
     1051                    paParms[i++].setPointer((void*)Utf8Password.c_str(), (uint32_t)Utf8Password.length() + 1);
    10521052                    paParms[i++].setUInt32(aTimeoutMS);
    10531053
     
    11591159                    {
    11601160                        if (vrc == VERR_FILE_NOT_FOUND) /* This is the most likely error. */
    1161                         {
    11621161                            rc = setError(VBOX_E_IPRT_ERROR,
    1163                                           tr("The file '%s' was not found on guest"), Utf8Command.raw());
    1164                         }
     1162                                          tr("The file '%s' was not found on guest"), Utf8Command.c_str());
    11651163                        else if (vrc == VERR_PATH_NOT_FOUND)
    1166                         {
    11671164                            rc = setError(VBOX_E_IPRT_ERROR,
    1168                                           tr("The path to file '%s' was not found on guest"), Utf8Command.raw());
    1169                         }
     1165                                          tr("The path to file '%s' was not found on guest"), Utf8Command.c_str());
    11701166                        else if (vrc == VERR_BAD_EXE_FORMAT)
    1171                         {
    11721167                            rc = setError(VBOX_E_IPRT_ERROR,
    1173                                           tr("The file '%s' is not an executable format on guest"), Utf8Command.raw());
    1174                         }
     1168                                          tr("The file '%s' is not an executable format on guest"), Utf8Command.c_str());
    11751169                        else if (vrc == VERR_AUTHENTICATION_FAILURE)
    1176                         {
    11771170                            rc = setError(VBOX_E_IPRT_ERROR,
    1178                                           tr("The specified user '%s' was not able to logon on guest"), Utf8UserName.raw());
    1179                         }
     1171                                          tr("The specified user '%s' was not able to logon on guest"), Utf8UserName.c_str());
    11801172                        else if (vrc == VERR_TIMEOUT)
    1181                         {
    11821173                            rc = setError(VBOX_E_IPRT_ERROR,
    11831174                                          tr("The guest did not respond within time (%ums)"), aTimeoutMS);
    1184                         }
    11851175                        else if (vrc == VERR_CANCELLED)
    1186                         {
    11871176                            rc = setError(VBOX_E_IPRT_ERROR,
    11881177                                          tr("The execution operation was canceled"));
    1189                         }
    11901178                        else if (vrc == VERR_PERMISSION_DENIED)
    1191                         {
    11921179                            rc = setError(VBOX_E_IPRT_ERROR,
    11931180                                          tr("Invalid user/password credentials"));
    1194                         }
    11951181                        else
    11961182                        {
     
    12151201            {
    12161202                if (vrc == VERR_INVALID_VM_HANDLE)
    1217                 {
    12181203                    rc = setError(VBOX_E_VM_ERROR,
    12191204                                  tr("VMM device is not available (is the VM running?)"));
    1220                 }
    12211205                else if (vrc == VERR_TIMEOUT)
    1222                 {
    12231206                    rc = setError(VBOX_E_VM_ERROR,
    12241207                                  tr("The guest execution service is not ready"));
    1225                 }
    12261208                else if (vrc == VERR_HGCM_SERVICE_NOT_FOUND)
    1227                 {
    12281209                    rc = setError(VBOX_E_VM_ERROR,
    12291210                                  tr("The guest execution service is not available"));
    1230                 }
    12311211                else /* HGCM call went wrong. */
    1232                 {
    12331212                    rc = setError(E_UNEXPECTED,
    12341213                                  tr("The HGCM call failed with error %Rrc"), vrc);
    1235                 }
    12361214            }
    12371215
     
    12431221        if (RT_FAILURE(vrc))
    12441222            LogRel(("Executing guest process \"%s\" as user \"%s\" failed with %Rrc\n",
    1245                     Utf8Command.raw(), Utf8UserName.raw(), vrc));
     1223                    Utf8Command.c_str(), Utf8UserName.c_str(), vrc));
    12461224    }
    12471225    catch (std::bad_alloc &)
  • trunk/src/VBox/Main/HostNetworkInterfaceImpl.cpp

    r30750 r31539  
    6161 * @param   aGuid GUID of the host network interface
    6262 */
    63 HRESULT HostNetworkInterface::init (Bstr aInterfaceName, Guid aGuid, HostNetworkInterfaceType_T ifType)
     63HRESULT HostNetworkInterface::init(Bstr aInterfaceName, Guid aGuid, HostNetworkInterfaceType_T ifType)
    6464{
    6565    LogFlowThisFunc(("aInterfaceName={%ls}, aGuid={%s}\n",
    66                       aInterfaceName.raw(), aGuid.toString().raw()));
     66                      aInterfaceName.raw(), aGuid.toString().c_str()));
    6767
    6868    ComAssertRet(aInterfaceName, E_INVALIDARG);
     
    7676    unconst(mGuid) = aGuid;
    7777    mIfType = ifType;
    78 
    7978
    8079    /* Confirm a successful initialization */
     
    440439
    441440    ULONG ip, mask;
    442     ip = inet_addr(Utf8Str(aIPAddress).raw());
     441    ip = inet_addr(Utf8Str(aIPAddress).c_str());
    443442    if (ip != INADDR_NONE)
    444443    {
     
    446445            mask = 0xFFFFFF;
    447446        else
    448             mask = inet_addr(Utf8Str(aNetMask).raw());
     447            mask = inet_addr(Utf8Str(aNetMask).c_str());
    449448        if (mask != INADDR_NONE)
    450449        {
     
    567566        if (tmpMask.isEmpty())
    568567            tmpMask = Bstr(VBOXNET_IPV4MASK_DEFAULT);
    569         m.IPAddress = inet_addr(Utf8Str(tmpAddr).raw());
    570         m.networkMask = inet_addr(Utf8Str(tmpMask).raw());
     568        m.IPAddress = inet_addr(Utf8Str(tmpAddr).c_str());
     569        m.networkMask = inet_addr(Utf8Str(tmpMask).c_str());
    571570    }
    572571
  • trunk/src/VBox/Main/MachineDebuggerImpl.cpp

    r30681 r31539  
    657657 * @param   aPattern            The selection pattern. A bit similar to filename globbing.
    658658 */
    659 STDMETHODIMP MachineDebugger::ResetStats (IN_BSTR aPattern)
     659STDMETHODIMP MachineDebugger::ResetStats(IN_BSTR aPattern)
    660660{
    661661    Console::SafeVMPtrQuiet pVM (mParent);
     
    664664        return setError(VBOX_E_INVALID_VM_STATE, "Machine is not running");
    665665
    666     STAMR3Reset (pVM, Utf8Str (aPattern).raw());
     666    STAMR3Reset(pVM, Utf8Str(aPattern).c_str());
    667667
    668668    return S_OK;
     
    682682        return setError(VBOX_E_INVALID_VM_STATE, "Machine is not running");
    683683
    684     STAMR3Dump (pVM, Utf8Str (aPattern).raw());
     684    STAMR3Dump(pVM, Utf8Str(aPattern).c_str());
    685685
    686686    return S_OK;
     
    703703
    704704    char *pszSnapshot;
    705     int vrc = STAMR3Snapshot (pVM, Utf8Str (aPattern).raw(), &pszSnapshot, NULL,
    706                               !!aWithDescriptions);
     705    int vrc = STAMR3Snapshot(pVM, Utf8Str(aPattern).c_str(), &pszSnapshot, NULL,
     706                             !!aWithDescriptions);
    707707    if (RT_FAILURE(vrc))
    708708        return vrc == VERR_NO_MEMORY ? E_OUTOFMEMORY : E_FAIL;
  • trunk/src/VBox/Main/MachineImpl.cpp

    r31482 r31539  
    131131        pMachineConfigFile = NULL;
    132132    }
    133 }
    134 
    135 /////////////////////////////////////////////////////////////////////////////
    136 // Machine::UserData structure
    137 /////////////////////////////////////////////////////////////////////////////
    138 
    139 Machine::UserData::UserData()
    140 {
    141     /* default values for a newly created machine */
    142 
    143     mNameSync = TRUE;
    144     mTeleporterEnabled = FALSE;
    145     mTeleporterPort = 0;
    146     mRTCUseUTC = FALSE;
    147 
    148     /* mName, mOSTypeId, mSnapshotFolder, mSnapshotFolderFull are initialized in
    149      * Machine::init() */
    150 }
    151 
    152 Machine::UserData::~UserData()
    153 {
    154133}
    155134
     
    290269{
    291270    LogFlowThisFuncEnter();
    292     LogFlowThisFunc(("(Init_New) aConfigFile='%s'\n", strConfigFile.raw()));
     271    LogFlowThisFunc(("(Init_New) aConfigFile='%s'\n", strConfigFile.c_str()));
    293272
    294273    /* Enclose the state transition NotReady->InInit->Ready */
     
    317296        unconst(mData->mUuid) = aId;
    318297
    319         mUserData->mName = strName;
    320         mUserData->mNameSync = aNameSync;
     298        mUserData->s.strName = strName;
     299        mUserData->s.fNameSync = aNameSync;
    321300
    322301        /* initialize the default snapshots folder
     
    328307        {
    329308            /* Store OS type */
    330             mUserData->mOSTypeId = aOsType->id();
     309            mUserData->s.strOsType = aOsType->id();
    331310
    332311            /* Apply BIOS defaults */
     
    355334    }
    356335
    357     LogFlowThisFunc(("mName='%ls', mRegistered=%RTbool, mAccessible=%RTbool, rc=%08X\n",
    358                      !!mUserData ? mUserData->mName.raw() : NULL,
     336    LogFlowThisFunc(("mName='%s', mRegistered=%RTbool, mAccessible=%RTbool, rc=%08X\n",
     337                     !!mUserData ? mUserData->s.strName.c_str() : "NULL",
    359338                     mData->mRegistered,
    360339                     mData->mAccessible,
     
    388367{
    389368    LogFlowThisFuncEnter();
    390     LogFlowThisFunc(("(Init_Registered) aConfigFile='%s\n", strConfigFile.raw()));
     369    LogFlowThisFunc(("(Init_Registered) aConfigFile='%s\n", strConfigFile.c_str()));
    391370
    392371    /* Enclose the state transition NotReady->InInit->Ready */
     
    450429    }
    451430
    452     LogFlowThisFunc(("mName='%ls', mRegistered=%RTbool, mAccessible=%RTbool "
     431    LogFlowThisFunc(("mName='%s', mRegistered=%RTbool, mAccessible=%RTbool "
    453432                      "rc=%08X\n",
    454                       !!mUserData ? mUserData->mName.raw() : NULL,
     433                      !!mUserData ? mUserData->s.strName.c_str() : "NULL",
    455434                      mData->mRegistered, mData->mAccessible, rc));
    456435
     
    511490
    512491        // override VM name as well, it may be different
    513         mUserData->mName = strName;
     492        mUserData->s.strName = strName;
    514493
    515494        /* commit all changes made during the initialization */
     
    527506    }
    528507
    529     LogFlowThisFunc(("mName='%ls', mRegistered=%RTbool, mAccessible=%RTbool "
     508    LogFlowThisFunc(("mName='%s', mRegistered=%RTbool, mAccessible=%RTbool "
    530509                     "rc=%08X\n",
    531                       !!mUserData ? mUserData->mName.raw() : NULL,
     510                      !!mUserData ? mUserData->s.strName.c_str() : "NULL",
    532511                      mData->mRegistered, mData->mAccessible, rc));
    533512
     
    567546        return setError(VBOX_E_FILE_ERROR,
    568547                        tr("Invalid machine settings file name '%s' (%Rrc)"),
    569                         strConfigFile.raw(),
     548                        strConfigFile.c_str(),
    570549                        vrc1);
    571550
     
    597576            rc = setError(VBOX_E_FILE_ERROR,
    598577                          tr("Machine settings file '%s' already exists"),
    599                           mData->m_strConfigFileFull.raw());
     578                          mData->m_strConfigFileFull.c_str());
    600579        else
    601580        {
     
    606585                rc = setError(VBOX_E_FILE_ERROR,
    607586                              tr("Could not delete the existing settings file '%s' (%Rrc)"),
    608                               mData->m_strConfigFileFull.raw(), vrc2);
     587                              mData->m_strConfigFileFull.c_str(), vrc2);
    609588        }
    610589    }
     
    614593        rc = setError(VBOX_E_FILE_ERROR,
    615594                      tr("Invalid machine settings file name '%s' (%Rrc)"),
    616                       mData->m_strConfigFileFull.raw(),
     595                      mData->m_strConfigFileFull.c_str(),
    617596                      vrc);
    618597    return rc;
     
    657636                               tr("Machine UUID {%RTuuid} in '%s' doesn't match its UUID {%s} in the registry file '%s'"),
    658637                               mData->pMachineConfigFile->uuid.raw(),
    659                                mData->m_strConfigFileFull.raw(),
    660                                mData->mUuid.toString().raw(),
    661                                mParent->settingsFilePath().raw());
     638                               mData->m_strConfigFileFull.c_str(),
     639                               mData->mUuid.toString().c_str(),
     640                               mParent->settingsFilePath().c_str());
    662641
    663642            rc = loadMachineDataFromSettings(*mData->pMachineConfigFile);
     
    907886    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    908887
    909     mUserData->mName.cloneTo(aName);
     888    mUserData->s.strName.cloneTo(aName);
    910889
    911890    return S_OK;
     
    926905    setModified(IsModified_MachineData);
    927906    mUserData.backup();
    928     mUserData->mName = aName;
     907    mUserData->s.strName = aName;
    929908
    930909    return S_OK;
     
    940919    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    941920
    942     mUserData->mDescription.cloneTo(aDescription);
     921    mUserData->s.strDescription.cloneTo(aDescription);
    943922
    944923    return S_OK;
     
    957936    setModified(IsModified_MachineData);
    958937    mUserData.backup();
    959     mUserData->mDescription = aDescription;
     938    mUserData->s.strDescription = aDescription;
    960939
    961940    return S_OK;
     
    985964    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    986965
    987     mUserData->mOSTypeId.cloneTo(aOSTypeId);
     966    mUserData->s.strOsType.cloneTo(aOSTypeId);
    988967
    989968    return S_OK;
     
    1015994    setModified(IsModified_MachineData);
    1016995    mUserData.backup();
    1017     mUserData->mOSTypeId = osTypeId;
     996    mUserData->s.strOsType = osTypeId;
    1018997
    1019998    return S_OK;
     
    20312010    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    20322011
    2033     mUserData->mSnapshotFolderFull.cloneTo(aSnapshotFolder);
     2012    mUserData->m_strSnapshotFolderFull.cloneTo(aSnapshotFolder);
    20342013
    20352014    return S_OK;
     
    20582037                        tr("The snapshot folder of a machine with snapshots cannot be changed (please delete all snapshots first)"));
    20592038
    2060     Utf8Str snapshotFolder = aSnapshotFolder;
    2061 
    2062     if (snapshotFolder.isEmpty())
     2039    Utf8Str strSnapshotFolder0(aSnapshotFolder);       // keep original
     2040    Utf8Str strSnapshotFolder(strSnapshotFolder0);
     2041
     2042    if (strSnapshotFolder.isEmpty())
    20632043    {
    20642044        if (isInOwnDir())
    2065         {
    20662045            /* the default snapshots folder is 'Snapshots' in the machine dir */
    2067             snapshotFolder = "Snapshots";
    2068         }
     2046            strSnapshotFolder = "Snapshots";
    20692047        else
    2070         {
    20712048            /* the default snapshots folder is {UUID}, for backwards
    20722049             * compatibility and to resolve conflicts */
    2073             snapshotFolder = Utf8StrFmt("{%RTuuid}", mData->mUuid.raw());
    2074         }
    2075     }
    2076 
    2077     int vrc = calculateFullPath(snapshotFolder, snapshotFolder);
     2050            strSnapshotFolder = Utf8StrFmt("{%RTuuid}", mData->mUuid.raw());
     2051    }
     2052
     2053    int vrc = calculateFullPath(strSnapshotFolder, strSnapshotFolder);
    20782054    if (RT_FAILURE(vrc))
    20792055        return setError(E_FAIL,
     
    20832059    setModified(IsModified_MachineData);
    20842060    mUserData.backup();
    2085     mUserData->mSnapshotFolder = aSnapshotFolder;
    2086     mUserData->mSnapshotFolderFull = snapshotFolder;
     2061    mUserData->s.strSnapshotFolder = strSnapshotFolder0;
     2062    mUserData->m_strSnapshotFolderFull = strSnapshotFolder;
    20872063
    20882064    return S_OK;
     
    24642440    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    24652441
    2466     *aEnabled = mUserData->mTeleporterEnabled;
     2442    *aEnabled = mUserData->s.fTeleporterEnabled;
    24672443
    24682444    return S_OK;
     
    24932469    setModified(IsModified_MachineData);
    24942470    mUserData.backup();
    2495     mUserData->mTeleporterEnabled = aEnabled;
     2471    mUserData->s.fTeleporterEnabled = !!aEnabled;
    24962472
    24972473    return S_OK;
     
    25072483    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    25082484
    2509     *aPort = mUserData->mTeleporterPort;
     2485    *aPort = (ULONG)mUserData->s.uTeleporterPort;
    25102486
    25112487    return S_OK;
     
    25272503    setModified(IsModified_MachineData);
    25282504    mUserData.backup();
    2529     mUserData->mTeleporterPort = aPort;
     2505    mUserData->s.uTeleporterPort = (uint32_t)aPort;
    25302506
    25312507    return S_OK;
     
    25412517    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    25422518
    2543     mUserData->mTeleporterAddress.cloneTo(aAddress);
     2519    mUserData->s.strTeleporterAddress.cloneTo(aAddress);
    25442520
    25452521    return S_OK;
     
    25582534    setModified(IsModified_MachineData);
    25592535    mUserData.backup();
    2560     mUserData->mTeleporterAddress = aAddress;
     2536    mUserData->s.strTeleporterAddress = aAddress;
    25612537
    25622538    return S_OK;
     
    25722548    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    25732549
    2574     mUserData->mTeleporterPassword.cloneTo(aPassword);
     2550    mUserData->s.strTeleporterPassword.cloneTo(aPassword);
    25752551
    25762552    return S_OK;
     
    25892565    setModified(IsModified_MachineData);
    25902566    mUserData.backup();
    2591     mUserData->mTeleporterPassword = aPassword;
     2567    mUserData->s.strTeleporterPassword = aPassword;
    25922568
    25932569    return S_OK;
     
    26032579    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    26042580
    2605     *aEnabled = mUserData->mRTCUseUTC;
     2581    *aEnabled = mUserData->s.fRTCUseUTC;
    26062582
    26072583    return S_OK;
     
    26322608    setModified(IsModified_MachineData);
    26332609    mUserData.backup();
    2634     mUserData->mRTCUseUTC = aEnabled;
     2610    mUserData->s.fRTCUseUTC = !!aEnabled;
    26352611
    26362612    return S_OK;
     
    27292705    if (!mData->mRegistered)
    27302706        return setError(E_UNEXPECTED,
    2731                         tr("The machine '%ls' is not registered"),
    2732                         mUserData->mName.raw());
     2707                        tr("The machine '%s' is not registered"),
     2708                        mUserData->s.strName.c_str());
    27332709
    27342710    LogFlowThisFunc(("mSession.mState=%s\n", Global::stringifySessionState(mData->mSession.mState)));
     
    28002776            pSessionControl->Uninitialize();
    28012777            return setError(VBOX_E_INVALID_SESSION_STATE,
    2802                             tr("The machine '%ls' was unlocked unexpectedly while attempting to share its session"),
    2803                                mUserData->mName.raw());
     2778                            tr("The machine '%s' was unlocked unexpectedly while attempting to share its session"),
     2779                               mUserData->s.strName.c_str());
    28042780        }
    28052781
     
    28132789        // sharing not permitted, or machine still unlocking:
    28142790        return setError(VBOX_E_INVALID_OBJECT_STATE,
    2815                         tr("The machine '%ls' is already locked for a session (or being unlocked)"),
    2816                         mUserData->mName.raw());
     2791                        tr("The machine '%s' is already locked for a session (or being unlocked)"),
     2792                        mUserData->s.strName.c_str());
    28172793    }
    28182794    else
     
    28432819                return setError(E_ACCESSDENIED,
    28442820                                tr("An unexpected process (PID=0x%08X) has tried to lock the "
    2845                                    "machine '%ls', while only the process started by launchVMProcess (PID=0x%08X) is allowed"),
    2846                                 pid, mUserData->mName.raw(), mData->mSession.mPid);
     2821                                   "machine '%s', while only the process started by launchVMProcess (PID=0x%08X) is allowed"),
     2822                                pid, mUserData->s.strName.c_str(), mData->mSession.mPid);
    28472823        }
    28482824
     
    31783154            return setError(VBOX_E_OBJECT_IN_USE,
    31793155                            tr("Medium '%s' is already attached to port %d, device %d of controller '%ls' of this virtual machine"),
    3180                             pMedium->getLocationFull().raw(),
     3156                            pMedium->getLocationFull().c_str(),
    31813157                            aControllerPort,
    31823158                            aDevice,
     
    32223198        return setError(VBOX_E_OBJECT_IN_USE,
    32233199                        tr("Medium '%s' is already attached to this virtual machine"),
    3224                         medium->getLocationFull().raw());
     3200                        medium->getLocationFull().c_str());
    32253201
    32263202    bool fIndirect = false;
     
    34173393        rc = diff->init(mParent,
    34183394                        medium->getPreferredDiffFormat(),
    3419                         Utf8StrFmt("%ls"RTPATH_SLASH_STR,
    3420                                    mUserData->mSnapshotFolderFull.raw()).raw(),
     3395                        Utf8Str(mUserData->m_strSnapshotFolderFull).append(RTPATH_SLASH_STR),
    34213396                        &fNeedsSaveSettings);
    34223397        if (FAILED(rc)) return rc;
     
    39853960    if (mData->mSession.mState != SessionState_Unlocked)
    39863961        return setError(VBOX_E_INVALID_OBJECT_STATE,
    3987                         tr("Cannot unregister the machine '%ls' while it is locked"),
    3988                         mUserData->mName.raw());
     3962                        tr("Cannot unregister the machine '%s' while it is locked"),
     3963                        mUserData->s.strName.c_str());
    39893964
    39903965    HRESULT rc = S_OK;
     
    40103985        // fail now before we start detaching media
    40113986        return setError(VBOX_E_INVALID_OBJECT_STATE,
    4012                         tr("Cannot unregister the machine '%ls' because it has %d snapshots"),
    4013                            mUserData->mName.raw(), cSnapshots);
     3987                        tr("Cannot unregister the machine '%s' because it has %d snapshots"),
     3988                           mUserData->s.strName.c_str(), cSnapshots);
    40143989
    40153990    // this list collects the medium objects from all medium attachments
     
    40344009        else
    40354010            return setError(VBOX_E_INVALID_OBJECT_STATE,
    4036                             tr("Cannot unregister the machine '%ls' because it has %d media attachments"),
    4037                             mUserData->mName.raw(), mMediaData->mAttachments.size());
     4011                            tr("Cannot unregister the machine '%s' because it has %d media attachments"),
     4012                            mUserData->s.strName.c_str(), mMediaData->mAttachments.size());
    40384013    }
    40394014
     
    42574232             * files that may have been created by the GUI. */
    42584233            Utf8Str log = Utf8StrFmt("%s%cVBox.log",
    4259                                      logFolder.raw(), RTPATH_DELIMITER);
     4234                                     logFolder.c_str(), RTPATH_DELIMITER);
    42604235            RTFileDelete(log.c_str());
    42614236            log = Utf8StrFmt("%s%cVBox.png",
    4262                              logFolder.raw(), RTPATH_DELIMITER);
     4237                             logFolder.c_str(), RTPATH_DELIMITER);
    42634238            RTFileDelete(log.c_str());
    42644239            for (int i = uLogHistoryCount; i > 0; i--)
    42654240            {
    42664241                log = Utf8StrFmt("%s%cVBox.log.%d",
    4267                                  logFolder.raw(), RTPATH_DELIMITER, i);
     4242                                 logFolder.c_str(), RTPATH_DELIMITER, i);
    42684243                RTFileDelete(log.c_str());
    42694244                log = Utf8StrFmt("%s%cVBox.png.%d",
    4270                                  logFolder.raw(), RTPATH_DELIMITER, i);
     4245                                 logFolder.c_str(), RTPATH_DELIMITER, i);
    42714246                RTFileDelete(log.c_str());
    42724247            }
     
    42784253         * there (we don't check for errors because the user might have
    42794254         * some private files there that we don't want to delete) */
    4280         Utf8Str snapshotFolder(mUserData->mSnapshotFolderFull);
    4281         Assert(snapshotFolder.length());
    4282         if (RTDirExists(snapshotFolder.c_str()))
    4283             RTDirRemove(snapshotFolder.c_str());
     4255        Assert(mUserData->m_strSnapshotFolderFull.length());
     4256        if (RTDirExists(mUserData->m_strSnapshotFolderFull.c_str()))
     4257            RTDirRemove(mUserData->m_strSnapshotFolderFull.c_str());
    42844258
    42854259        /* delete the directory that contains the settings file, but only
     
    46014575        uint32_t fFlags = NILFLAG;
    46024576        if (    (aFlags != NULL)
    4603              && RT_FAILURE(validateFlags(utf8Flags.raw(), &fFlags))
     4577             && RT_FAILURE(validateFlags(utf8Flags.c_str(), &fFlags))
    46044578           )
    46054579            return setError(E_INVALIDARG,
     
    46604634        if (   SUCCEEDED(rc)
    46614635            && (   mHWData->mGuestPropertyNotificationPatterns.isEmpty()
    4662                 || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.raw(), RTSTR_MAX,
    4663                                                 utf8Name.raw(), RTSTR_MAX, NULL) )
     4636                || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.c_str(),
     4637                                                RTSTR_MAX,
     4638                                                utf8Name.c_str(),
     4639                                                RTSTR_MAX,
     4640                                                NULL)
     4641               )
    46644642           )
    46654643        {
     
    47614739         ++it)
    47624740        if (   strPatterns.isEmpty()
    4763             || RTStrSimplePatternMultiMatch(strPatterns.raw(),
     4741            || RTStrSimplePatternMultiMatch(strPatterns.c_str(),
    47644742                                            RTSTR_MAX,
    4765                                             it->strName.raw(),
    4766                                             RTSTR_MAX, NULL)
     4743                                            it->strName.c_str(),
     4744                                            RTSTR_MAX,
     4745                                            NULL)
    47674746           )
    47684747            propList.push_back(*it);
     
    50575036#define sSSMDisplayScreenshotVer 0x00010001
    50585037
    5059 static int readSavedDisplayScreenshot(Utf8Str *pStateFilePath, uint32_t u32Type, uint8_t **ppu8Data, uint32_t *pcbData, uint32_t *pu32Width, uint32_t *pu32Height)
    5060 {
    5061     LogFlowFunc(("u32Type = %d [%s]\n", u32Type, pStateFilePath->raw()));
     5038static int readSavedDisplayScreenshot(const Utf8Str &strStateFilePath, uint32_t u32Type, uint8_t **ppu8Data, uint32_t *pcbData, uint32_t *pu32Width, uint32_t *pu32Height)
     5039{
     5040    LogFlowFunc(("u32Type = %d [%s]\n", u32Type, strStateFilePath.c_str()));
    50625041
    50635042    /* @todo cache read data */
    5064     if (pStateFilePath->isEmpty())
     5043    if (strStateFilePath.isEmpty())
    50655044    {
    50665045        /* No saved state data. */
     
    50745053
    50755054    PSSMHANDLE pSSM;
    5076     int vrc = SSMR3Open(pStateFilePath->raw(), 0 /*fFlags*/, &pSSM);
     5055    int vrc = SSMR3Open(strStateFilePath.c_str(), 0 /*fFlags*/, &pSSM);
    50775056    if (RT_SUCCESS(vrc))
    50785057    {
     
    51975176    uint32_t u32Height = 0;
    51985177
    5199     int vrc = readSavedDisplayScreenshot(&mSSData->mStateFilePath, 0 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
     5178    int vrc = readSavedDisplayScreenshot(mSSData->mStateFilePath, 0 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
    52005179
    52015180    if (RT_FAILURE(vrc))
     
    52345213    uint32_t u32Height = 0;
    52355214
    5236     int vrc = readSavedDisplayScreenshot(&mSSData->mStateFilePath, 0 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
     5215    int vrc = readSavedDisplayScreenshot(mSSData->mStateFilePath, 0 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
    52375216
    52385217    if (RT_FAILURE(vrc))
     
    52965275    uint32_t u32Height = 0;
    52975276
    5298     int vrc = readSavedDisplayScreenshot(&mSSData->mStateFilePath, 1 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
     5277    int vrc = readSavedDisplayScreenshot(mSSData->mStateFilePath, 1 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
    52995278
    53005279    if (RT_FAILURE(vrc))
     
    53335312    uint32_t u32Height = 0;
    53345313
    5335     int vrc = readSavedDisplayScreenshot(&mSSData->mStateFilePath, 1 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
     5314    int vrc = readSavedDisplayScreenshot(mSSData->mStateFilePath, 1 /* u32Type */, &pu8Data, &cbData, &u32Width, &u32Height);
    53365315
    53375316    if (RT_FAILURE(vrc))
     
    54985477
    54995478    RTFILE LogFile;
    5500     int vrc = RTFileOpen(&LogFile, log.raw(),
     5479    int vrc = RTFileOpen(&LogFile, log.c_str(),
    55015480                         RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_NONE);
    55025481    if (RT_SUCCESS(vrc))
     
    55085487            rc = setError(VBOX_E_IPRT_ERROR,
    55095488                          tr("Could not read log file '%s' (%Rrc)"),
    5510                           log.raw(), vrc);
     5489                          log.c_str(), vrc);
    55115490        RTFileClose(LogFile);
    55125491    }
     
    55145493        rc = setError(VBOX_E_IPRT_ERROR,
    55155494                      tr("Could not open log file '%s' (%Rrc)"),
    5516                       log.raw(), vrc);
     5495                      log.c_str(), vrc);
    55175496
    55185497    if (FAILED(rc))
     
    56305609    Utf8Str settingsDir;
    56315610    if (isInOwnDir(&settingsDir))
    5632     {
    56335611        /* Log folder is <Machines>/<VM_Name>/Logs */
    5634         aLogFolder = Utf8StrFmt("%s%cLogs", settingsDir.raw(), RTPATH_DELIMITER);
    5635     }
     5612        aLogFolder = settingsDir;
    56365613    else
    56375614    {
    56385615        /* Log folder is <Machines>/<VM_SnapshotFolder>/Logs */
    5639         Assert(!mUserData->mSnapshotFolderFull.isEmpty());
    5640         aLogFolder = Utf8StrFmt ("%ls%cLogs", mUserData->mSnapshotFolderFull.raw(),
    5641                                  RTPATH_DELIMITER);
    5642     }
     5616        Assert(!mUserData->m_strSnapshotFolderFull.isEmpty());
     5617        aLogFolder = mUserData->m_strSnapshotFolderFull;
     5618    }
     5619
     5620    aLogFolder.append(RTPATH_DELIMITER);
     5621    aLogFolder.append("Logs");
    56435622}
    56445623
     
    56545633    if (idx == 0)
    56555634        log = Utf8StrFmt("%s%cVBox.log",
    5656                          logFolder.raw(), RTPATH_DELIMITER);
     5635                         logFolder.c_str(), RTPATH_DELIMITER);
    56575636    else
    56585637        log = Utf8StrFmt("%s%cVBox.log.%d",
    5659                          logFolder.raw(), RTPATH_DELIMITER, idx);
     5638                         logFolder.c_str(), RTPATH_DELIMITER, idx);
    56605639    return log;
    56615640}
     
    56825661    if (!mData->mRegistered)
    56835662        return setError(E_UNEXPECTED,
    5684                         tr("The machine '%ls' is not registered"),
    5685                         mUserData->mName.raw());
     5663                        tr("The machine '%s' is not registered"),
     5664                        mUserData->s.strName.c_str());
    56865665
    56875666    LogFlowThisFunc(("mSession.mState=%s\n", Global::stringifySessionState(mData->mSession.mState)));
     
    56915670         || mData->mSession.mState == SessionState_Unlocking)
    56925671        return setError(VBOX_E_INVALID_OBJECT_STATE,
    5693                         tr("The machine '%ls' is already locked by a session (or being locked or unlocked)"),
    5694                         mUserData->mName.raw());
     5672                        tr("The machine '%s' is already locked by a session (or being locked or unlocked)"),
     5673                        mUserData->s.strName.c_str());
    56955674
    56965675    /* may not be busy */
     
    57755754
    57765755        Utf8Str idStr = mData->mUuid.toString();
    5777         Utf8Str strName = mUserData->mName;
    5778         const char * args[] = {szPath, "--comment", strName.c_str(), "--startvm", idStr.c_str(), "--no-startvm-errormsgbox", 0 };
     5756        const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), "--startvm", idStr.c_str(), "--no-startvm-errormsgbox", 0 };
    57795757        vrc = RTProcCreate(szPath, args, env, 0, &pid);
    57805758    }
     
    57945772
    57955773        Utf8Str idStr = mData->mUuid.toString();
    5796         Utf8Str strName = mUserData->mName;
    5797         const char * args[] = {szPath, "--comment", strName.c_str(), "--startvm", idStr.c_str(), 0 };
     5774        const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), "--startvm", idStr.c_str(), 0 };
    57985775        vrc = RTProcCreate(szPath, args, env, 0, &pid);
    57995776    }
     
    58195796        Utf8Str idStr = mData->mUuid.toString();
    58205797        /* Leave space for 2 args, as "headless" needs --vrdp off on non-OSE. */
    5821         Utf8Str strName = mUserData->mName;
    5822         const char * args[] = {szPath, "--comment", strName.c_str(), "--startvm", idStr.c_str(), 0, 0, 0 };
     5798        const char * args[] = {szPath, "--comment", mUserData->s.strName.c_str(), "--startvm", idStr.c_str(), 0, 0, 0 };
    58235799#ifdef VBOX_WITH_VRDP
    58245800        if (strType == "headless")
     
    58525828    if (RT_FAILURE(vrc))
    58535829        return setError(VBOX_E_IPRT_ERROR,
    5854                         tr("Could not launch a process for the machine '%ls' (%Rrc)"),
    5855                         mUserData->mName.raw(), vrc);
     5830                        tr("Could not launch a process for the machine '%s' (%Rrc)"),
     5831                        mUserData->s.strName.c_str(), vrc);
    58565832
    58575833    LogFlowThisFunc(("launched.pid=%d(0x%x)\n", pid, pid));
     
    60506026        if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_NORMAL)
    60516027            rc = setError(E_FAIL,
    6052                           tr("The virtual machine '%ls' has terminated unexpectedly during startup with exit code %d"),
    6053                           getName().raw(), status.iStatus);
     6028                          tr("The virtual machine '%s' has terminated unexpectedly during startup with exit code %d"),
     6029                          getName().c_str(), status.iStatus);
    60546030        else if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_SIGNAL)
    60556031            rc = setError(E_FAIL,
    6056                           tr("The virtual machine '%ls' has terminated unexpectedly during startup because of signal %d"),
    6057                           getName().raw(), status.iStatus);
     6032                          tr("The virtual machine '%s' has terminated unexpectedly during startup because of signal %d"),
     6033                          getName().c_str(), status.iStatus);
    60586034        else if (RT_SUCCESS(vrc) && status.enmReason == RTPROCEXITREASON_ABEND)
    60596035            rc = setError(E_FAIL,
    6060                           tr("The virtual machine '%ls' has terminated abnormally"),
    6061                           getName().raw(), status.iStatus);
     6036                          tr("The virtual machine '%s' has terminated abnormally"),
     6037                          getName().c_str(), status.iStatus);
    60626038        else
    60636039            rc = setError(E_FAIL,
    6064                           tr("The virtual machine '%ls' has terminated unexpectedly during startup (%Rrc)"),
    6065                           getName().raw(), rc);
     6040                          tr("The virtual machine '%s' has terminated unexpectedly during startup (%Rrc)"),
     6041                          getName().c_str(), rc);
    60666042    }
    60676043
     
    61226098    if (!mData->mAccessible)
    61236099        return setError(VBOX_E_INVALID_OBJECT_STATE,
    6124                         tr("The machine '%ls' with UUID {%s} is inaccessible and cannot be registered"),
    6125                         mUserData->mName.raw(),
    6126                         mData->mUuid.toString().raw());
     6100                        tr("The machine '%s' with UUID {%s} is inaccessible and cannot be registered"),
     6101                        mUserData->s.strName.c_str(),
     6102                        mData->mUuid.toString().c_str());
    61276103
    61286104    AssertReturn(autoCaller.state() == Ready, E_FAIL);
     
    61306106    if (mData->mRegistered)
    61316107        return setError(VBOX_E_INVALID_OBJECT_STATE,
    6132                         tr("The machine '%ls' with UUID {%s} is already registered"),
    6133                         mUserData->mName.raw(),
    6134                         mData->mUuid.toString().raw());
     6108                        tr("The machine '%s' with UUID {%s} is already registered"),
     6109                        mUserData->s.strName.c_str(),
     6110                        mData->mUuid.toString().c_str());
    61356111
    61366112    HRESULT rc = S_OK;
     
    63566332
    63576333    /* initialize mOSTypeId */
    6358     mUserData->mOSTypeId = mParent->getUnknownOSType()->id();
     6334    mUserData->s.strOsType = mParent->getUnknownOSType()->id();
    63596335
    63606336    /* create associated BIOS settings object */
     
    66656641HRESULT Machine::loadMachineDataFromSettings(const settings::MachineConfigFile &config)
    66666642{
    6667     /* name (required) */
    6668     mUserData->mName = config.strName;
    6669 
    6670     /* nameSync (optional, default is true) */
    6671     mUserData->mNameSync = config.fNameSync;
    6672 
    6673     mUserData->mDescription = config.strDescription;
    6674 
    6675     // guest OS type
    6676     mUserData->mOSTypeId = config.strOsType;
    6677     /* look up the object by Id to check it is valid */
     6643    // copy name, description, OS type, teleporter, UTC etc.
     6644    mUserData->s = config.machineUserData;
     6645
     6646    // look up the object by Id to check it is valid
    66786647    ComPtr<IGuestOSType> guestOSType;
    6679     HRESULT rc = mParent->GetGuestOSType(mUserData->mOSTypeId,
     6648    HRESULT rc = mParent->GetGuestOSType(Bstr(mUserData->s.strOsType),
    66806649                                         guestOSType.asOutParam());
    66816650    if (FAILED(rc)) return rc;
     
    66916660            return setError(E_FAIL,
    66926661                            tr("Invalid saved state file path '%s' (%Rrc)"),
    6693                             config.strStateFile.raw(),
     6662                            config.strStateFile.c_str(),
    66946663                            vrc);
    66956664        mSSData->mStateFilePath = stateFilePathFull;
    66966665    }
    66976666
    6698     /* snapshotFolder (optional) */
    6699     rc = COMSETTER(SnapshotFolder)(Bstr(config.strSnapshotFolder));
     6667    // snapshot folder needs special processing so set it again
     6668    rc = COMSETTER(SnapshotFolder)(Bstr(config.machineUserData.strSnapshotFolder));
    67006669    if (FAILED(rc)) return rc;
    67016670
     
    67046673
    67056674    mData->mLastStateChange = config.timeLastStateChange;
    6706 
    6707     /* teleportation */
    6708     mUserData->mTeleporterEnabled  = config.fTeleporterEnabled;
    6709     mUserData->mTeleporterPort     = config.uTeleporterPort;
    6710     mUserData->mTeleporterAddress  = config.strTeleporterAddress;
    6711     mUserData->mTeleporterPassword = config.strTeleporterPassword;
    6712 
    6713     /* RTC */
    6714     mUserData->mRTCUseUTC = config.fRTCUseUTC;
    67156675
    67166676    /*
     
    67976757            return setError(E_FAIL,
    67986758                            tr("Invalid saved state file path '%s' (%Rrc)"),
    6799                             strStateFile.raw(),
     6759                            strStateFile.c_str(),
    68006760                            vrc);
    68016761    }
     
    70787038            return setError(VBOX_E_OBJECT_IN_USE,
    70797039                            tr("Storage controller named '%s' already exists"),
    7080                             ctlData.strName.raw());
     7040                            ctlData.strName.c_str());
    70817041
    70827042        pCtl.createObject();
     
    71387098         ++it)
    71397099    {
     7100        const settings::AttachedDevice &ad = *it;
     7101
    71407102        for (settings::AttachedDevicesList::const_iterator it2 = it;
    71417103             it2 != data.llAttachedDevices.end();
     
    71457107                continue;
    71467108
    7147             if (   (*it).lPort == (*it2).lPort
    7148                 && (*it).lDevice == (*it2).lDevice)
     7109            const settings::AttachedDevice &ad2 = *it2;
     7110
     7111            if (   ad.lPort == ad2.lPort
     7112                && ad.lDevice == ad2.lDevice)
    71497113            {
    71507114                return setError(E_FAIL,
    7151                                 tr("Duplicate attachments for storage controller '%s', port %d, device %d of the virtual machine '%ls'"),
    7152                                 aStorageController->getName().raw(), (*it).lPort, (*it).lDevice, mUserData->mName.raw());
     7115                                tr("Duplicate attachments for storage controller '%s', port %d, device %d of the virtual machine '%s'"),
     7116                                aStorageController->getName().c_str(),
     7117                                ad.lPort,
     7118                                ad.lDevice,
     7119                                mUserData->s.strName.c_str());
    71537120            }
    71547121        }
     
    71987165                        return setError(E_FAIL,
    71997166                                        tr("Immutable hard disk '%s' with UUID {%RTuuid} cannot be directly attached to snapshot with UUID {%RTuuid} "
    7200                                            "of the virtual machine '%ls' ('%s')"),
    7201                                         medium->getLocationFull().raw(),
     7167                                           "of the virtual machine '%s' ('%s')"),
     7168                                        medium->getLocationFull().c_str(),
    72027169                                        dev.uuid.raw(),
    72037170                                        aSnapshotId->raw(),
    7204                                         mUserData->mName.raw(),
    7205                                         mData->m_strConfigFileFull.raw());
     7171                                        mUserData->s.strName.c_str(),
     7172                                        mData->m_strConfigFileFull.c_str());
    72067173
    72077174                    return setError(E_FAIL,
    7208                                     tr("Immutable hard disk '%s' with UUID {%RTuuid} cannot be directly attached to the virtual machine '%ls' ('%s')"),
    7209                                     medium->getLocationFull().raw(),
     7175                                    tr("Immutable hard disk '%s' with UUID {%RTuuid} cannot be directly attached to the virtual machine '%s' ('%s')"),
     7176                                    medium->getLocationFull().c_str(),
    72107177                                    dev.uuid.raw(),
    7211                                     mUserData->mName.raw(),
    7212                                     mData->m_strConfigFileFull.raw());
     7178                                    mUserData->s.strName.c_str(),
     7179                                    mData->m_strConfigFileFull.c_str());
    72137180                }
    72147181
     
    72177184                   )
    72187185                    return setError(E_FAIL,
    7219                                     tr("Hard disk '%s' with UUID {%RTuuid} cannot be directly attached to the virtual machine '%ls' ('%s') "
     7186                                    tr("Hard disk '%s' with UUID {%RTuuid} cannot be directly attached to the virtual machine '%s' ('%s') "
    72207187                                       "because it has %d differencing child hard disks"),
    7221                                     medium->getLocationFull().raw(),
     7188                                    medium->getLocationFull().c_str(),
    72227189                                    dev.uuid.raw(),
    7223                                     mUserData->mName.raw(),
    7224                                     mData->m_strConfigFileFull.raw(),
     7190                                    mUserData->s.strName.c_str(),
     7191                                    mData->m_strConfigFileFull.c_str(),
    72257192                                    medium->getChildren().size());
    72267193
     
    72287195                                   medium))
    72297196                    return setError(E_FAIL,
    7230                                     tr("Hard disk '%s' with UUID {%RTuuid} is already attached to the virtual machine '%ls' ('%s')"),
    7231                                     medium->getLocationFull().raw(),
     7197                                    tr("Hard disk '%s' with UUID {%RTuuid} is already attached to the virtual machine '%s' ('%s')"),
     7198                                    medium->getLocationFull().c_str(),
    72327199                                    dev.uuid.raw(),
    7233                                     mUserData->mName.raw(),
    7234                                     mData->m_strConfigFileFull.raw());
     7200                                    mUserData->s.strName.c_str(),
     7201                                    mData->m_strConfigFileFull.c_str());
    72357202
    72367203                break;
     
    72397206            default:
    72407207                return setError(E_FAIL,
    7241                                 tr("Device with unknown type is attached to the virtual machine '%s' ('%s')"),
    7242                                 medium->getLocationFull().raw(),
    7243                                 mUserData->mName.raw(),
    7244                                 mData->m_strConfigFileFull.raw());
     7208                                tr("Device '%s' with unknown type is attached to the virtual machine '%s' ('%s')"),
     7209                                medium->getLocationFull().c_str(),
     7210                                mUserData->s.strName.c_str(),
     7211                                mData->m_strConfigFileFull.c_str());
    72457212        }
    72467213
     
    73147281            return setError(E_FAIL,
    73157282                            tr("Could not find a snapshot with UUID {%s}"),
    7316                             aId.toString().raw());
     7283                            aId.toString().c_str());
    73177284        return E_FAIL;
    73187285    }
     
    73847351        return setError(VBOX_E_OBJECT_NOT_FOUND,
    73857352                        tr("Could not find a storage controller named '%s'"),
    7386                         aName.raw());
     7353                        aName.c_str());
    73877354    return VBOX_E_OBJECT_NOT_FOUND;
    73887355}
     
    74377404
    74387405    /* attempt to rename the settings file if machine name is changed */
    7439     if (    mUserData->mNameSync
     7406    if (    mUserData->s.fNameSync
    74407407         && mUserData.isBackedUp()
    7441          && mUserData.backedUpData()->mName != mUserData->mName
     7408         && mUserData.backedUpData()->s.strName != mUserData->s.strName
    74427409       )
    74437410    {
     
    74527419            int vrc = VINF_SUCCESS;
    74537420
    7454             Utf8Str name = mUserData.backedUpData()->mName;
    7455             Utf8Str newName = mUserData->mName;
     7421            Utf8Str name = mUserData.backedUpData()->s.strName;
     7422            Utf8Str newName = mUserData->s.strName;
    74567423
    74577424            configFile = mData->m_strConfigFileFull;
     
    74647431            {
    74657432                newConfigDir.stripFilename();
    7466                 newConfigDir = Utf8StrFmt("%s%c%s",
    7467                     newConfigDir.raw(), RTPATH_DELIMITER, newName.raw());
     7433                newConfigDir.append(RTPATH_DELIMITER);
     7434                newConfigDir.append(newName);
    74687435                /* new dir and old dir cannot be equal here because of 'if'
    74697436                 * above and because name != newName */
     
    74727439                {
    74737440                    /* perform real rename only if the machine is not new */
    7474                     vrc = RTPathRename(configDir.raw(), newConfigDir.raw(), 0);
     7441                    vrc = RTPathRename(configDir.c_str(), newConfigDir.c_str(), 0);
    74757442                    if (RT_FAILURE(vrc))
    74767443                    {
    74777444                        rc = setError(E_FAIL,
    74787445                                      tr("Could not rename the directory '%s' to '%s' to save the settings file (%Rrc)"),
    7479                                       configDir.raw(),
    7480                                       newConfigDir.raw(),
     7446                                      configDir.c_str(),
     7447                                      newConfigDir.c_str(),
    74817448                                      vrc);
    74827449                        break;
     
    74877454
    74887455            newConfigFile = Utf8StrFmt("%s%c%s.xml",
    7489                 newConfigDir.raw(), RTPATH_DELIMITER, newName.raw());
     7456                newConfigDir.c_str(), RTPATH_DELIMITER, newName.c_str());
    74907457
    74917458            /* then try to rename the settings file itself */
     
    74947461                /* get the path to old settings file in renamed directory */
    74957462                configFile = Utf8StrFmt("%s%c%s",
    7496                                         newConfigDir.raw(),
     7463                                        newConfigDir.c_str(),
    74977464                                        RTPATH_DELIMITER,
    74987465                                        RTPathFilename(configFile.c_str()));
     
    75007467                {
    75017468                    /* perform real rename only if the machine is not new */
    7502                     vrc = RTFileRename(configFile.raw(), newConfigFile.raw(), 0);
     7469                    vrc = RTFileRename(configFile.c_str(), newConfigFile.c_str(), 0);
    75037470                    if (RT_FAILURE(vrc))
    75047471                    {
    75057472                        rc = setError(E_FAIL,
    75067473                                      tr("Could not rename the settings file '%s' to '%s' (%Rrc)"),
    7507                                       configFile.raw(),
    7508                                       newConfigFile.raw(),
     7474                                      configFile.c_str(),
     7475                                      newConfigFile.c_str(),
    75097476                                      vrc);
    75107477                        break;
     
    75317498
    75327499            /* update the snapshot folder */
    7533             Utf8Str path = mUserData->mSnapshotFolderFull;
     7500            if (RTPathStartsWith(mUserData->m_strSnapshotFolderFull.c_str(),
     7501                                 configDir.c_str()))
     7502            {
     7503                mUserData->m_strSnapshotFolderFull = Utf8StrFmt("%s%s",
     7504                                                                newConfigDir.c_str(),
     7505                                                                mUserData->m_strSnapshotFolderFull.c_str() + configDir.length());
     7506                copyPathRelativeToMachine(mUserData->m_strSnapshotFolderFull,
     7507                                          mUserData->s.strSnapshotFolder);
     7508            }
     7509
     7510            /* update the saved state file path */
     7511            Utf8Str path = mSSData->mStateFilePath;
    75347512            if (RTPathStartsWith(path.c_str(), configDir.c_str()))
    7535             {
    7536                 path = Utf8StrFmt("%s%s", newConfigDir.raw(),
    7537                                   path.raw() + configDir.length());
    7538                 mUserData->mSnapshotFolderFull = path;
    7539                 Utf8Str strTemp;
    7540                 copyPathRelativeToMachine(path, strTemp);
    7541                 mUserData->mSnapshotFolder = strTemp;
    7542             }
    7543 
    7544             /* update the saved state file path */
    7545             path = mSSData->mStateFilePath;
    7546             if (RTPathStartsWith(path.c_str(), configDir.c_str()))
    7547             {
    7548                 path = Utf8StrFmt("%s%s", newConfigDir.raw(),
    7549                                   path.raw() + configDir.length());
    7550                 mSSData->mStateFilePath = path;
    7551             }
     7513                mSSData->mStateFilePath = Utf8StrFmt("%s%s",
     7514                                                     newConfigDir.c_str(),
     7515                                                     path.c_str() + configDir.length());
    75527516
    75537517            /* Update saved state file paths of all online snapshots.
     
    75647528            /* silently try to rename everything back */
    75657529            if (fileRenamed)
    7566                 RTFileRename(newConfigFile.raw(), configFile.raw(), 0);
     7530                RTFileRename(newConfigFile.c_str(), configFile.c_str(), 0);
    75677531            if (dirRenamed)
    7568                 RTPathRename(newConfigDir.raw(), configDir.raw(), 0);
     7532                RTPathRename(newConfigDir.c_str(), configDir.c_str(), 0);
    75697533        }
    75707534
     
    75877551                return setError(E_FAIL,
    75887552                                tr("Could not create a directory '%s' to save the settings file (%Rrc)"),
    7589                                 path.raw(),
     7553                                path.c_str(),
    75907554                                vrc);
    75917555            }
     
    76007564            return setError(E_FAIL,
    76017565                            tr("Could not create the settings file '%s' (%Rrc)"),
    7602                             path.raw(),
     7566                            path.c_str(),
    76037567                            vrc);
    76047568        RTFileClose(f);
     
    77757739
    77767740    config.uuid = mData->mUuid;
    7777     config.strName = mUserData->mName;
    7778     config.fNameSync = !!mUserData->mNameSync;
    7779     config.strDescription = mUserData->mDescription;
    7780     config.strOsType = mUserData->mOSTypeId;
     7741
     7742    // copy name, description, OS type, teleport, UTC etc.
     7743    config.machineUserData = mUserData->s;
    77817744
    77827745    if (    mData->mMachineState == MachineState_Saved
     
    78067769        config.uuidCurrentSnapshot.clear();
    78077770
    7808     config.strSnapshotFolder = mUserData->mSnapshotFolder;
    7809     // config.fCurrentStateModified is special, see below
    78107771    config.timeLastStateChange = mData->mLastStateChange;
    78117772    config.fAborted = (mData->mMachineState == MachineState_Aborted);
    78127773    /// @todo Live Migration:        config.fTeleported = (mData->mMachineState == MachineState_Teleported);
    7813 
    7814     config.fTeleporterEnabled    = !!mUserData->mTeleporterEnabled;
    7815     config.uTeleporterPort       = mUserData->mTeleporterPort;
    7816     config.strTeleporterAddress  = mUserData->mTeleporterAddress;
    7817     config.strTeleporterPassword = mUserData->mTeleporterPassword;
    7818 
    7819     config.fRTCUseUTC = !!mUserData->mRTCUseUTC;
    78207774
    78217775    HRESULT rc = saveHardware(config.hardwareMachine);
     
    83678321            DeviceType_T devType = pAtt->getType();
    83688322            Medium* pMedium = pAtt->getMedium();
     8323            ComObjPtr<Medium> pBase = pMedium->getBase();
    83698324
    83708325            if (   devType != DeviceType_HardDisk
     
    83848339                    else
    83858340                        aProgress->SetNextOperation(BstrFmt(tr("Skipping medium '%s'"),
    8386                                                             pMedium->getBase()->getName().raw()),
     8341                                                            pBase->getName().c_str()),
    83878342                                                    aWeight);        // weight
    83888343                }
     
    83948349            /* need a diff */
    83958350            aProgress->SetNextOperation(BstrFmt(tr("Creating differencing hard disk for '%s'"),
    8396                                                 pMedium->getBase()->getName().raw()),
     8351                                                pBase->getName().c_str()),
    83978352                                        aWeight);        // weight
    83988353
     
    84018356            rc = diff->init(mParent,
    84028357                            pMedium->getPreferredDiffFormat(),
    8403                             Utf8StrFmt("%ls"RTPATH_SLASH_STR,
    8404                                        mUserData->mSnapshotFolderFull.raw()).raw(),
     8358                            Utf8Str(mUserData->m_strSnapshotFolderFull).append(RTPATH_SLASH_STR),
    84058359                            pfNeedsSaveSettings);
    84068360            if (FAILED(rc)) throw rc;
     
    88428796
    88438797        LogFlowThisFunc(("Examining current medium '%s' (implicit: %d)\n",
    8844                             (pMedium) ? pMedium->getName().raw() : "NULL",
    8845                             fImplicit));
     8798                         (pMedium) ? pMedium->getName().c_str() : "NULL",
     8799                         fImplicit));
    88468800
    88478801        /** @todo convert all this Machine-based voodoo to MediumAttachment
     
    88938847                if (pOldAttach->getMedium() == pMedium)
    88948848                {
    8895                     LogFlowThisFunc(("--> medium '%s' was attached before, will not remove\n", pMedium->getName().raw()));
     8849                    LogFlowThisFunc(("--> medium '%s' was attached before, will not remove\n", pMedium->getName().c_str()));
    88968850
    88978851                    /* yes: remove from old to avoid de-association */
     
    89168870        if (pAttach->getType() == DeviceType_HardDisk && pMedium)
    89178871        {
    8918             LogFlowThisFunc(("detaching medium '%s' from machine\n", pMedium->getName().raw()));
     8872            LogFlowThisFunc(("detaching medium '%s' from machine\n", pMedium->getName().c_str()));
    89198873
    89208874            /* now de-associate from the current machine state */
     
    90398993    Utf8Str settingsDir = mData->m_strConfigFileFull;
    90408994    settingsDir.stripFilename();
    9041     char *dirName = RTPathFilename(settingsDir.c_str());
    9042 
    9043     AssertReturn(dirName, false);
     8995    Utf8Str strDirName = RTPathFilename(settingsDir.c_str());
     8996
     8997    AssertReturn(!strDirName.isEmpty(), false);
    90448998
    90458999    /* if we don't rename anything on name change, return false shorlty */
    9046     if (!mUserData->mNameSync)
     9000    if (!mUserData->s.fNameSync)
    90479001        return false;
    90489002
     
    90509004        *aSettingsDir = settingsDir;
    90519005
    9052     return Bstr(dirName) == mUserData->mName;
     9006    return strDirName == mUserData->s.strName;
    90539007}
    90549008
     
    95479501{
    95489502    LogFlowThisFuncEnter();
    9549     LogFlowThisFunc(("mName={%ls}\n", aMachine->mUserData->mName.raw()));
     9503    LogFlowThisFunc(("mName={%s}\n", aMachine->mUserData->s.strName.c_str()));
    95509504
    95519505    AssertReturn(aMachine, E_INVALIDARG);
     
    1034310297    if (mData->mMachineState == MachineState_Paused)
    1034410298    {
    10345         stateFilePath = Utf8StrFmt("%ls%c{%RTuuid}.sav",
    10346                                    mUserData->mSnapshotFolderFull.raw(),
     10299        stateFilePath = Utf8StrFmt("%s%c{%RTuuid}.sav",
     10300                                   mUserData->m_strSnapshotFolderFull.c_str(),
    1034710301                                   RTPATH_DELIMITER, mData->mUuid.raw());
    1034810302    }
     
    1050710461        {
    1050810462            Utf8Str utf8Flags(aFlags);
    10509             int vrc = validateFlags(utf8Flags.raw(), &fFlags);
     10463            int vrc = validateFlags(utf8Flags.c_str(), &fFlags);
    1051010464            AssertRCReturn(vrc, E_INVALIDARG);
    1051110465        }
     
    1056910523         */
    1057010524        if (    mHWData->mGuestPropertyNotificationPatterns.isEmpty()
    10571              || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.raw(),
     10525             || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.c_str(),
    1057210526                                             RTSTR_MAX,
    10573                                              utf8Name.raw(),
     10527                                             utf8Name.c_str(),
    1057410528                                             RTSTR_MAX, NULL)
    1057510529           )
  • trunk/src/VBox/Main/MediumImpl.cpp

    r31482 r31539  
    10121012
    10131013    LogFlowThisFunc(("m->strLocationFull='%s', m->strFormat=%s, m->id={%RTuuid}\n",
    1014                      m->strLocationFull.raw(), m->strFormat.raw(), m->id.raw()));
     1014                     m->strLocationFull.c_str(), m->strFormat.c_str(), m->id.raw()));
    10151015
    10161016    /* Don't call queryInfo() for registered media to prevent the calling
     
    10851085    size_t lenLocation = aLocation.length();
    10861086    if (lenLocation > 12)
    1087         memcpy(&uuid.au8[4], aLocation.raw() + (lenLocation - 12), 12);
     1087        memcpy(&uuid.au8[4], aLocation.c_str() + (lenLocation - 12), 12);
    10881088    else
    1089         memcpy(&uuid.au8[4 + 12 - lenLocation], aLocation.raw(), lenLocation);
     1089        memcpy(&uuid.au8[4 + 12 - lenLocation], aLocation.c_str(), lenLocation);
    10901090    unconst(m->id) = uuid;
    10911091
     
    14361436        return setError(VBOX_E_INVALID_OBJECT_STATE,
    14371437                        tr("Cannot change the type of medium '%s' because it is a differencing medium"),
    1438                         m->strLocationFull.raw());
     1438                        m->strLocationFull.c_str());
    14391439
    14401440    /* cannot change the type of a medium being in use by more than one VM */
     
    14421442        return setError(VBOX_E_INVALID_OBJECT_STATE,
    14431443                        tr("Cannot change the type of medium '%s' because it is attached to %d virtual machines"),
    1444                         m->strLocationFull.raw(), m->backRefs.size());
     1444                        m->strLocationFull.c_str(), m->backRefs.size());
    14451445
    14461446    switch (aType)
     
    14611461                return setError(VBOX_E_OBJECT_IN_USE,
    14621462                                tr("Cannot change type for medium '%s' since it has %d child media"),
    1463                                 m->strLocationFull.raw(), getChildren().size());
     1463                                m->strLocationFull.c_str(), getChildren().size());
    14641464            if (aType == MediumType_Shareable)
    14651465            {
     
    14681468                    return setError(VBOX_E_INVALID_OBJECT_STATE,
    14691469                                    tr("Cannot change type for medium '%s' to 'Shareable' since it is a dynamic medium storage unit"),
    1470                                     m->strLocationFull.raw());
     1470                                    m->strLocationFull.c_str());
    14711471            }
    14721472            break;
     
    15991599        return setError(VBOX_E_NOT_SUPPORTED,
    16001600                        tr("Medium '%s' is not differencing"),
    1601                         m->strLocationFull.raw());
     1601                        m->strLocationFull.c_str());
    16021602
    16031603    if (m->autoReset != !!aAutoReset)
     
    18301830            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    18311831                          tr("Medium '%s' is not locked for reading"),
    1832                           m->strLocationFull.raw());
     1832                          m->strLocationFull.c_str());
    18331833            break;
    18341834        }
     
    19201920            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    19211921                          tr("Medium '%s' is not locked for writing"),
    1922                           m->strLocationFull.raw());
     1922                          m->strLocationFull.c_str());
    19231923            break;
    19241924        }
     
    21062106            throw setError(VBOX_E_NOT_SUPPORTED,
    21072107                           tr("Medium format '%s' does not support dynamic storage creation"),
    2108                            m->strFormat.raw());
     2108                           m->strFormat.c_str());
    21092109        if (    (aVariant & MediumVariant_Fixed)
    21102110            &&  !(m->formatObj->getCapabilities() & MediumFormatCapabilities_CreateDynamic))
    21112111            throw setError(VBOX_E_NOT_SUPPORTED,
    21122112                           tr("Medium format '%s' does not support fixed storage creation"),
    2113                            m->strFormat.raw());
     2113                           m->strFormat.c_str());
    21142114
    21152115        if (m->state != MediumState_NotCreated)
     
    21202120                             static_cast<IMedium*>(this),
    21212121                             (aVariant & MediumVariant_Fixed)
    2122                                ? BstrFmt(tr("Creating fixed medium storage unit '%s'"), m->strLocationFull.raw())
    2123                                : BstrFmt(tr("Creating dynamic medium storage unit '%s'"), m->strLocationFull.raw()),
     2122                               ? BstrFmt(tr("Creating fixed medium storage unit '%s'"), m->strLocationFull.c_str())
     2123                               : BstrFmt(tr("Creating dynamic medium storage unit '%s'"), m->strLocationFull.c_str()),
    21242124                             TRUE /* aCancelable */);
    21252125        if (FAILED(rc))
     
    21932193        return setError(VBOX_E_INVALID_OBJECT_STATE,
    21942194                        tr("Medium type of '%s' is Writethrough"),
    2195                         m->strLocationFull.raw());
     2195                        m->strLocationFull.c_str());
    21962196    else if (m->type == MediumType_Shareable)
    21972197        return setError(VBOX_E_INVALID_OBJECT_STATE,
    21982198                        tr("Medium type of '%s' is Shareable"),
    2199                         m->strLocationFull.raw());
     2199                        m->strLocationFull.c_str());
    22002200
    22012201    /* Apply the normal locking logic to the entire chain. */
     
    23222322            throw setError(rc,
    23232323                           tr("Failed to lock source media '%s'"),
    2324                            getLocationFull().raw());
     2324                           getLocationFull().c_str());
    23252325        }
    23262326        rc = pTargetMediumLockList->Lock();
     
    23312331            throw setError(rc,
    23322332                           tr("Failed to lock target media '%s'"),
    2333                            pTarget->getLocationFull().raw());
     2333                           pTarget->getLocationFull().c_str());
    23342334        }
    23352335
     
    23372337        rc = pProgress->init(m->pVirtualBox,
    23382338                             static_cast <IMedium *>(this),
    2339                              BstrFmt(tr("Creating clone medium '%s'"), pTarget->m->strLocationFull.raw()),
     2339                             BstrFmt(tr("Creating clone medium '%s'"), pTarget->m->strLocationFull.c_str()),
    23402340                             TRUE /* aCancelable */);
    23412341        if (FAILED(rc))
     
    24102410            throw setError(rc,
    24112411                           tr("Failed to lock media when compacting '%s'"),
    2412                            getLocationFull().raw());
     2412                           getLocationFull().c_str());
    24132413        }
    24142414
     
    24162416        rc = pProgress->init(m->pVirtualBox,
    24172417                             static_cast <IMedium *>(this),
    2418                              BstrFmt(tr("Compacting medium '%s'"), m->strLocationFull.raw()),
     2418                             BstrFmt(tr("Compacting medium '%s'"), m->strLocationFull.c_str()),
    24192419                             TRUE /* aCancelable */);
    24202420        if (FAILED(rc))
     
    24812481            throw setError(VBOX_E_NOT_SUPPORTED,
    24822482                           tr("Medium type of '%s' is not differencing"),
    2483                            m->strLocationFull.raw());
     2483                           m->strLocationFull.c_str());
    24842484
    24852485        rc = canClose();
     
    25052505            throw setError(rc,
    25062506                           tr("Failed to lock media when resetting '%s'"),
    2507                            getLocationFull().raw());
     2507                           getLocationFull().c_str());
    25082508        }
    25092509
     
    25112511        rc = pProgress->init(m->pVirtualBox,
    25122512                             static_cast<IMedium*>(this),
    2513                              BstrFmt(tr("Resetting differencing medium '%s'"), m->strLocationFull.raw()),
     2513                             BstrFmt(tr("Resetting differencing medium '%s'"), m->strLocationFull.c_str()),
    25142514                             FALSE /* aCancelable */);
    25152515        if (FAILED(rc))
     
    27012701        return setError(VBOX_E_OBJECT_IN_USE,
    27022702                        tr("Cannot attach medium '%s' {%RTuuid}: %u differencing child media are being created"),
    2703                         m->strLocationFull.raw(),
     2703                        m->strLocationFull.c_str(),
    27042704                        m->id.raw(),
    27052705                        m->numCreateDiffTasks);
     
    27442744            return setError(VBOX_E_OBJECT_IN_USE,
    27452745                            tr("Cannot attach medium '%s' {%RTuuid} from snapshot '%RTuuid': medium is already in use by this snapshot!"),
    2746                             m->strLocationFull.raw(),
     2746                            m->strLocationFull.c_str(),
    27472747                            m->id.raw(),
    27482748                            aSnapshotId.raw(),
     
    28382838    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    28392839
    2840     LogFlowThisFunc(("Dumping backrefs for medium '%s':\n", m->strLocationFull.raw()));
     2840    LogFlowThisFunc(("Dumping backrefs for medium '%s':\n", m->strLocationFull.c_str()));
    28412841
    28422842    for (BackRefList::iterator it2 = m->backRefs.begin();
     
    28772877    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
    28782878
    2879     LogFlowThisFunc(("locationFull.before='%s'\n", m->strLocationFull.raw()));
     2879    LogFlowThisFunc(("locationFull.before='%s'\n", m->strLocationFull.c_str()));
    28802880
    28812881    const char *pcszMediumPath = m->strLocationFull.c_str();
     
    28912891        unconst(m->strLocation) = path;
    28922892
    2893         LogFlowThisFunc(("locationFull.after='%s'\n", m->strLocationFull.raw()));
     2893        LogFlowThisFunc(("locationFull.after='%s'\n", m->strLocationFull.c_str()));
    28942894    }
    28952895
     
    30933093            return setError(VBOX_E_FILE_ERROR,
    30943094                            tr("Invalid medium storage file location '%s' (%Rrc)"),
    3095                             location.raw(),
     3095                            location.c_str(),
    30963096                            vrc);
    30973097
     
    33193319
    33203320                location = Utf8StrFmt("%s{%RTuuid}.%s",
    3321                                       location.raw(), id.raw(), strExt.c_str());
     3321                                      location.c_str(), id.raw(), strExt.c_str());
    33223322            }
    33233323        }
     
    33393339            return setError(VBOX_E_FILE_ERROR,
    33403340                            tr("Invalid medium storage file location '%s' (%Rrc)"),
    3341                             location.raw(), vrc);
     3341                            location.c_str(), vrc);
    33423342
    33433343        /* detect the backend from the storage unit if importing */
     
    33693369                    return setError(VBOX_E_FILE_ERROR,
    33703370                                    tr("Could not find file for the medium '%s' (%Rrc)"),
    3371                                     locationFull.raw(), vrc);
     3371                                    locationFull.c_str(), vrc);
    33723372                else if (aFormat.isEmpty())
    33733373                    return setError(VBOX_E_IPRT_ERROR,
    33743374                                    tr("Could not get the storage format of the medium '%s' (%Rrc)"),
    3375                                     locationFull.raw(), vrc);
     3375                                    locationFull.c_str(), vrc);
    33763376                else
    33773377                {
     
    37583758            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37593759                          tr("Storage for the medium '%s' is not created"),
    3760                           m->strLocationFull.raw());
     3760                          m->strLocationFull.c_str());
    37613761            break;
    37623762        }
     
    37653765            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37663766                          tr("Storage for the medium '%s' is already created"),
    3767                           m->strLocationFull.raw());
     3767                          m->strLocationFull.c_str());
    37683768            break;
    37693769        }
     
    37723772            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37733773                          tr("Medium '%s' is locked for reading by another task"),
    3774                           m->strLocationFull.raw());
     3774                          m->strLocationFull.c_str());
    37753775            break;
    37763776        }
     
    37793779            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37803780                          tr("Medium '%s' is locked for writing by another task"),
    3781                           m->strLocationFull.raw());
     3781                          m->strLocationFull.c_str());
    37823782            break;
    37833783        }
     
    37883788                rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37893789                              tr("Medium '%s' is not accessible. %s"),
    3790                               m->strLocationFull.raw(), m->strLastAccessError.c_str());
     3790                              m->strLocationFull.c_str(), m->strLastAccessError.c_str());
    37913791            else
    37923792                rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    37933793                              tr("Medium '%s' is not accessible"),
    3794                               m->strLocationFull.raw());
     3794                              m->strLocationFull.c_str());
    37953795            break;
    37963796        }
     
    37993799            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    38003800                          tr("Storage for the medium '%s' is being created"),
    3801                           m->strLocationFull.raw());
     3801                          m->strLocationFull.c_str());
    38023802            break;
    38033803        }
     
    38063806            rc = setError(VBOX_E_INVALID_OBJECT_STATE,
    38073807                          tr("Storage for the medium '%s' is being deleted"),
    3808                           m->strLocationFull.raw());
     3808                          m->strLocationFull.c_str());
    38093809            break;
    38103810        }
     
    38613861        return setError(VBOX_E_OBJECT_IN_USE,
    38623862                        tr("Medium '%s' cannot be closed because it is still attached to %d virtual machines"),
    3863                            m->strLocationFull.raw(), m->backRefs.size());
     3863                        m->strLocationFull.c_str(), m->backRefs.size());
    38643864
    38653865    // perform extra media-dependent close checks
     
    39393939            throw setError(VBOX_E_NOT_SUPPORTED,
    39403940                           tr("Medium format '%s' does not support storage deletion"),
    3941                            m->strFormat.raw());
     3941                           m->strFormat.c_str());
    39423942
    39433943        /* Note that we are fine with Inaccessible state too: a) for symmetry
     
    40114011            throw setError(rc,
    40124012                           tr("Failed to lock media when deleting '%s'"),
    4013                            getLocationFull().raw());
     4013                           getLocationFull().c_str());
    40144014        }
    40154015
     
    40354035                rc = pProgress->init(m->pVirtualBox,
    40364036                                     static_cast<IMedium*>(this),
    4037                                      BstrFmt(tr("Deleting medium storage unit '%s'"), m->strLocationFull.raw()),
     4037                                     BstrFmt(tr("Deleting medium storage unit '%s'"), m->strLocationFull.c_str()),
    40384038                                     FALSE /* aCancelable */);
    40394039                if (FAILED(rc))
     
    42394239                    throw setError(VBOX_E_INVALID_OBJECT_STATE,
    42404240                                   tr("Medium '%s' is attached to a virtual machine with UUID {%RTuuid}. No differencing media based on it may be created until it is detached"),
    4241                                    m->strLocationFull.raw(), it->machineId.raw());
     4241                                   m->strLocationFull.c_str(), it->machineId.raw());
    42424242
    42434243                Assert(it->llSnapshotIds.size() == 1);
     
    42564256                rc = pProgress->init(m->pVirtualBox,
    42574257                                     static_cast<IMedium*>(this),
    4258                                      BstrFmt(tr("Creating differencing medium storage unit '%s'"), aTarget->m->strLocationFull.raw()),
     4258                                     BstrFmt(tr("Creating differencing medium storage unit '%s'"), aTarget->m->strLocationFull.c_str()),
    42594259                                     TRUE /* aCancelable */);
    42604260                if (FAILED(rc))
     
    43774377                throw setError(VBOX_E_INVALID_OBJECT_STATE,
    43784378                               tr("Media '%s' and '%s' are unrelated"),
    4379                                m->strLocationFull.raw(), tgtLoc.raw());
     4379                               m->strLocationFull.c_str(), tgtLoc.c_str());
    43804380            }
    43814381        }
     
    44234423                throw setError(VBOX_E_INVALID_OBJECT_STATE,
    44244424                               tr("Medium '%s' involved in the merge operation has more than one child medium (%d)"),
    4425                                m->strLocationFull.raw(), getChildren().size());
     4425                               m->strLocationFull.c_str(), getChildren().size());
    44264426            }
    44274427            /* One backreference is only allowed if the machine ID is not empty
     
    44374437                throw setError(VBOX_E_OBJECT_IN_USE,
    44384438                               tr("Medium '%s' is attached to %d virtual machines"),
    4439                                m->strLocationFull.raw(), m->backRefs.size());
     4439                               m->strLocationFull.c_str(), m->backRefs.size());
    44404440            if (m->type == MediumType_Immutable)
    44414441                throw setError(VBOX_E_INVALID_OBJECT_STATE,
    44424442                               tr("Medium '%s' is immutable"),
    4443                                m->strLocationFull.raw());
     4443                               m->strLocationFull.c_str());
    44444444        }
    44454445        else
     
    44504450                throw setError(VBOX_E_OBJECT_IN_USE,
    44514451                               tr("Medium '%s' involved in the merge operation has more than one child medium (%d)"),
    4452                                pTarget->m->strLocationFull.raw(),
     4452                               pTarget->m->strLocationFull.c_str(),
    44534453                               pTarget->getChildren().size());
    44544454            }
     
    44564456                throw setError(VBOX_E_INVALID_OBJECT_STATE,
    44574457                               tr("Medium '%s' is immutable"),
    4458                                pTarget->m->strLocationFull.raw());
     4458                               pTarget->m->strLocationFull.c_str());
    44594459        }
    44604460        ComObjPtr<Medium> pLast(fMergeForward ? (Medium *)pTarget : this);
     
    44694469                throw setError(VBOX_E_OBJECT_IN_USE,
    44704470                               tr("Medium '%s' involved in the merge operation has more than one child medium (%d)"),
    4471                                pLast->m->strLocationFull.raw(),
     4471                               pLast->m->strLocationFull.c_str(),
    44724472                               pLast->getChildren().size());
    44734473            }
     
    44754475                throw setError(VBOX_E_OBJECT_IN_USE,
    44764476                               tr("Medium '%s' is attached to %d virtual machines"),
    4477                                pLast->m->strLocationFull.raw(),
     4477                               pLast->m->strLocationFull.c_str(),
    44784478                               pLast->m->backRefs.size());
    44794479
     
    45744574                throw setError(rc,
    45754575                               tr("Failed to lock media when merging to '%s'"),
    4576                                pTarget->getLocationFull().raw());
     4576                               pTarget->getLocationFull().c_str());
    45774577            }
    45784578        }
     
    47154715                                     static_cast<IMedium*>(this),
    47164716                                     BstrFmt(tr("Merging medium '%s' to '%s'"),
    4717                                              getName().raw(),
    4718                                              tgtName.raw()),
     4717                                             getName().c_str(),
     4718                                             tgtName.c_str()),
    47194719                                     TRUE /* aCancelable */);
    47204720                if (FAILED(rc))
     
    48284828        return setError(VBOX_E_OBJECT_IN_USE,
    48294829                        tr("Cannot close medium '%s' because it has %d child media"),
    4830                         m->strLocationFull.raw(), getChildren().size());
     4830                        m->strLocationFull.c_str(), getChildren().size());
    48314831
    48324832    return S_OK;
     
    49644964        error = Utf8StrFmt(" (%Rrc)", aVRC);
    49654965    else
    4966         error = Utf8StrFmt(".\n%s", m->vdError.raw());
     4966        error = Utf8StrFmt(".\n%s", m->vdError.c_str());
    49674967
    49684968    m->vdError.setNull();
     
    49964996    if (that->m->vdError.isEmpty())
    49974997        that->m->vdError =
    4998             Utf8StrFmt("%s (%Rrc)", Utf8StrFmtVA(pszFormat, va).raw(), rc);
     4998            Utf8StrFmt("%s (%Rrc)", Utf8StrFmtVA(pszFormat, va).c_str(), rc);
    49994999    else
    50005000        that->m->vdError =
    5001             Utf8StrFmt("%s.\n%s (%Rrc)", that->m->vdError.raw(),
    5002                        Utf8StrFmtVA(pszFormat, va).raw(), rc);
     5001            Utf8StrFmt("%s.\n%s (%Rrc)", that->m->vdError.c_str(),
     5002                       Utf8StrFmtVA(pszFormat, va).c_str(), rc);
    50035003}
    50045004
     
    52695269            throw setError(E_FAIL,
    52705270                            tr("Could not update medium UUID references to parent '%s' (%s)"),
    5271                             m->strLocationFull.raw(),
    5272                             vdError(aVRC).raw());
     5271                            m->strLocationFull.c_str(),
     5272                            vdError(aVRC).c_str());
    52735273        }
    52745274
     
    53845384                throw setError(VBOX_E_FILE_ERROR,
    53855385                               tr("Could not create the medium storage unit '%s'%s"),
    5386                                location.raw(), vdError(vrc).raw());
     5386                               location.c_str(), vdError(vrc).c_str());
    53875387
    53885388            size = VDGetFileSize(hdd, 0);
     
    55305530                    throw setError(VBOX_E_FILE_ERROR,
    55315531                                   tr("Could not open the medium storage unit '%s'%s"),
    5532                                    pMedium->m->strLocationFull.raw(),
    5533                                    vdError(vrc).raw());
     5532                                   pMedium->m->strLocationFull.c_str(),
     5533                                   vdError(vrc).c_str());
    55345534            }
    55355535
     
    55525552                throw setError(VBOX_E_FILE_ERROR,
    55535553                                tr("Could not create the differencing medium storage unit '%s'%s"),
    5554                                 targetLocation.raw(), vdError(vrc).raw());
     5554                                targetLocation.c_str(), vdError(vrc).c_str());
    55555555
    55565556            size = VDGetFileSize(hdd, VD_LAST_IMAGE);
     
    57855785            throw setError(VBOX_E_FILE_ERROR,
    57865786                            tr("Could not merge the medium '%s' to '%s'%s"),
    5787                             m->strLocationFull.raw(),
    5788                             pTarget->m->strLocationFull.raw(),
    5789                             vdError(aVRC).raw());
     5787                            m->strLocationFull.c_str(),
     5788                            pTarget->m->strLocationFull.c_str(),
     5789                            vdError(aVRC).c_str());
    57905790        }
    57915791
     
    60156015                    throw setError(VBOX_E_FILE_ERROR,
    60166016                                   tr("Could not open the medium storage unit '%s'%s"),
    6017                                    pMedium->m->strLocationFull.raw(),
    6018                                    vdError(vrc).raw());
     6017                                   pMedium->m->strLocationFull.c_str(),
     6018                                   vdError(vrc).c_str());
    60196019            }
    60206020
     
    60796079                        throw setError(VBOX_E_FILE_ERROR,
    60806080                                       tr("Could not open the medium storage unit '%s'%s"),
    6081                                        pMedium->m->strLocationFull.raw(),
    6082                                        vdError(vrc).raw());
     6081                                       pMedium->m->strLocationFull.c_str(),
     6082                                       vdError(vrc).c_str());
    60836083                }
    60846084
     
    60886088                             targetHdd,
    60896089                             targetFormat.c_str(),
    6090                              (fCreatingTarget) ? targetLocation.raw() : (char *)NULL,
     6090                             (fCreatingTarget) ? targetLocation.c_str() : (char *)NULL,
    60916091                             false,
    60926092                             0,
     
    60996099                    throw setError(VBOX_E_FILE_ERROR,
    61006100                                   tr("Could not create the clone medium '%s'%s"),
    6101                                    targetLocation.raw(), vdError(vrc).raw());
     6101                                   targetLocation.c_str(), vdError(vrc).c_str());
    61026102
    61036103                size = VDGetFileSize(targetHdd, VD_LAST_IMAGE);
     
    62346234                throw setError(VBOX_E_FILE_ERROR,
    62356235                               tr("Could not delete the medium storage unit '%s'%s"),
    6236                                location.raw(), vdError(vrc).raw());
     6236                               location.c_str(), vdError(vrc).c_str());
    62376237
    62386238        }
     
    63296329                    throw setError(VBOX_E_FILE_ERROR,
    63306330                                   tr("Could not open the medium storage unit '%s'%s"),
    6331                                    pMedium->m->strLocationFull.raw(),
    6332                                    vdError(vrc).raw());
     6331                                   pMedium->m->strLocationFull.c_str(),
     6332                                   vdError(vrc).c_str());
    63336333
    63346334                /* Done when we hit the media which should be reset */
     
    63426342                throw setError(VBOX_E_FILE_ERROR,
    63436343                               tr("Could not delete the medium storage unit '%s'%s"),
    6344                                location.raw(), vdError(vrc).raw());
     6344                               location.c_str(), vdError(vrc).c_str());
    63456345
    63466346            /* next, create it again */
     
    63536353                throw setError(VBOX_E_FILE_ERROR,
    63546354                               tr("Could not open the medium storage unit '%s'%s"),
    6355                                parentLocation.raw(), vdError(vrc).raw());
     6355                               parentLocation.c_str(), vdError(vrc).c_str());
    63566356
    63576357            vrc = VDCreateDiff(hdd,
     
    63696369                throw setError(VBOX_E_FILE_ERROR,
    63706370                               tr("Could not create the differencing medium storage unit '%s'%s"),
    6371                                location.raw(), vdError(vrc).raw());
     6371                               location.c_str(), vdError(vrc).c_str());
    63726372
    63736373            size = VDGetFileSize(hdd, VD_LAST_IMAGE);
     
    64596459                    throw setError(VBOX_E_FILE_ERROR,
    64606460                                   tr("Could not open the medium storage unit '%s'%s"),
    6461                                    pMedium->m->strLocationFull.raw(),
    6462                                    vdError(vrc).raw());
     6461                                   pMedium->m->strLocationFull.c_str(),
     6462                                   vdError(vrc).c_str());
    64636463            }
    64646464
     
    64766476                    throw setError(VBOX_E_NOT_SUPPORTED,
    64776477                                   tr("Compacting is not yet supported for medium '%s'"),
    6478                                    location.raw());
     6478                                   location.c_str());
    64796479                else if (vrc == VERR_NOT_IMPLEMENTED)
    64806480                    throw setError(E_NOTIMPL,
    64816481                                   tr("Compacting is not implemented, medium '%s'"),
    6482                                    location.raw());
     6482                                   location.c_str());
    64836483                else
    64846484                    throw setError(VBOX_E_FILE_ERROR,
    64856485                                   tr("Could not compact medium '%s'%s"),
    6486                                    location.raw(),
    6487                                    vdError(vrc).raw());
     6486                                   location.c_str(),
     6487                                   vdError(vrc).c_str());
    64886488            }
    64896489        }
  • trunk/src/VBox/Main/NATEngineImpl.cpp

    r30764 r31539  
    224224
    225225STDMETHODIMP
    226 NATEngine::COMGETTER(Redirects) (ComSafeArrayOut (BSTR , aNatRules))
     226NATEngine::COMGETTER(Redirects)(ComSafeArrayOut(BSTR , aNatRules))
    227227{
    228228    CheckComArgOutSafeArrayPointerValid(aNatRules);
     
    241241    {
    242242        settings::NATRule r = it->second;
    243         Utf8Str utf = Utf8StrFmt("%s,%d,%s,%d,%s,%d", r.strName.raw(), r.u32Proto,
    244                         r.strHostIP.raw(), r.u16HostPort, r.strGuestIP.raw(), r.u16GuestPort);
    245         utf.cloneTo(&sf[i]);
     243        BstrFmt bstr("%s,%d,%s,%d,%s,%d",
     244                     r.strName.c_str(),
     245                     r.u32Proto,
     246                     r.strHostIP.c_str(),
     247                     r.u16HostPort,
     248                     r.strGuestIP.c_str(),
     249                     r.u16GuestPort);
     250        bstr.detachTo(&sf[i]);
    246251    }
    247252    sf.detachTo(ComSafeArrayOutArg(aNatRules));
     
    276281        name = Utf8StrFmt("%s_%d_%d", proto, aHostPort, aGuestPort);
    277282    }
    278     r.strName = name.raw();
     283    r.strName = name.c_str();
    279284    r.u32Proto = aProto;
    280285    r.strHostIP = aBindIp;
     
    405410    {
    406411        mData->mNetwork.cloneTo(aNetwork);
    407         Log(("Getter (this:%p) Network: %s\n", this, mData->mNetwork.raw()));
     412        Log(("Getter (this:%p) Network: %s\n", this, mData->mNetwork.c_str()));
    408413    }
    409414    return S_OK;
     
    463468    {
    464469        mData->mTftpPrefix.cloneTo(aTftpPrefix);
    465         Log(("Getter (this:%p) TftpPrefix: %s\n", this, mData->mTftpPrefix.raw()));
     470        Log(("Getter (this:%p) TftpPrefix: %s\n", this, mData->mTftpPrefix.c_str()));
    466471    }
    467472    return S_OK;
     
    494499    {
    495500        mData->mTftpBootFile.cloneTo(aTftpBootFile);
    496         Log(("Getter (this:%p) BootFile: %s\n", this, mData->mTftpBootFile.raw()));
     501        Log(("Getter (this:%p) BootFile: %s\n", this, mData->mTftpBootFile.c_str()));
    497502    }
    498503    return S_OK;
     
    525530    {
    526531        mData->mTftpNextServer.cloneTo(aTftpNextServer);
    527         Log(("Getter (this:%p) NextServer: %s\n", this, mData->mTftpNextServer.raw()));
     532        Log(("Getter (this:%p) NextServer: %s\n", this, mData->mTftpNextServer.c_str()));
    528533    }
    529534    return S_OK;
  • trunk/src/VBox/Main/SessionImpl.cpp

    r31332 r31539  
    10281028# ifdef VBOX_WITH_NEW_SYS_V_KEYGEN
    10291029    Utf8Str ipcKey = ipcId;
    1030     key_t key = RTStrToUInt32(ipcKey.raw());
     1030    key_t key = RTStrToUInt32(ipcKey.c_str());
    10311031    AssertMsgReturn (key != 0,
    10321032                    ("Key value of 0 is not valid for IPC semaphore"),
  • trunk/src/VBox/Main/SharedFolderImpl.cpp

    r31002 r31539  
    218218        return setError(E_INVALIDARG,
    219219                        tr("Invalid shared folder path: '%s' (%Rrc)"),
    220                         hostPath.raw(), vrc);
     220                        hostPath.c_str(), vrc);
    221221
    222222    if (RTPathCompare(hostPath.c_str(), hostPathFull) != 0)
    223223        return setError(E_INVALIDARG,
    224224                        tr("Shared folder path '%s' is not absolute"),
    225                         hostPath.raw());
     225                        hostPath.c_str());
    226226
    227227    unconst(mParent) = aParent;
     
    309309
    310310    m.lastAccessError = BstrFmt (
    311         tr ("'%s' is not accessible (%Rrc)"), hostPath.raw(), vrc);
     311        tr ("'%s' is not accessible (%Rrc)"), hostPath.c_str(), vrc);
    312312
    313313    LogWarningThisFunc(("m.lastAccessError=\"%ls\"\n", m.lastAccessError.raw()));
  • trunk/src/VBox/Main/SnapshotImpl.cpp

    r31358 r31539  
    520520HRESULT Snapshot::deleteStateFile()
    521521{
    522     int vrc = RTFileDelete(m->pMachine->mSSData->mStateFilePath.raw());
     522    int vrc = RTFileDelete(m->pMachine->mSSData->mStateFilePath.c_str());
    523523    if (RT_SUCCESS(vrc))
    524524        m->pMachine->mSSData->mStateFilePath.setNull();
     
    688688 * @param aNewPath
    689689 */
    690 void Snapshot::updateSavedStatePathsImpl(const char *aOldPath, const char *aNewPath)
     690void Snapshot::updateSavedStatePathsImpl(const Utf8Str &strOldPath,
     691                                         const Utf8Str &strNewPath)
    691692{
    692693    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    697698    /* state file may be NULL (for offline snapshots) */
    698699    if (    path.length()
    699          && RTPathStartsWith(path.c_str(), aOldPath)
     700         && RTPathStartsWith(path.c_str(), strOldPath.c_str())
    700701       )
    701702    {
    702         m->pMachine->mSSData->mStateFilePath = Utf8StrFmt("%s%s", aNewPath, path.raw() + strlen(aOldPath));
    703 
    704         LogFlowThisFunc(("-> updated: {%s}\n", path.raw()));
     703        m->pMachine->mSSData->mStateFilePath = Utf8StrFmt("%s%s",
     704                                                          strNewPath.c_str(),
     705                                                          path.c_str() + strOldPath.length());
     706        LogFlowThisFunc(("-> updated: {%s}\n", path.c_str()));
    705707    }
    706708
     
    710712    {
    711713        Snapshot *pChild = *it;
    712         pChild->updateSavedStatePathsImpl(aOldPath, aNewPath);
     714        pChild->updateSavedStatePathsImpl(strOldPath, strNewPath);
    713715    }
    714716}
     
    725727 *  @note Locks the machine (for the snapshots tree) +  this object + children for writing.
    726728 */
    727 void Snapshot::updateSavedStatePaths(const char *aOldPath, const char *aNewPath)
    728 {
    729     LogFlowThisFunc(("aOldPath={%s} aNewPath={%s}\n", aOldPath, aNewPath));
    730 
    731     AssertReturnVoid(aOldPath);
    732     AssertReturnVoid(aNewPath);
     729void Snapshot::updateSavedStatePaths(const Utf8Str &strOldPath,
     730                                     const Utf8Str &strNewPath)
     731{
     732    LogFlowThisFunc(("aOldPath={%s} aNewPath={%s}\n", strOldPath.c_str(), strNewPath.c_str()));
    733733
    734734    AutoCaller autoCaller(this);
     
    739739
    740740    // call the implementation under the tree lock
    741     updateSavedStatePathsImpl(aOldPath, aNewPath);
     741    updateSavedStatePathsImpl(strOldPath, strNewPath);
    742742}
    743743
     
    926926{
    927927    LogFlowThisFuncEnter();
    928     LogFlowThisFunc(("mName={%ls}\n", aSessionMachine->mUserData->mName.raw()));
     928    LogFlowThisFunc(("mName={%s}\n", aSessionMachine->mUserData->s.strName.c_str()));
    929929
    930930    AssertReturn(aSessionMachine && !Guid(aSnapshotId).isEmpty(), E_INVALIDARG);
     
    10611061{
    10621062    LogFlowThisFuncEnter();
    1063     LogFlowThisFunc(("mName={%ls}\n", aMachine->mUserData->mName.raw()));
     1063    LogFlowThisFunc(("mName={%s}\n", aMachine->mUserData->s.strName.c_str()));
    10641064
    10651065    AssertReturn(aMachine &&  !Guid(aSnapshotId).isEmpty(), E_INVALIDARG);
     
    13881388         || mData->mMachineState == MachineState_Saved)
    13891389    {
    1390         strStateFilePath = Utf8StrFmt("%ls%c{%RTuuid}.sav",
    1391                                       mUserData->mSnapshotFolderFull.raw(),
     1390        strStateFilePath = Utf8StrFmt("%s%c{%RTuuid}.sav",
     1391                                      mUserData->m_strSnapshotFolderFull.c_str(),
    13921392                                      RTPATH_DELIMITER,
    13931393                                      snapshotId.ptr());
     
    14501450
    14511451            LogFlowThisFunc(("Copying the execution state from '%s' to '%s'...\n",
    1452                              stateFrom.raw(), stateTo.raw()));
     1452                             stateFrom.c_str(), stateTo.c_str()));
    14531453
    14541454            aConsoleProgress->SetNextOperation(Bstr(tr("Copying the execution state")),
     
    14711471                throw setError(E_FAIL,
    14721472                               tr("Could not copy the state file '%s' to '%s' (%Rrc)"),
    1473                                stateFrom.raw(),
    1474                                stateTo.raw(),
     1473                               stateFrom.c_str(),
     1474                               stateTo.c_str(),
    14751475                               vrc);
    14761476        }
     
    17021702        ulStateFileSizeMB = (ULONG)(ullSize / _1M);
    17031703        LogFlowThisFunc(("op %d: saved state file '%s' has %RI64 bytes (%d MB)\n",
    1704                          ulOpCount, pSnapshot->stateFilePath().raw(), ullSize, ulStateFileSizeMB));
     1704                         ulOpCount, pSnapshot->stateFilePath().c_str(), ullSize, ulStateFileSizeMB));
    17051705
    17061706        ulTotalWeight += ulStateFileSizeMB;
     
    18571857                Utf8Str snapStateFilePath = aTask.pSnapshot->stateFilePath();
    18581858
    1859                 Utf8Str stateFilePath = Utf8StrFmt("%ls%c{%RTuuid}.sav",
    1860                                                    mUserData->mSnapshotFolderFull.raw(),
     1859                Utf8Str stateFilePath = Utf8StrFmt("%s%c{%RTuuid}.sav",
     1860                                                   mUserData->m_strSnapshotFolderFull.c_str(),
    18611861                                                   RTPATH_DELIMITER,
    18621862                                                   mData->mUuid.raw());
    18631863
    18641864                LogFlowThisFunc(("Copying saved state file from '%s' to '%s'...\n",
    1865                                   snapStateFilePath.raw(), stateFilePath.raw()));
     1865                                  snapStateFilePath.c_str(), stateFilePath.c_str()));
    18661866
    18671867                aTask.pProgress->SetNextOperation(Bstr(tr("Restoring the execution state")),
     
    18881888                    throw setError(E_FAIL,
    18891889                                   tr("Could not copy the state file '%s' to '%s' (%Rrc)"),
    1890                                    snapStateFilePath.raw(),
    1891                                    stateFilePath.raw(),
     1890                                   snapStateFilePath.c_str(),
     1891                                   stateFilePath.c_str(),
    18921892                                   vrc);
    18931893            }
     
    19171917               )
    19181918            {
    1919                 LogFlowThisFunc(("Picked differencing image '%s' for deletion\n", pMedium->getName().raw()));
     1919                LogFlowThisFunc(("Picked differencing image '%s' for deletion\n", pMedium->getName().c_str()));
    19201920
    19211921                llDiffAttachmentsToDelete.push_back(pAttach);
     
    19531953            AutoWriteLock mlock(pMedium COMMA_LOCKVAL_SRC_POS);
    19541954
    1955             LogFlowThisFunc(("Detaching old current state in differencing image '%s'\n", pMedium->getName().raw()));
     1955            LogFlowThisFunc(("Detaching old current state in differencing image '%s'\n", pMedium->getName().c_str()));
    19561956
    19571957            // Normally we "detach" the medium by removing the attachment object
     
    19861986        {
    19871987            ComObjPtr<Medium> &pMedium = *it;
    1988             LogFlowThisFunc(("Deleting old current state in differencing image '%s'\n", pMedium->getName().raw()));
     1988            LogFlowThisFunc(("Deleting old current state in differencing image '%s'\n", pMedium->getName().c_str()));
    19891989
    19901990            HRESULT rc2 = pMedium->deleteStorage(NULL /* aProgress */,
     
    20942094    if (childrenCount > 1)
    20952095        return setError(VBOX_E_INVALID_OBJECT_STATE,
    2096                         tr("Snapshot '%s' of the machine '%ls' cannot be deleted. because it has %d child snapshots, which is more than the one snapshot allowed for deletion"),
     2096                        tr("Snapshot '%s' of the machine '%s' cannot be deleted. because it has %d child snapshots, which is more than the one snapshot allowed for deletion"),
    20972097                        pSnapshot->getName().c_str(),
    2098                         mUserData->mName.raw(),
     2098                        mUserData->s.strName.c_str(),
    20992099                        childrenCount);
    21002100
     
    25362536
    25372537            aTask.pProgress->SetNextOperation(BstrFmt(tr("Merging differencing image '%s'"),
    2538                                               pMedium->getName().raw()),
     2538                                              pMedium->getName().c_str()),
    25392539                                              ulWeight);
    25402540
     
    25822582                                       tr("Snapshot '%s' of the machine '%ls' cannot be deleted while a VM is running, as this case is not implemented yet. You can delete the snapshot when the VM is powered off"),
    25832583                                       aTask.pSnapshot->getName().c_str(),
    2584                                        mUserData->mName.raw());
     2584                                       mUserData->s.strName.c_str());
    25852585
    25862586                    // online medium merge, in the direction decided earlier
     
    26282628                    const Utf8Str &loc = it->mpSource->getLocationFull();
    26292629                    // Source medium is still there, so merge failed early.
    2630                     if (RTFileExists(loc.raw()))
     2630                    if (RTFileExists(loc.c_str()))
    26312631                        throw rc;
    26322632
     
    28702870        return setError(E_FAIL,
    28712871                        tr("Hard disk '%s' has more than one child hard disk (%d)"),
    2872                         aHD->getLocationFull().raw(),
     2872                        aHD->getLocationFull().c_str(),
    28732873                        aHD->getChildren().size());
    28742874
     
    29852985                    rc = setError(rc,
    29862986                                  tr("Cannot lock hard disk '%s' for a live merge"),
    2987                                   aHD->getLocationFull().raw());
     2987                                  aHD->getLocationFull().c_str());
    29882988                }
    29892989                else
     
    29992999                rc = setError(rc,
    30003000                              tr("Failed to construct lock list for a live merge of hard disk '%s'"),
    3001                               aHD->getLocationFull().raw());
     3001                              aHD->getLocationFull().c_str());
    30023002            }
    30033003
     
    30283028            rc = setError(rc,
    30293029                          tr("Cannot lock hard disk '%s' for an offline merge"),
    3030                           aHD->getLocationFull().raw());
     3030                          aHD->getLocationFull().c_str());
    30313031        }
    30323032    }
  • trunk/src/VBox/Main/StorageControllerImpl.cpp

    r31328 r31539  
    127127{
    128128    LogFlowThisFunc(("aParent=%p aName=\"%s\" aInstance=%u\n",
    129                      aParent, aName.raw(), aInstance));
     129                     aParent, aName.c_str(), aInstance));
    130130
    131131    ComAssertRet(aParent && !aName.isEmpty(), E_INVALIDARG);
  • trunk/src/VBox/Main/SystemPropertiesImpl.cpp

    r31358 r31539  
    868868        return setError(E_FAIL,
    869869                        tr("Invalid default machine folder '%s' (%Rrc)"),
    870                         path.raw(),
     870                        path.c_str(),
    871871                        vrc);
    872872
     
    889889        return setError(E_FAIL,
    890890                        tr("Invalid default hard disk folder '%s' (%Rrc)"),
    891                         path.raw(),
     891                        path.c_str(),
    892892                        vrc);
    893893
  • trunk/src/VBox/Main/USBControllerImpl.cpp

    r30856 r31539  
    5959struct USBController::Data
    6060{
    61     Data()
    62         : pParent(NULL)
    63     {};
     61    Data(Machine *pMachine)
     62        : pParent(pMachine),
     63          pHost(pMachine->getVirtualBox()->host())
     64    { }
    6465
    6566    ~Data()
    6667    {};
    6768
    68     /** Parent object. */
    6969    Machine * const                 pParent;
    70     /** Peer object. */
     70    Host * const                    pHost;
     71
     72    // peer machine's USB controller
    7173    const ComObjPtr<USBController>  pPeer;
    7274
     
    115117    AssertReturn(autoInitSpan.isOk(), E_FAIL);
    116118
    117     m = new Data();
    118 
    119     unconst(m->pParent) = aParent;
     119    m = new Data(aParent);
     120
    120121    /* mPeer is left null */
    121122
     
    153154    AssertReturn(autoInitSpan.isOk(), E_FAIL);
    154155
    155     m = new Data();
    156 
    157     unconst(m->pParent) = aParent;
     156    m = new Data(aParent);
     157
    158158    unconst(m->pPeer) = aPeer;
    159159
     
    197197    AssertReturn(autoInitSpan.isOk(), E_FAIL);
    198198
    199     m = new Data();
    200 
    201     unconst(m->pParent) = aParent;
     199    m = new Data(aParent);
     200
    202201    /* mPeer is left null */
    203202
     
    537536    if (filter->getData().mActive && Global::IsOnline(adep.machineState()))
    538537    {
    539         USBProxyService *service = m->pParent->getVirtualBox()->host()->usbProxyService();
     538        USBProxyService *service = m->pHost->usbProxyService();
    540539        ComAssertRet(service, E_FAIL);
    541540
     
    608607    if (filter->getData().mActive && Global::IsOnline(adep.machineState()))
    609608    {
    610         USBProxyService *service = m->pParent->getVirtualBox()->host()->usbProxyService();
     609        USBProxyService *service = m->pHost->usbProxyService();
    611610        ComAssertRet(service, E_FAIL);
    612611
     
    756755    if (m->llDeviceFilters.isBackedUp())
    757756    {
    758         USBProxyService *service = m->pParent->getVirtualBox()->host()->usbProxyService();
     757        USBProxyService *service = m->pHost->usbProxyService();
    759758        Assert(service);
    760759
     
    10071006    /* we don't modify our data fields -- no need to lock */
    10081007
    1009     if (aFilter->mInList && m->pParent->isRegistered())
    1010     {
    1011         USBProxyService *service = m->pParent->getVirtualBox()->host()->usbProxyService();
     1008    if (    aFilter->mInList
     1009         && m->pParent->isRegistered())
     1010    {
     1011        USBProxyService *service = m->pHost->usbProxyService();
    10121012        ComAssertRet(service, E_FAIL);
    10131013
     
    12011201    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    12021202
    1203     USBProxyService *service = m->pParent->getVirtualBox()->host()->usbProxyService();
     1203    USBProxyService *service = m->pHost->usbProxyService();
    12041204    AssertReturn(service, E_FAIL);
    12051205
  • trunk/src/VBox/Main/VFSExplorerImpl.cpp

    r30716 r31539  
    536536    {
    537537        Bstr progressDesc = BstrFmt(tr("Update directory info for '%s'"),
    538                                     m->strPath.raw());
     538                                    m->strPath.c_str());
    539539        /* Create the progress object */
    540540        progress.createObject();
    541541
    542         rc = progress->init(mVirtualBox, static_cast<IVFSExplorer*>(this),
     542        rc = progress->init(mVirtualBox,
     543                            static_cast<IVFSExplorer*>(this),
    543544                            progressDesc,
    544545                            TRUE /* aCancelable */);
  • trunk/src/VBox/Main/VirtualBoxImpl.cpp

    r31482 r31539  
    387387    /* compose the VirtualBox.xml file name */
    388388    unconst(m->strSettingsFilePath) = Utf8StrFmt("%s%c%s",
    389                                                 m->strHomeDir.raw(),
    390                                                 RTPATH_DELIMITER,
    391                                                 VBOX_GLOBAL_SETTINGS_FILE);
     389                                                 m->strHomeDir.c_str(),
     390                                                 RTPATH_DELIMITER,
     391                                                 VBOX_GLOBAL_SETTINGS_FILE);
    392392    HRESULT rc = S_OK;
    393393    bool fCreate = false;
     
    10731073                               firmwareDesc[i].fileName);
    10741074        rc = calculateFullPath(shortName, fullName); AssertRCReturn(rc, rc);
    1075         if (RTFileExists(fullName.raw()))
     1075        if (RTFileExists(fullName.c_str()))
    10761076        {
    10771077            *aResult = TRUE;
     
    10871087                              RTPATH_DELIMITER,
    10881088                              firmwareDesc[i].fileName);
    1089         if (RTFileExists(fullName.raw()))
     1089        if (RTFileExists(fullName.c_str()))
    10901090        {
    10911091            *aResult = TRUE;
     
    11421142
    11431143    strSettingsFile = Utf8StrFmt("%s%c%ls%c%ls.xml",
    1144                                  strSettingsFile.raw(),
     1144                                 strSettingsFile.c_str(),
    11451145                                 RTPATH_DELIMITER,
    11461146                                 aName,
     
    12031203    /* append the default extension if none */
    12041204    if (!RTPathHaveExt(settingsFile.c_str()))
    1205         settingsFile = Utf8StrFmt("%s.xml", settingsFile.raw());
     1205        settingsFile = Utf8StrFmt("%s.xml", settingsFile.c_str());
    12061206
    12071207    /* create a new object */
     
    13311331    /* start with not found */
    13321332    ComObjPtr<Machine> pMachineFound;
     1333    Utf8Str strName(aName);
    13331334
    13341335    AutoReadLock al(m->allMachines.getLockHandle() COMMA_LOCKVAL_SRC_POS);
     
    13441345
    13451346        AutoReadLock machLock(pMachine2 COMMA_LOCKVAL_SRC_POS);
    1346         if (pMachine2->getName() == aName)
     1347        if (pMachine2->getName() == strName)
    13471348        {
    13481349            pMachineFound = pMachine2;
     
    23622363{
    23632364    LogFlowThisFunc(("machine={%s} aKey={%ls} aValue={%ls}\n",
    2364                       aId.toString().raw(), aKey, aValue));
     2365                      aId.toString().c_str(), aKey, aValue));
    23652366
    23662367    AutoCaller autoCaller(this);
     
    27652766                     tr("Could not find a hard disk with UUID {%RTuuid} in the media registry ('%s')"),
    27662767                     aId->raw(),
    2767                      m->strSettingsFilePath.raw());
     2768                     m->strSettingsFilePath.c_str());
    27682769        else
    27692770            setError(rc,
    27702771                     tr("Could not find a hard disk with location '%ls' in the media registry ('%s')"),
    27712772                     aLocation,
    2772                      m->strSettingsFilePath.raw());
     2773                     m->strSettingsFilePath.c_str());
    27732774    }
    27742775
     
    28722873                     tr("Could not find an image file with UUID {%RTuuid} in the media registry ('%s')"),
    28732874                     aId->raw(),
    2874                      m->strSettingsFilePath.raw());
     2875                     m->strSettingsFilePath.c_str());
    28752876        else
    28762877            setError(rc,
    28772878                     tr("Could not find an image file with location '%ls' in the media registry ('%s')"),
    28782879                     aLocation.c_str(),
    2879                      m->strSettingsFilePath.raw());
     2880                     m->strSettingsFilePath.c_str());
    28802881    }
    28812882
     
    31023103            AutoReadLock mediaLock(hardDisk COMMA_LOCKVAL_SRC_POS);
    31033104            aConflict = Utf8StrFmt(tr("hard disk '%s' with UUID {%RTuuid}"),
    3104                                    hardDisk->getLocationFull().raw(),
     3105                                   hardDisk->getLocationFull().c_str(),
    31053106                                   hardDisk->getId().raw());
    31063107            return S_OK;
     
    31163117            AutoReadLock mediaLock(image COMMA_LOCKVAL_SRC_POS);
    31173118            aConflict = Utf8StrFmt(tr("CD/DVD image '%s' with UUID {%RTuuid}"),
    3118                                    image->getLocationFull().raw(),
     3119                                   image->getLocationFull().c_str(),
    31193120                                   image->getId().raw());
    31203121            return S_OK;
     
    31303131            AutoReadLock mediaLock(image COMMA_LOCKVAL_SRC_POS);
    31313132            aConflict = Utf8StrFmt(tr("floppy image '%s' with UUID {%RTuuid}"),
    3132                                    image->getLocationFull().raw(),
     3133                                   image->getLocationFull().c_str(),
    31333134                                   image->getId().raw());
    31343135            return S_OK;
     
    33523353
    33533354            return setError(E_INVALIDARG,
    3354                             tr("Registered machine with UUID {%RTuuid} ('%ls') already exists"),
     3355                            tr("Registered machine with UUID {%RTuuid} ('%s') already exists"),
    33553356                            aMachine->getId().raw(),
    3356                             pMachine->getSettingsFileFull().raw());
     3357                            pMachine->getSettingsFileFull().c_str());
    33573358        }
    33583359
     
    34203421        return setError(E_INVALIDARG,
    34213422                        tr("Cannot register the hard disk '%s' with UUID {%RTuuid} because a %s already exists in the media registry ('%s')"),
    3422                         strLocationFull.raw(),
     3423                        strLocationFull.c_str(),
    34233424                        id.raw(),
    3424                         strConflict.raw(),
    3425                         m->strSettingsFilePath.raw());
     3425                        strConflict.c_str(),
     3426                        m->strSettingsFilePath.c_str());
    34263427
    34273428    // store base (root) hard disks in the list
     
    35373538        return setError(VBOX_E_INVALID_OBJECT_STATE,
    35383539                        tr("Cannot register the image '%s' with UUID {%RTuuid} because a %s already exists in the media registry ('%s')"),
    3539                         strLocationFull.raw(),
     3540                        strLocationFull.c_str(),
    35403541                        id.raw(),
    3541                         strConflict.raw(),
    3542                         m->strSettingsFilePath.raw());
     3542                        strConflict.c_str(),
     3543                        m->strSettingsFilePath.c_str());
    35433544
    35443545    // add to the collection
  • trunk/src/VBox/Main/include/ConsoleImpl.h

    r31332 r31539  
    229229
    230230    static HRESULT setErrorStatic(HRESULT aResultCode, const char *pcsz, ...);
    231     HRESULT setAuthLibraryError(const char *filename, int rc);
    232231    HRESULT setInvalidMachineStateError();
    233232
  • trunk/src/VBox/Main/include/MachineImpl.h

    r31333 r31539  
    214214    struct UserData
    215215    {
    216         UserData();
    217         ~UserData();
    218 
    219         Bstr    mName;
    220         BOOL    mNameSync;
    221         Bstr    mDescription;
    222         Bstr    mOSTypeId;
    223         Bstr    mSnapshotFolder;
    224         Bstr    mSnapshotFolderFull;
    225         BOOL    mTeleporterEnabled;
    226         ULONG   mTeleporterPort;
    227         Bstr    mTeleporterAddress;
    228         Bstr    mTeleporterPassword;
    229         BOOL    mRTCUseUTC;
     216        settings::MachineUserData s;
     217        Utf8Str m_strSnapshotFolderFull;
    230218    };
    231219
     
    592580     * for reading.
    593581     */
    594     const Bstr& getName() const { return mUserData->mName; }
     582    const Utf8Str& getName() const { return mUserData->s.strName; }
    595583
    596584    enum
  • trunk/src/VBox/Main/include/SnapshotImpl.h

    r31333 r31539  
    116116    ComObjPtr<Snapshot> findChildOrSelf(const Utf8Str &aName);
    117117
    118     void updateSavedStatePaths(const char *aOldPath,
    119                                const char *aNewPath);
    120     void updateSavedStatePathsImpl(const char *aOldPath,
    121                                    const char *aNewPath);
     118    void updateSavedStatePaths(const Utf8Str &strOldPath,
     119                               const Utf8Str &strNewPath);
     120    void updateSavedStatePathsImpl(const Utf8Str &strOldPath,
     121                                   const Utf8Str &strNewPath);
    122122
    123123    HRESULT saveSnapshot(settings::Snapshot &data, bool aAttrsOnly);
  • trunk/src/VBox/Main/include/VirtualBoxBase.h

    r30782 r31539  
    343343        if (RT_UNLIKELY(!(expr))) \
    344344            return setError(E_INVALIDARG, tr ("Argument %s %s"), \
    345                             #arg, Utf8StrFmt msg .raw()); \
     345                            #arg, Utf8StrFmt msg .c_str()); \
    346346    } while (0)
    347347
  • trunk/src/VBox/Main/include/netif.h

    r29250 r31539  
    147147    /* Get the index from the name */
    148148    int iInstance;
    149     if (sscanf(Utf8Str(bstrIfName).raw(), "vboxnet%d", &iInstance) != 1)
     149    if (sscanf(Utf8Str(bstrIfName).c_str(), "vboxnet%d", &iInstance) != 1)
    150150        return Bstr("0.0.0.0");
    151151
  • trunk/src/VBox/Main/webservice/vboxweb.cpp

    r31231 r31539  
    205205                pcszDescr = "Maximum number of worker threads to run in parallel (100).";
    206206                break;
    207                
     207
    208208            case 'k':
    209209                pcszDescr = "Maximum number of requests before a socket will be closed (100).";
     
    931931{
    932932    com::Utf8Str ustr(bstr);
    933     const char *pcsz;
    934     if ((pcsz = ustr.raw()))
    935         return pcsz;
    936     return "";
     933    return ustr.c_str();        // @todo r=dj since the length is known, we can probably use a better std::string allocator
    937934}
    938935
     
    946943{
    947944    com::Utf8Str ustr(uuid.toString());
    948     const char *pcsz;
    949     if ((pcsz = ustr.raw()))
    950         return pcsz;
    951     return "";
     945    return ustr.c_str();        // @todo r=dj since the length is known, we can probably use a better std::string allocator
    952946}
    953947
     
    11631157            do
    11641158            {
    1165                 rc = RTLdrLoad(filename.raw(), &hlibAuth);
     1159                rc = RTLdrLoad(filename.c_str(), &hlibAuth);
    11661160                if (RT_FAILURE(rc))
    11671161                {
     
    16451639    WEBDEBUG(("-- entering %s\n", __FUNCTION__));
    16461640
    1647     do 
     1641    do
    16481642    {
    16491643        // WebServiceSession constructor tinkers with global MOR map and requires a write lock
  • trunk/src/VBox/Main/xml/Settings.cpp

    r31481 r31539  
    17181718MachineConfigFile::MachineConfigFile(const Utf8Str *pstrFilename)
    17191719    : ConfigFileBase(pstrFilename),
    1720       fNameSync(true),
    1721       fTeleporterEnabled(false),
    1722       uTeleporterPort(0),
    1723       fRTCUseUTC(false),
    17241720      fCurrentStateModified(true),
    17251721      fAborted(false)
     
    17781774    return (    (this == &c)
    17791775            || (    (uuid                       == c.uuid)
    1780                  && (strName                    == c.strName)
    1781                  && (fNameSync                  == c.fNameSync)
    1782                  && (strDescription             == c.strDescription)
    1783                  && (strOsType                  == c.strOsType)
     1776                 && (machineUserData            == c.machineUserData)
    17841777                 && (strStateFile               == c.strStateFile)
    17851778                 && (uuidCurrentSnapshot        == c.uuidCurrentSnapshot)
    1786                  && (strSnapshotFolder          == c.strSnapshotFolder)
    1787                  && (fTeleporterEnabled         == c.fTeleporterEnabled)
    1788                  && (uTeleporterPort            == c.uTeleporterPort)
    1789                  && (strTeleporterAddress       == c.strTeleporterAddress)
    1790                  && (strTeleporterPassword      == c.strTeleporterPassword)
    1791                  && (fRTCUseUTC                 == c.fRTCUseUTC)
    17921779                 // skip fCurrentStateModified!
    17931780                 && (RTTimeSpecIsEqual(&timeLastStateChange, &c.timeLastStateChange))
     
    25362523        {
    25372524            Utf8Str strLocalOrUTC;
    2538             fRTCUseUTC =    pelmHwChild->getAttributeValue("localOrUTC", strLocalOrUTC)
    2539                          && strLocalOrUTC == "UTC";
     2525            machineUserData.fRTCUseUTC =    pelmHwChild->getAttributeValue("localOrUTC", strLocalOrUTC)
     2526                                         && strLocalOrUTC == "UTC";
    25402527        }
    25412528        else if (    (pelmHwChild->nameEquals("UART"))
     
    30493036    Utf8Str strUUID;
    30503037    if (    (elmMachine.getAttributeValue("uuid", strUUID))
    3051          && (elmMachine.getAttributeValue("name", strName))
     3038         && (elmMachine.getAttributeValue("name", machineUserData.strName))
    30523039       )
    30533040    {
    30543041        parseUUID(uuid, strUUID);
    30553042
    3056         if (!elmMachine.getAttributeValue("nameSync", fNameSync))
    3057             fNameSync = true;
     3043        elmMachine.getAttributeValue("nameSync", machineUserData.fNameSync);
    30583044
    30593045        Utf8Str str;
    3060         elmMachine.getAttributeValue("Description", strDescription);
    3061 
    3062         elmMachine.getAttributeValue("OSType", strOsType);
     3046        elmMachine.getAttributeValue("Description", machineUserData.strDescription);
     3047
     3048        elmMachine.getAttributeValue("OSType", machineUserData.strOsType);
    30633049        if (m->sv < SettingsVersion_v1_5)
    3064             convertOldOSType_pre1_5(strOsType);
     3050            convertOldOSType_pre1_5(machineUserData.strOsType);
    30653051
    30663052        elmMachine.getAttributeValue("stateFile", strStateFile);
    30673053        if (elmMachine.getAttributeValue("currentSnapshot", str))
    30683054            parseUUID(uuidCurrentSnapshot, str);
    3069         elmMachine.getAttributeValue("snapshotFolder", strSnapshotFolder);
     3055        elmMachine.getAttributeValue("snapshotFolder", machineUserData.strSnapshotFolder);
    30703056        if (!elmMachine.getAttributeValue("currentStateModified", fCurrentStateModified))
    30713057            fCurrentStateModified = true;
     
    31033089            }
    31043090            else if (pelmMachineChild->nameEquals("Description"))
    3105                 strDescription = pelmMachineChild->getValue();
     3091                machineUserData.strDescription = pelmMachineChild->getValue();
    31063092            else if (pelmMachineChild->nameEquals("Teleporter"))
    31073093            {
    3108                 if (!pelmMachineChild->getAttributeValue("enabled", fTeleporterEnabled))
    3109                     fTeleporterEnabled = false;
    3110                 if (!pelmMachineChild->getAttributeValue("port", uTeleporterPort))
    3111                     uTeleporterPort = 0;
    3112                 if (!pelmMachineChild->getAttributeValue("address", strTeleporterAddress))
    3113                     strTeleporterAddress = "";
    3114                 if (!pelmMachineChild->getAttributeValue("password", strTeleporterPassword))
    3115                     strTeleporterPassword = "";
     3094                pelmMachineChild->getAttributeValue("enabled", machineUserData.fTeleporterEnabled);
     3095                pelmMachineChild->getAttributeValue("port", machineUserData.uTeleporterPort);
     3096                pelmMachineChild->getAttributeValue("address", machineUserData.strTeleporterAddress);
     3097                pelmMachineChild->getAttributeValue("password", machineUserData.strTeleporterPassword);
    31163098            }
    31173099        }
     
    35743556    {
    35753557        xml::ElementNode *pelmRTC = pelmHardware->createChild("RTC");
    3576         pelmRTC->setAttribute("localOrUTC", fRTCUseUTC ? "UTC" : "local");
     3558        pelmRTC->setAttribute("localOrUTC", machineUserData.fRTCUseUTC ? "UTC" : "local");
    35773559    }
    35783560
     
    37823764
    37833765        xml::ElementNode *pelmController = pelmStorageControllers->createChild("StorageController");
    3784         com::Utf8Str name = sc.strName.raw();
    3785         //
     3766        com::Utf8Str name = sc.strName;
    37863767        if (m->sv < SettingsVersion_v1_8)
    37873768        {
     
    39843965
    39853966    elmMachine.setAttribute("uuid", uuid.toStringCurly());
    3986     elmMachine.setAttribute("name", strName);
    3987     if (!fNameSync)
    3988         elmMachine.setAttribute("nameSync", fNameSync);
    3989     if (strDescription.length())
    3990         elmMachine.createChild("Description")->addContent(strDescription);
    3991     elmMachine.setAttribute("OSType", strOsType);
     3967    elmMachine.setAttribute("name", machineUserData.strName);
     3968    if (!machineUserData.fNameSync)
     3969        elmMachine.setAttribute("nameSync", machineUserData.fNameSync);
     3970    if (machineUserData.strDescription.length())
     3971        elmMachine.createChild("Description")->addContent(machineUserData.strDescription);
     3972    elmMachine.setAttribute("OSType", machineUserData.strOsType);
    39923973    if (strStateFile.length())
    39933974        elmMachine.setAttribute("stateFile", strStateFile);
     
    39953976         && !uuidCurrentSnapshot.isEmpty())
    39963977        elmMachine.setAttribute("currentSnapshot", uuidCurrentSnapshot.toStringCurly());
    3997     if (strSnapshotFolder.length())
    3998         elmMachine.setAttribute("snapshotFolder", strSnapshotFolder);
     3978    if (machineUserData.strSnapshotFolder.length())
     3979        elmMachine.setAttribute("snapshotFolder", machineUserData.strSnapshotFolder);
    39993980    if (!fCurrentStateModified)
    40003981        elmMachine.setAttribute("currentStateModified", fCurrentStateModified);
     
    40033984        elmMachine.setAttribute("aborted", fAborted);
    40043985    if (    m->sv >= SettingsVersion_v1_9
    4005         &&  (   fTeleporterEnabled
    4006             ||  uTeleporterPort
    4007             ||  !strTeleporterAddress.isEmpty()
    4008             ||  !strTeleporterPassword.isEmpty()
     3986        &&  (   machineUserData.fTeleporterEnabled
     3987            ||  machineUserData.uTeleporterPort
     3988            ||  !machineUserData.strTeleporterAddress.isEmpty()
     3989            ||  !machineUserData.strTeleporterPassword.isEmpty()
    40093990            )
    40103991       )
    40113992    {
    40123993        xml::ElementNode *pelmTeleporter = elmMachine.createChild("Teleporter");
    4013         pelmTeleporter->setAttribute("enabled", fTeleporterEnabled);
    4014         pelmTeleporter->setAttribute("port", uTeleporterPort);
    4015         pelmTeleporter->setAttribute("address", strTeleporterAddress);
    4016         pelmTeleporter->setAttribute("password", strTeleporterPassword);
     3994        pelmTeleporter->setAttribute("enabled", machineUserData.fTeleporterEnabled);
     3995        pelmTeleporter->setAttribute("port", machineUserData.uTeleporterPort);
     3996        pelmTeleporter->setAttribute("address", machineUserData.strTeleporterAddress);
     3997        pelmTeleporter->setAttribute("password", machineUserData.strTeleporterPassword);
    40173998    }
    40183999
     
    42444225            || (hardwareMachine.fPageFusionEnabled)
    42454226                // and CPU hotplug, RTC timezone control, HID type and HPET
    4246             || fRTCUseUTC
     4227            || machineUserData.fRTCUseUTC
    42474228            || hardwareMachine.fCpuHotPlug
    42484229            || hardwareMachine.pointingHidType != PointingHidType_PS2Mouse
     
    43084289         && (    (hardwareMachine.firmwareType >= FirmwareType_EFI)
    43094290              || (hardwareMachine.fHardwareVirtExclusive != HWVIRTEXCLUSIVEDEFAULT)
    4310               || fTeleporterEnabled
    4311               || uTeleporterPort
    4312               || !strTeleporterAddress.isEmpty()
    4313               || !strTeleporterPassword.isEmpty()
     4291              || machineUserData.fTeleporterEnabled
     4292              || machineUserData.uTeleporterPort
     4293              || !machineUserData.strTeleporterAddress.isEmpty()
     4294              || !machineUserData.strTeleporterPassword.isEmpty()
    43144295              || !hardwareMachine.uuid.isEmpty()
    43154296            )
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