VirtualBox

Changeset 50355 in vbox for trunk/src/VBox/Main/src-server


Ignore:
Timestamp:
Feb 6, 2014 5:55:07 PM (11 years ago)
Author:
vboxsync
Message:

6813 stage 7 VirtualBoxImpl.cpp etc

Location:
trunk/src/VBox/Main/src-server
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/ApplianceImpl.cpp

    r50197 r50355  
    372372 * @return S_OK or error.
    373373 */
    374 STDMETHODIMP VirtualBox::CreateAppliance(IAppliance** anAppliance)
     374HRESULT VirtualBox::createAppliance(ComPtr<IAppliance> &aAppliance)
    375375{
    376376    HRESULT rc;
     
    381381
    382382    if (SUCCEEDED(rc))
    383         appliance.queryInterfaceTo(anAppliance);
     383        appliance.queryInterfaceTo(aAppliance.asOutParam());
    384384
    385385    return rc;
     
    613613
    614614    /* Get the system properties. */
    615     SystemProperties *pSysProps = mVirtualBox->getSystemProperties();
     615    SystemProperties *pSysProps = mVirtualBox->i_getSystemProperties();
    616616    {
    617617        ComObjPtr<MediumFormat> trgFormat = pSysProps->i_mediumFormatFromExtension("iso");
     
    729729
    730730    /* Get the system properties. */
    731     SystemProperties *pSysProps = mVirtualBox->getSystemProperties();
     731    SystemProperties *pSysProps = mVirtualBox->i_getSystemProperties();
    732732
    733733    /* We need a proper source format description */
  • trunk/src/VBox/Main/src-server/ApplianceImplExport.cpp

    r50204 r50355  
    18721872    // Lock the media tree early to make sure nobody else tries to make changes
    18731873    // to the tree. Also lock the IAppliance object for writing.
    1874     AutoMultiWriteLock2 multiLock(&mVirtualBox->getMediaTreeLockHandle(), this->lockHandle() COMMA_LOCKVAL_SRC_POS);
     1874    AutoMultiWriteLock2 multiLock(&mVirtualBox->i_getMediaTreeLockHandle(), this->lockHandle() COMMA_LOCKVAL_SRC_POS);
    18751875    // Additional protect the IAppliance object, cause we leave the lock
    18761876    // when starting the disk export and we don't won't block other
     
    20552055        // Scope for the AutoReadLock
    20562056        {
    2057             SystemProperties *pSysProps = mVirtualBox->getSystemProperties();
     2057            SystemProperties *pSysProps = mVirtualBox->i_getSystemProperties();
    20582058            AutoReadLock propsLock(pSysProps COMMA_LOCKVAL_SRC_POS);
    20592059            // We are always exporting to VMDK stream optimized for now
     
    20922092            if (pDiskEntry->type == VirtualSystemDescriptionType_HardDiskImage)
    20932093            {
    2094                 rc = mVirtualBox->findHardDiskByLocation(strSrcFilePath, true, &pSourceDisk);
     2094                rc = mVirtualBox->i_findHardDiskByLocation(strSrcFilePath, true, &pSourceDisk);
    20952095                if (FAILED(rc)) throw rc;
    20962096            }
    20972097            else//may be CD or DVD
    20982098            {
    2099                 rc = mVirtualBox->findDVDOrFloppyImage(DeviceType_DVD,
    2100                                                        NULL,
    2101                                                        strSrcFilePath,
    2102                                                        true,
    2103                                                        &pSourceDisk);
     2099                rc = mVirtualBox->i_findDVDOrFloppyImage(DeviceType_DVD,
     2100                                                         NULL,
     2101                                                         strSrcFilePath,
     2102                                                         true,
     2103                                                         &pSourceDisk);
    21042104                if (FAILED(rc)) throw rc;
    21052105            }
  • trunk/src/VBox/Main/src-server/ApplianceImplIO.cpp

    r50204 r50355  
    16891689             * Any existing file will be overwritten.
    16901690             */
    1691             rc = VirtualBox::ensureFilePathExists(Utf8Str(pcszFullFilenameOut), true /*fCreate*/);
     1691            rc = VirtualBox::i_ensureFilePathExists(Utf8Str(pcszFullFilenameOut), true /*fCreate*/);
    16921692            if (RT_SUCCESS(rc))
    16931693            {
     
    17581758         * Any existing file will be overwritten.
    17591759         */
    1760         rc = VirtualBox::ensureFilePathExists(Utf8Str(pcszTargetFilename), true /*fCreate*/);
     1760        rc = VirtualBox::i_ensureFilePathExists(Utf8Str(pcszTargetFilename), true /*fCreate*/);
    17611761        if (RT_SUCCESS(rc))
    17621762        {
  • trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp

    r50203 r50355  
    22122212
    22132213    /* Get the system properties. */
    2214     SystemProperties *pSysProps = mVirtualBox->getSystemProperties();
     2214    SystemProperties *pSysProps = mVirtualBox->i_getSystemProperties();
    22152215
    22162216    /*
     
    22412241    if (vrc == VINF_SUCCESS)
    22422242    {
    2243         rc = mVirtualBox->findHardDiskById(Guid(uuid), true, &pTargetHD);
     2243        rc = mVirtualBox->i_findHardDiskById(Guid(uuid), true, &pTargetHD);
    22442244        if (FAILED(rc)) throw rc;
    22452245    }
  • trunk/src/VBox/Main/src-server/ClientWatcher.cpp

    r49976 r50355  
    235235
    236236                // get reference to the machines list in VirtualBox
    237                 VirtualBox::MachinesOList &allMachines = that->mVirtualBox->getMachinesList();
     237                VirtualBox::MachinesOList &allMachines = that->mVirtualBox->i_getMachinesList();
    238238
    239239                // lock the machines list for reading
     
    440440            {
    441441                // get reference to the machines list in VirtualBox
    442                 VirtualBox::MachinesOList &allMachines = that->mVirtualBox->getMachinesList();
     442                VirtualBox::MachinesOList &allMachines = that->mVirtualBox->i_getMachinesList();
    443443
    444444                // lock the machines list for reading
     
    574574
    575575                // get reference to the machines list in VirtualBox
    576                 VirtualBox::MachinesOList &allMachines = that->mVirtualBox->getMachinesList();
     576                VirtualBox::MachinesOList &allMachines = that->mVirtualBox->i_getMachinesList();
    577577
    578578                // lock the machines list for reading
     
    743743
    744744                // get reference to the machines list in VirtualBox
    745                 VirtualBox::MachinesOList &allMachines = that->mVirtualBox->getMachinesList();
     745                VirtualBox::MachinesOList &allMachines = that->mVirtualBox->i_getMachinesList();
    746746
    747747                // lock the machines list for reading
  • trunk/src/VBox/Main/src-server/DHCPServerImpl.cpp

    r49742 r50355  
    200200    alock.release();
    201201    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    202     HRESULT rc = mVirtualBox->saveSettings();
     202    HRESULT rc = mVirtualBox->i_saveSettings();
    203203
    204204    return rc;
     
    258258    alock.release();
    259259    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    260     return mVirtualBox->saveSettings();
     260    return mVirtualBox->i_saveSettings();
    261261}
    262262
     
    275275
    276276    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    277     return mVirtualBox->saveSettings();
     277    return mVirtualBox->i_saveSettings();
    278278}
    279279
     
    318318
    319319    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    320     return mVirtualBox->saveSettings();
     320    return mVirtualBox->i_saveSettings();
    321321}
    322322
     
    331331
    332332    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    333     return mVirtualBox->saveSettings();
     333    return mVirtualBox->i_saveSettings();
    334334}
    335335
  • trunk/src/VBox/Main/src-server/HostDnsService.cpp

    r50263 r50355  
    262262{
    263263    m->fModified = true;
    264     const_cast<VirtualBox *>(m->virtualbox)->onHostNameResolutionConfigurationChange();
     264    const_cast<VirtualBox *>(m->virtualbox)->i_onHostNameResolutionConfigurationChange();
    265265}
    266266
  • trunk/src/VBox/Main/src-server/HostImpl.cpp

    r49951 r50355  
    295295
    296296#ifdef VBOX_WITH_RESOURCE_USAGE_API
    297     i_registerMetrics(aParent->performanceCollector());
     297    i_registerMetrics(aParent->i_performanceCollector());
    298298#endif /* VBOX_WITH_RESOURCE_USAGE_API */
    299299    /* Create the list of network interfaces so their metrics get registered. */
     
    470470
    471471#ifdef VBOX_WITH_RESOURCE_USAGE_API
    472     PerformanceCollector *aCollector = m->pParent->performanceCollector();
     472    PerformanceCollector *aCollector = m->pParent->i_performanceCollector();
    473473    i_unregisterMetrics(aCollector);
    474474#endif /* VBOX_WITH_RESOURCE_USAGE_API */
     
    522522HRESULT Host::getDVDDrives(std::vector<ComPtr<IMedium> > &aDVDDrives)
    523523{
    524     AutoWriteLock alock(m->pParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     524    AutoWriteLock alock(m->pParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    525525
    526526    MediaList *pList;
     
    545545HRESULT Host::getFloppyDrives(std::vector<ComPtr<IMedium> > &aFloppyDrives)
    546546{
    547     AutoWriteLock alock(m->pParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     547    AutoWriteLock alock(m->pParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    548548
    549549    MediaList *pList;
     
    14181418    alock.release();
    14191419    AutoWriteLock vboxLock(m->pParent COMMA_LOCKVAL_SRC_POS);
    1420     return rc = m->pParent->saveSettings();
     1420    return rc = m->pParent->i_saveSettings();
    14211421#else
    14221422
     
    14731473    alock.release();
    14741474    AutoWriteLock vboxLock(m->pParent COMMA_LOCKVAL_SRC_POS);
    1475     return rc = m->pParent->saveSettings();
     1475    return rc = m->pParent->i_saveSettings();
    14761476#else
    14771477    /* Note: The GUI depends on this method returning E_NOTIMPL with no
     
    18031803{
    18041804    HRESULT rc = S_OK;
    1805     Assert(m->pParent->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     1805    Assert(m->pParent->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    18061806
    18071807    MediaList llNew;
     
    19281928    MediaList *pllMedia;
    19291929
    1930     AutoWriteLock wlock(m->pParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1930    AutoWriteLock wlock(m->pParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    19311931    HRESULT rc = i_getDrives(mediumType, fRefresh, pllMedia);
    19321932    if (SUCCEEDED(rc))
     
    19681968    MediaList *pllMedia;
    19691969
    1970     AutoWriteLock wlock(m->pParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1970    AutoWriteLock wlock(m->pParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    19711971    HRESULT rc = i_getDrives(mediumType, fRefresh, pllMedia);
    19721972    if (SUCCEEDED(rc))
     
    20042004                                        ComObjPtr<Medium> &pMedium)
    20052005{
    2006     AutoWriteLock wlock(m->pParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     2006    AutoWriteLock wlock(m->pParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    20072007
    20082008    Guid uuid(strNameOrId);
     
    20232023    HRESULT rc = S_OK;
    20242024
    2025     Assert(m->pParent->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     2025    Assert(m->pParent->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    20262026
    20272027    try
     
    21052105    HRESULT rc = S_OK;
    21062106
    2107     Assert(m->pParent->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     2107    Assert(m->pParent->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    21082108
    21092109    try
     
    22472247        alock.release();
    22482248        AutoWriteLock vboxLock(m->pParent COMMA_LOCKVAL_SRC_POS);
    2249         return m->pParent->saveSettings();
     2249        return m->pParent->i_saveSettings();
    22502250    }
    22512251
     
    29782978    HostNetworkInterfaceList::iterator itOld, itNew;
    29792979# ifdef VBOX_WITH_RESOURCE_USAGE_API
    2980     PerformanceCollector *aCollector = m->pParent->performanceCollector();
     2980    PerformanceCollector *aCollector = m->pParent->i_performanceCollector();
    29812981# endif
    29822982    for (itOld = m->llNetIfs.begin(); itOld != m->llNetIfs.end(); ++itOld)
  • trunk/src/VBox/Main/src-server/HostPower.cpp

    r50227 r50355  
    5757#ifdef VBOX_WITH_RESOURCE_USAGE_API
    5858            /* Suspend performance sampling to avoid unnecessary callbacks due to jumps in time. */
    59             PerformanceCollector *perfcollector = mVirtualBox->performanceCollector();
     59            PerformanceCollector *perfcollector = mVirtualBox->i_performanceCollector();
    6060
    6161            if (perfcollector)
    6262                perfcollector->suspendSampling();
    6363#endif
    64             mVirtualBox->getOpenedMachines(machines, &controls);
     64            mVirtualBox->i_getOpenedMachines(machines, &controls);
    6565
    6666            /* pause running VMs */
     
    109109#ifdef VBOX_WITH_RESOURCE_USAGE_API
    110110            /* Resume the performance sampling. */
    111             PerformanceCollector *perfcollector = mVirtualBox->performanceCollector();
     111            PerformanceCollector *perfcollector = mVirtualBox->i_performanceCollector();
    112112
    113113            if (perfcollector)
     
    135135            }
    136136
    137             mVirtualBox->getOpenedMachines(machines, &controls);
     137            mVirtualBox->i_getOpenedMachines(machines, &controls);
    138138            size_t saved = 0;
    139139
  • trunk/src/VBox/Main/src-server/HostVideoInputDeviceImpl.cpp

    r49132 r50355  
    182182
    183183#ifdef VBOX_WITH_EXTPACK
    184     ExtPackManager *pExtPackMgr = pVirtualBox->getExtPackManager();
     184    ExtPackManager *pExtPackMgr = pVirtualBox->i_getExtPackManager();
    185185    hr = pExtPackMgr->getLibraryPathForExtPack("VBoxHostWebcam", &strExtPackPuel, &strLibrary);
    186186#else
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r50297 r50355  
    440440                // reject VM UUID duplicates, they can happen if someone
    441441                // tries to register an already known VM config again
    442                 if (aParent->findMachine(mData->pMachineConfigFile->uuid,
    443                                          true /* fPermitInaccessible */,
    444                                          false /* aDoSetError */,
    445                                          NULL) != VBOX_E_OBJECT_NOT_FOUND)
     442                if (aParent->i_findMachine(mData->pMachineConfigFile->uuid,
     443                                           true /* fPermitInaccessible */,
     444                                           false /* aDoSetError */,
     445                                           NULL) != VBOX_E_OBJECT_NOT_FOUND)
    446446                {
    447447                    throw setError(E_FAIL,
     
    486486            // uninit media from this machine's media registry, or else
    487487            // reloading the settings will fail
    488             mParent->unregisterMachineMedia(getId());
     488            mParent->i_unregisterMachineMedia(getId());
    489489        }
    490490    }
     
    522522
    523523    Utf8Str strConfigFile;
    524     aParent->getDefaultMachineFolder(strConfigFile);
     524    aParent->i_getDefaultMachineFolder(strConfigFile);
    525525    strConfigFile.append(RTPATH_DELIMITER);
    526526    strConfigFile.append(strName);
     
    576576            // uninit media from this machine's media registry, or else
    577577            // reloading the settings will fail
    578             mParent->unregisterMachineMedia(getId());
     578            mParent->i_unregisterMachineMedia(getId());
    579579        }
    580580    }
     
    616616
    617617    /* get the full file name */
    618     int vrc1 = mParent->calculateFullPath(strConfigFile, mData->m_strConfigFileFull);
     618    int vrc1 = mParent->i_calculateFullPath(strConfigFile, mData->m_strConfigFileFull);
    619619    if (RT_FAILURE(vrc1))
    620620        return setError(VBOX_E_FILE_ERROR,
     
    712712                               mData->m_strConfigFileFull.c_str(),
    713713                               mData->mUuid.toString().c_str(),
    714                                mParent->settingsFilePath().c_str());
     714                               mParent->i_settingsFilePath().c_str());
    715715
    716716            rc = loadMachineDataFromSettings(*mData->pMachineConfigFile,
     
    760760        // uninit media from this machine's media registry, or else
    761761        // reloading the settings will fail
    762         mParent->unregisterMachineMedia(getId());
     762        mParent->i_unregisterMachineMedia(getId());
    763763
    764764        /* uninitialize the common part to make sure all data is reset to
     
    859859
    860860    if (uuidMachine.isValid() && !uuidMachine.isZero())     // can be empty if we're called from a failure of Machine::init
    861         mParent->unregisterMachineMedia(uuidMachine);
     861        mParent->i_unregisterMachineMedia(uuidMachine);
    862862
    863863    // has machine been modified?
     
    906906     * go through the list of all machines. Happens when an inaccessible VM
    907907     * has a sensible medium registry. */
    908     AutoReadLock mllock(mParent->getMachinesListLockHandle() COMMA_LOCKVAL_SRC_POS);
     908    AutoReadLock mllock(mParent->i_getMachinesListLockHandle() COMMA_LOCKVAL_SRC_POS);
    909909    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
    910910
     
    920920#ifdef DEBUG
    921921        LogFlowThisFunc(("Dumping media backreferences\n"));
    922         mParent->dumpAllBackRefs();
     922        mParent->i_dumpAllBackRefs();
    923923#endif
    924924
     
    939939            /* make sure interesting parties will notice the accessibility
    940940             * state change */
    941             mParent->onMachineStateChange(mData->mUuid, mData->mMachineState);
    942             mParent->onMachineDataChange(mData->mUuid);
     941            mParent->i_onMachineStateChange(mData->mUuid, mData->mMachineState);
     942            mParent->i_onMachineDataChange(mData->mUuid);
    943943        }
    944944    }
     
    10981098    AutoCaller autoCaller(this);
    10991099    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1100    std::vector<com::Utf8Str> tmplist;
     1101    SafeArray<IN_BSTR> tmp(ComSafeArrayInArg(aGroups));
     1102    tmplist.resize(tmp.size());
     1103    for (size_t i = 0; i < tmp.size(); ++i)
     1104        tmplist[i] = Utf8Str(tmp[i]);
    11001105
    11011106    StringsList llGroups;
    1102     HRESULT rc = mParent->convertMachineGroups(ComSafeArrayInArg(aGroups), &llGroups);
     1107    HRESULT rc = mParent->i_convertMachineGroups(tmplist, &llGroups);
    11031108    if (FAILED(rc))
    11041109        return rc;
     
    22312236                    if (SUCCEEDED(hrc2) && fIs64Bit)
    22322237                    {
    2233                         ComObjPtr<Host> ptrHost = mParent->host();
     2238                        ComObjPtr<Host> ptrHost = mParent->i_host();
    22342239                        alock.release();
    22352240
     
    27092714
    27102715# ifdef VBOX_WITH_USB
    2711     rc = mParent->host()->i_checkUSBProxyService();
     2716    rc = mParent->i_host()->i_checkUSBProxyService();
    27122717    if (FAILED(rc)) return rc;
    27132718# endif
     
    27392744
    27402745# ifdef VBOX_WITH_USB
    2741     rc = mParent->host()->i_checkUSBProxyService();
     2746    rc = mParent->i_host()->i_checkUSBProxyService();
    27422747    if (FAILED(rc)) return rc;
    27432748# endif
     
    38283833         *  machines that have open sessions
    38293834         */
    3830         mParent->updateClientWatcher();
     3835        mParent->i_updateClientWatcher();
    38313836
    38323837        if (oldState != SessionState_Locked)
    38333838            /* fire an event */
    3834             mParent->onSessionStateChange(getId(), SessionState_Locked);
     3839            mParent->i_onSessionStateChange(getId(), SessionState_Locked);
    38353840    }
    38363841
     
    39313936
    39323937                /* signal the client watcher thread */
    3933                 mParent->updateClientWatcher();
     3938                mParent->i_updateClientWatcher();
    39343939
    39353940                /* fire an event */
    3936                 mParent->onSessionStateChange(getId(), SessionState_Spawning);
     3941                mParent->i_onSessionStateChange(getId(), SessionState_Spawning);
    39373942            }
    39383943        }
     
    39633968        /* signal the client watcher thread, as most likely the client has
    39643969         * been terminated */
    3965         mParent->updateClientWatcher();
     3970        mParent->i_updateClientWatcher();
    39663971    }
    39673972
     
    40284033    // request the host lock first, since might be calling Host methods for getting host drives;
    40294034    // next, protect the media tree all the while we're in here, as well as our member variables
    4030     AutoMultiWriteLock2 alock(mParent->host(), this COMMA_LOCKVAL_SRC_POS);
    4031     AutoWriteLock treeLock(&mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     4035    AutoMultiWriteLock2 alock(mParent->i_host(), this COMMA_LOCKVAL_SRC_POS);
     4036    AutoWriteLock treeLock(&mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    40324037
    40334038    HRESULT rc = checkStateDependency(MutableStateDep);
     
    41354140            // As a result, we can only use these two new types if the medium is NOT in the
    41364141            // global registry:
    4137             const Guid &uuidGlobalRegistry = mParent->getGlobalRegistryId();
     4142            const Guid &uuidGlobalRegistry = mParent->i_getGlobalRegistryId();
    41384143            if (    medium->i_isInRegistry(uuidGlobalRegistry)
    41394144                 || !mData->pMachineConfigFile->canHaveOwnMediaRegistry()
     
    45814586    }
    45824587
    4583     mParent->saveModifiedRegistries();
     4588    mParent->i_saveModifiedRegistries();
    45844589
    45854590    return rc;
     
    46664671    alock.release();
    46674672
    4668     mParent->saveModifiedRegistries();
     4673    mParent->i_saveModifiedRegistries();
    46694674
    46704675    return rc;
     
    50385043    // request the host lock first, since might be calling Host methods for getting host drives;
    50395044    // next, protect the media tree all the while we're in here, as well as our member variables
    5040     AutoMultiWriteLock3 multiLock(mParent->host()->lockHandle(),
     5045    AutoMultiWriteLock3 multiLock(mParent->i_host()->lockHandle(),
    50415046                                  this->lockHandle(),
    5042                                   &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     5047                                  &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    50435048
    50445049    ComObjPtr<MediumAttachment> pAttach = findAttachment(mMediaData->mAttachments,
     
    51385143    multiLock.release();
    51395144
    5140     mParent->saveModifiedRegistries();
     5145    mParent->i_saveModifiedRegistries();
    51415146
    51425147    return rc;
     
    53095314    {
    53105315        // ask for permission from all listeners outside the locks;
    5311         // onExtraDataCanChange() only briefly requests the VirtualBox
     5316        // i_onExtraDataCanChange() only briefly requests the VirtualBox
    53125317        // lock to copy the list of callbacks to invoke
    53135318        Bstr error;
    53145319        Bstr bstrValue(aValue);
    53155320
    5316         if (!mParent->onExtraDataCanChange(mData->mUuid, aKey, bstrValue.raw(), error))
     5321        if (!mParent->i_onExtraDataCanChange(mData->mUuid, aKey, bstrValue.raw(), error))
    53175322        {
    53185323            const char *sep = error.isEmpty() ? "" : ": ";
     
    53515356            alock.release();
    53525357            AutoWriteLock vboxlock(mParent COMMA_LOCKVAL_SRC_POS);
    5353             mParent->saveSettings();
     5358            mParent->i_saveSettings();
    53545359        }
    53555360    }
     
    53575362    // fire notification outside the lock
    53585363    if (fChanged)
    5359         mParent->onExtraDataChange(mData->mUuid, aKey, aValue);
     5364        mParent->i_onExtraDataChange(mData->mUuid, aKey, aValue);
    53605365
    53615366    return S_OK;
     
    53985403        // save the global settings; for that we should hold only the VirtualBox lock
    53995404        AutoWriteLock vlock(mParent COMMA_LOCKVAL_SRC_POS);
    5400         rc = mParent->saveSettings();
     5405        rc = mParent->i_saveSettings();
    54015406    }
    54025407
     
    54545459        uninit();
    54555460
    5456         mParent->unregisterMachine(this, id);
     5461        mParent->i_unregisterMachine(this, id);
    54575462            // calls VirtualBox::saveSettings()
    54585463
     
    55515556    sfaMedia.detachTo(ComSafeArrayOutArg(aMedia));
    55525557
    5553     mParent->unregisterMachine(this, id);
    5554             // calls VirtualBox::saveSettings() and VirtualBox::saveModifiedRegistries()
     5558    mParent->i_unregisterMachine(this, id);
     5559            // calls VirtualBox::saveSettings() and VirtualBox::i_saveModifiedRegistries()
    55555560
    55565561    return S_OK;
     
    58175822        alock.release();
    58185823
    5819         mParent->saveModifiedRegistries();
     5824        mParent->i_saveModifiedRegistries();
    58205825    }
    58215826    catch (HRESULT aRC) { rc = aRC; }
     
    61596164            alock.release();
    61606165
    6161             mParent->onGuestPropertyChange(mData->mUuid, aName,
    6162                                            aValue ? aValue : Bstr("").raw(),
    6163                                            aFlags ? aFlags : Bstr("").raw());
     6166            mParent->i_onGuestPropertyChange(mData->mUuid, aName,
     6167                                             aValue ? aValue : Bstr("").raw(),
     6168                                             aFlags ? aFlags : Bstr("").raw());
    61646169        }
    61656170    }
     
    66596664    /* Check that we don't exceed the maximum number of USB controllers for the given type. */
    66606665    ULONG maxInstances;
    6661     rc = mParent->getSystemProperties()->GetMaxInstancesOfUSBControllerType(mHWData->mChipsetType, aType, &maxInstances);
     6666    rc = mParent->i_getSystemProperties()->GetMaxInstancesOfUSBControllerType(mHWData->mChipsetType, aType, &maxInstances);
    66626667    if (FAILED(rc))
    66636668        return rc;
     
    74847489            && mHWData->mAutostart.fAutostartEnabled != !!fEnabled)
    74857490        {
    7486             AutostartDb *autostartDb = mParent->getAutostartDb();
     7491            AutostartDb *autostartDb = mParent->i_getAutostartDb();
    74877492            int vrc;
    74887493
     
    75757580            && mHWData->mAutostart.enmAutostopType != enmAutostopType)
    75767581        {
    7577             AutostartDb *autostartDb = mParent->getAutostartDb();
     7582            AutostartDb *autostartDb = mParent->i_getAutostartDb();
    75787583            int vrc;
    75797584
     
    82178222        mData->mSession.mState = SessionState_Unlocked;
    82188223        alock.release();
    8219         mParent->addProcessToReap(pid);
     8224        mParent->i_addProcessToReap(pid);
    82208225        /* The failure may occur w/o any error info (from RPC), so provide one */
    82218226        return setError(VBOX_E_VM_ERROR,
     
    82328237
    82338238    alock.release();
    8234     mParent->addProcessToReap(pid);
     8239    mParent->i_addProcessToReap(pid);
    82358240
    82368241    LogFlowThisFuncLeave();
     
    83918396        mData->mSession.mPID = NIL_RTPROCESS;
    83928397
    8393         mParent->onSessionStateChange(mData->mUuid, SessionState_Unlocked);
     8398        mParent->i_onSessionStateChange(mData->mUuid, SessionState_Unlocked);
    83948399        return true;
    83958400    }
     
    86898694
    86908695    /* initialize mOSTypeId */
    8691     mUserData->s.strOsType = mParent->getUnknownOSType()->i_id();
     8696    mUserData->s.strOsType = mParent->i_getUnknownOSType()->i_id();
    86928697
    86938698    /* create associated BIOS settings object */
     
    89478952        RTTimeNow(&mData->mLastStateChange);
    89488953
    8949         mParent->onMachineStateChange(mData->mUuid, aMachineState);
     8954        mParent->i_onMachineStateChange(mData->mUuid, aMachineState);
    89508955    }
    89518956
     
    96739678            case DeviceType_DVD:
    96749679                if (dev.strHostDriveSrc.isNotEmpty())
    9675                     rc = mParent->host()->i_findHostDriveByName(dev.deviceType, dev.strHostDriveSrc, false /* fRefresh */, medium);
     9680                    rc = mParent->i_host()->i_findHostDriveByName(dev.deviceType, dev.strHostDriveSrc, false /* fRefresh */, medium);
    96769681                else
    9677                     rc = mParent->findRemoveableMedium(dev.deviceType,
    9678                                                        dev.uuid,
    9679                                                        false /* fRefresh */,
    9680                                                        false /* aSetError */,
    9681                                                        medium);
     9682                    rc = mParent->i_findRemoveableMedium(dev.deviceType,
     9683                                                         dev.uuid,
     9684                                                         false /* fRefresh */,
     9685                                                         false /* aSetError */,
     9686                                                         medium);
    96829687                if (rc == VBOX_E_OBJECT_NOT_FOUND)
    96839688                    // This is not an error. The host drive or UUID might have vanished, so just go ahead without this removeable medium attachment
     
    96889693            {
    96899694                /* find a hard disk by UUID */
    9690                 rc = mParent->findHardDiskById(dev.uuid, true /* aDoSetError */, &medium);
     9695                rc = mParent->i_findHardDiskById(dev.uuid, true /* aDoSetError */, &medium);
    96919696                if (FAILED(rc))
    96929697                {
     
    1017910184            mData->m_strConfigFileFull = newConfigFile;
    1018010185            // compute the relative path too
    10181             mParent->copyPathRelativeToConfig(newConfigFile, mData->m_strConfigFile);
     10186            mParent->i_copyPathRelativeToConfig(newConfigFile, mData->m_strConfigFile);
    1018210187
    1018310188            // store the old and new so that VirtualBox::saveSettings() can update
     
    1018610191                 && configDir != newConfigDir)
    1018710192            {
    10188                 mParent->rememberMachineNameChangeForMedia(configDir, newConfigDir);
     10193                mParent->i_rememberMachineNameChangeForMedia(configDir, newConfigDir);
    1018910194
    1019010195                if (pfNeedsGlobalSaveSettings)
     
    1038210387         * inform callbacks. */
    1038310388        if (isSessionMachine())
    10384             mParent->onMachineDataChange(mData->mUuid);
     10389            mParent->i_onMachineDataChange(mData->mUuid);
    1038510390    }
    1038610391
     
    1048710492        Utf8Str strMachineFolder = getSettingsFileFull();
    1048810493        strMachineFolder.stripFilename();
    10489         mParent->saveMediaRegistry(config.mediaRegistry,
    10490                                    getId(),             // only media with registry ID == machine UUID
    10491                                    strMachineFolder);
     10494        mParent->i_saveMediaRegistry(config.mediaRegistry,
     10495                                     getId(),             // only media with registry ID == machine UUID
     10496                                     strMachineFolder);
    1049210497            // this throws HRESULT
    1049310498    }
     
    1100911014    /* Paranoia checks: do not hold machine or media tree locks. */
    1101011015    AssertReturnVoid(!isWriteLockOnCurrentThread());
    11011     AssertReturnVoid(!mParent->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     11016    AssertReturnVoid(!mParent->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    1101211017
    1101311018    ComObjPtr<Medium> pBase;
    1101411019    {
    11015         AutoReadLock treeLock(&mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     11020        AutoReadLock treeLock(&mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1101611021        pBase = pMedium->i_getBase();
    1101711022    }
     
    1102711032        uuid = getId();     // machine UUID
    1102811033    else
    11029         uuid = mParent->getGlobalRegistryId(); // VirtualBox global registry UUID
     11034        uuid = mParent->i_getGlobalRegistryId(); // VirtualBox global registry UUID
    1103011035
    1103111036    if (pMedium->i_addRegistry(uuid, false /* fRecurse */))
    11032         mParent->markRegistryModified(uuid);
     11037        mParent->i_markRegistryModified(uuid);
    1103311038
    1103411039    /* For more complex hard disk structures it can happen that the base
     
    1103711042    {
    1103811043        if (pBase->i_addRegistry(uuid, true /* fRecurse */))
    11039             mParent->markRegistryModified(uuid);
     11044            mParent->i_markRegistryModified(uuid);
    1104011045    }
    1104111046}
     
    1108211087
    1108311088    AutoMultiWriteLock2 alock(this->lockHandle(),
    11084                               &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     11089                              &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1108511090
    1108611091    /* must be in a protective state because we release the lock below */
     
    1130011305
    1130111306    AutoMultiWriteLock2 alock(this->lockHandle(),
    11302                               &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     11307                              &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1130311308
    1130411309    /* We absolutely must have backed up state. */
     
    1287812883                        mUserData->s.strName.c_str(), name.raw()));
    1287912884                aMachine->lockHandle()->unlockWrite();
    12880                 mParent->natNetworkRefInc(name.raw());
     12885                mParent->i_natNetworkRefInc(name.raw());
    1288112886#ifdef RT_LOCK_STRICT
    1288212887                aMachine->lockHandle()->lockWrite(RT_SRC_POS);
     
    1297812983        NOREF(rc);
    1297912984
    12980         USBProxyService *service = mParent->host()->i_usbProxyService();
     12985        USBProxyService *service = mParent->i_host()->i_usbProxyService();
    1298112986        if (service)
    1298212987            service->detachAllDevicesFromVM(this, true /* aDone */, true /* aAbnormal */);
     
    1298712992    // with mPeer (as well as data we modify below). mParent lock is needed
    1298812993    // by several calls to it, and USB needs host lock.
    12989     AutoMultiWriteLock3 multilock(mParent, mParent->host(), this COMMA_LOCKVAL_SRC_POS);
     12994    AutoMultiWriteLock3 multilock(mParent, mParent->i_host(), this COMMA_LOCKVAL_SRC_POS);
    1299012995
    1299112996#ifdef VBOX_WITH_RESOURCE_USAGE_API
     
    1299513000     * holding the lock.
    1299613001     */
    12997     unregisterMetrics(mParent->performanceCollector(), mPeer);
     13002    unregisterMetrics(mParent->i_performanceCollector(), mPeer);
    1299813003    /* The guest must be unregistered after its metrics (@bugref{5949}). */
    1299913004    LogAleksey(("{%p} " LOG_FN_FMT ": mCollectorGuest=%p\n",
     
    1300113006    if (mCollectorGuest)
    1300213007    {
    13003         mParent->performanceCollector()->unregisterGuest(mCollectorGuest);
     13008        mParent->i_performanceCollector()->unregisterGuest(mCollectorGuest);
    1300413009        // delete mCollectorGuest; => CollectorGuestManager::destroyUnregistered()
    1300513010        mCollectorGuest = NULL;
     
    1305413059         * client watcher thread to update the set of machines that have open
    1305513060         * sessions. */
    13056         mParent->updateClientWatcher();
     13061        mParent->i_updateClientWatcher();
    1305713062    }
    1305813063
     
    1309313098                LogRel(("VM '%s' stops using NAT network '%ls'\n",
    1309413099                        mUserData->s.strName.c_str(), name.raw()));
    13095                 mParent->natNetworkRefDec(name.raw());
     13100                mParent->i_natNetworkRefDec(name.raw());
    1309613101                multilock.acquire();
    1309713102            }
     
    1315413159
    1315513160    /* fire an event */
    13156     mParent->onSessionStateChange(mData->mUuid, SessionState_Unlocked);
     13161    mParent->i_onSessionStateChange(mData->mUuid, SessionState_Unlocked);
    1315713162
    1315813163    uninitDataAndChildObjects();
     
    1329713302         * now to offer the performance metrics for a running machine
    1329813303         * object. Doing it earlier wouldn't be safe. */
    13299         registerMetrics(mParent->performanceCollector(), mPeer,
     13304        registerMetrics(mParent->i_performanceCollector(), mPeer,
    1330013305                        mData->mSession.mPID);
    1330113306#endif /* VBOX_WITH_RESOURCE_USAGE_API */
     
    1343513440    /* if captureDeviceForVM() fails, it must have set extended error info */
    1343613441    clearError();
    13437     MultiResult rc = mParent->host()->i_checkUSBProxyService();
     13442    MultiResult rc = mParent->i_host()->i_checkUSBProxyService();
    1343813443    if (FAILED(rc)) return rc;
    1343913444
    13440     USBProxyService *service = mParent->host()->i_usbProxyService();
     13445    USBProxyService *service = mParent->i_host()->i_usbProxyService();
    1344113446    AssertReturn(service, E_FAIL);
    1344213447    return service->captureDeviceForVM(this, Guid(aId).ref());
     
    1345813463
    1345913464#ifdef VBOX_WITH_USB
    13460     USBProxyService *service = mParent->host()->i_usbProxyService();
     13465    USBProxyService *service = mParent->i_host()->i_usbProxyService();
    1346113466    AssertReturn(service, E_FAIL);
    1346213467    return service->detachDeviceFromVM(this, Guid(aId).ref(), !!aDone);
     
    1348813493    NOREF(rc);
    1348913494
    13490     USBProxyService *service = mParent->host()->i_usbProxyService();
     13495    USBProxyService *service = mParent->i_host()->i_usbProxyService();
    1349113496    AssertReturn(service, E_FAIL);
    1349213497    return service->autoCaptureDevicesForVM(this);
     
    1351813523    NOREF(rc);
    1351913524
    13520     USBProxyService *service = mParent->host()->i_usbProxyService();
     13525    USBProxyService *service = mParent->i_host()->i_usbProxyService();
    1352113526    AssertReturn(service, E_FAIL);
    1352213527    return service->detachAllDevicesFromVM(this, !!aDone, false /* aAbnormal */);
     
    1361813623
    1361913624    /* signal the client watcher thread, because the client is going away */
    13620     mParent->updateClientWatcher();
     13625    mParent->i_updateClientWatcher();
    1362113626
    1362213627    LogFlowThisFuncLeave();
     
    1388613891            alock.release();
    1388713892
    13888             mParent->onGuestPropertyChange(mData->mUuid,
    13889                                            aName,
    13890                                            aValue,
    13891                                            aFlags);
     13893            mParent->i_onGuestPropertyChange(mData->mUuid,
     13894                                             aName,
     13895                                             aValue,
     13896                                             aFlags);
    1389213897        }
    1389313898    }
     
    1390813913
    1390913914    AutoMultiWriteLock2 alock(this->lockHandle(),
    13910                               &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     13915                              &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1391113916
    1391213917    AssertReturn(   mData->mMachineState == MachineState_Starting
     
    1393613941    // request the host lock first, since might be calling Host methods for getting host drives;
    1393713942    // next, protect the media tree all the while we're in here, as well as our member variables
    13938     AutoMultiWriteLock3 multiLock(mParent->host()->lockHandle(),
     13943    AutoMultiWriteLock3 multiLock(mParent->i_host()->lockHandle(),
    1393913944                                  this->lockHandle(),
    13940                                   &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     13945                                  &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1394113946
    1394213947    ComObjPtr<MediumAttachment> pAttach = static_cast<MediumAttachment *>(aAttachment);
     
    1415014155     */
    1415114156
    14152     mParent->onNatRedirectChange(getId(), ulSlot, RT_BOOL(aNatRuleRemove), aRuleName, aProto, aHostIp, (uint16_t)aHostPort, aGuestIp, (uint16_t)aGuestPort);
     14157    mParent->i_onNatRedirectChange(getId(), ulSlot, RT_BOOL(aNatRuleRemove), aRuleName, aProto, aHostIp, (uint16_t)aHostPort, aGuestIp, (uint16_t)aGuestPort);
    1415314158    return S_OK;
    1415414159}
     
    1469214697
    1469314698    AutoMultiWriteLock2 alock(this->lockHandle(),
    14694                               &mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     14699                              &mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1469514700
    1469614701    /* bail out if trying to lock things with already set up locking */
  • trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp

    r49795 r50355  
    11021102                        /* Default format? */
    11031103                        Utf8Str strDefaultFormat;
    1104                         p->mParent->getDefaultHardDiskFormat(strDefaultFormat);
     1104                        p->mParent->i_getDefaultHardDiskFormat(strDefaultFormat);
    11051105                        Bstr bstrSrcFormat(strDefaultFormat);
    11061106
     
    12211221                        /* register the new harddisk */
    12221222                        {
    1223                             AutoWriteLock tlock(p->mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    1224                             rc = p->mParent->registerMedium(pTarget, &pTarget,
     1223                            AutoWriteLock tlock(p->mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1224                            rc = p->mParent->i_registerMedium(pTarget, &pTarget,
    12251225                                                            DeviceType_HardDisk);
    12261226                            if (FAILED(rc)) throw rc;
     
    13041304                        trgLock.release();
    13051305                        srcLock.release();
    1306                         p->mParent->markRegistryModified(uuid);
     1306                        p->mParent->i_markRegistryModified(uuid);
    13071307                        srcLock.acquire();
    13081308                        trgLock.acquire();
     
    13731373                 * VirtualBox lock */
    13741374                AutoWriteLock vlock(p->mParent COMMA_LOCKVAL_SRC_POS);
    1375                 rc = p->mParent->saveSettings();
     1375                rc = p->mParent->i_saveSettings();
    13761376                if (FAILED(rc)) throw rc;
    13771377            }
     
    13791379
    13801380        /* Any additional machines need saving? */
    1381         p->mParent->saveModifiedRegistries();
     1381        p->mParent->i_saveModifiedRegistries();
    13821382    }
    13831383    catch (HRESULT rc2)
     
    14181418
    14191419        /* Must save the modified registries */
    1420         p->mParent->saveModifiedRegistries();
     1420        p->mParent->i_saveModifiedRegistries();
    14211421    }
    14221422
  • trunk/src/VBox/Main/src-server/MediumImpl.cpp

    r49951 r50355  
    110110    VirtualBox * const pVirtualBox;
    111111
    112     // pParent and llChildren are protected by VirtualBox::getMediaTreeLockHandle()
     112    // pParent and llChildren are protected by VirtualBox::i_getMediaTreeLockHandle()
    113113    ComObjPtr<Medium> pParent;
    114114    MediaList llChildren;           // to add a child, just call push_back; to remove a child, call child->deparent() which does a lookup
     
    946946        unconst(m->id).create();
    947947
    948         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     948        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    949949        ComObjPtr<Medium> pMedium;
    950950
     
    959959            bool fInUse;
    960960
    961             fInUse = m->pVirtualBox->isMediaUuidInUse(m->id, DeviceType_HardDisk);
     961            fInUse = m->pVirtualBox->i_isMediaUuidInUse(m->id, DeviceType_HardDisk);
    962962            if (fInUse)
    963963            {
     
    969969        }
    970970
    971         rc = m->pVirtualBox->registerMedium(this, &pMedium, DeviceType_HardDisk);
     971        rc = m->pVirtualBox->i_registerMedium(this, &pMedium, DeviceType_HardDisk);
    972972        Assert(this == pMedium || FAILED(rc));
    973973    }
     
    11451145    {
    11461146        // differencing medium: add to parent
    1147         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1147        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    11481148        m->pParent = aParent;
    11491149        aParent->m->llChildren.push_back(this);
     
    12081208    {
    12091209        Utf8Str strPlaintext;
    1210         int vrc = m->pVirtualBox->decryptSetting(&strPlaintext, itCph->second);
     1210        int vrc = m->pVirtualBox->i_decryptSetting(&strPlaintext, itCph->second);
    12111211        if (RT_SUCCESS(vrc))
    12121212            m->mapProperties["InitiatorSecret"] = strPlaintext;
     
    12301230        {
    12311231            // Otherwise use the old VirtualBox "make absolute path" logic:
    1232             rc = m->pVirtualBox->calculateFullPath(data.strLocation, strFull);
     1232            rc = m->pVirtualBox->i_calculateFullPath(data.strLocation, strFull);
    12331233            if (FAILED(rc)) return rc;
    12341234        }
     
    12641264     * COMGETTER(State). */
    12651265
    1266     AutoWriteLock treeLock(aVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1266    AutoWriteLock treeLock(aVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    12671267
    12681268    /* load all children */
     
    12831283        if (FAILED(rc)) break;
    12841284
    1285         rc = m->pVirtualBox->registerMedium(pHD, &pHD, DeviceType_HardDisk);
     1285        rc = m->pVirtualBox->i_registerMedium(pHD, &pHD, DeviceType_HardDisk);
    12861286        if (FAILED(rc)) break;
    12871287    }
     
    15761576{
    15771577    // we access mParent and members
    1578     AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1578    AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    15791579    AutoWriteLock mlock(this COMMA_LOCKVAL_SRC_POS);
    15801580
     
    16831683        // As a result, we can only use these two new types if the medium is NOT in the
    16841684        // global registry:
    1685         const Guid &uuidGlobalRegistry = m->pVirtualBox->getGlobalRegistryId();
     1685        const Guid &uuidGlobalRegistry = m->pVirtualBox->i_getGlobalRegistryId();
    16861686        if (i_isInRegistry(uuidGlobalRegistry))
    16871687            return setError(VBOX_E_INVALID_OBJECT_STATE,
     
    16971697    treeLock.release();
    16981698    i_markRegistriesModified();
    1699     m->pVirtualBox->saveModifiedRegistries();
     1699    m->pVirtualBox->i_saveModifiedRegistries();
    17001700
    17011701    return S_OK;
     
    17131713{
    17141714    /* we access mParent */
    1715     AutoReadLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1715    AutoReadLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    17161716
    17171717    m->pParent.queryInterfaceTo(aParent.asOutParam());
     
    17231723{
    17241724    /* we access children */
    1725     AutoReadLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1725    AutoReadLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    17261726
    17271727    MediaList children(this->i_getChildren());
     
    17861786        mlock.release();
    17871787        i_markRegistriesModified();
    1788         m->pVirtualBox->saveModifiedRegistries();
     1788        m->pVirtualBox->i_saveModifiedRegistries();
    17891789    }
    17901790
     
    19401940        /* Must not hold the media tree lock, as Medium::queryInfo needs this
    19411941         * lock and thus we would run into a deadlock here. */
    1942         Assert(!m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     1942        Assert(!m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    19431943        while (m->queryInfoRunning)
    19441944        {
     
    20572057        /* Must not hold the media tree lock, as Medium::queryInfo needs this
    20582058         * lock and thus we would run into a deadlock here. */
    2059         Assert(!m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     2059        Assert(!m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    20602060        while (m->queryInfoRunning)
    20612061        {
     
    21542154    MultiResult mrc = i_close(aAutoCaller);
    21552155
    2156     pVirtualBox->saveModifiedRegistries();
     2156    pVirtualBox->i_saveModifiedRegistries();
    21572157
    21582158    return mrc;
     
    22222222    mlock.release();
    22232223    i_markRegistriesModified();
    2224     m->pVirtualBox->saveModifiedRegistries();
     2224    m->pVirtualBox->i_saveModifiedRegistries();
    22252225
    22262226    return S_OK;
     
    22992299    mlock.release();
    23002300    i_markRegistriesModified();
    2301     m->pVirtualBox->saveModifiedRegistries();
     2301    m->pVirtualBox->i_saveModifiedRegistries();
    23022302
    23032303    return S_OK;
     
    23872387                                      false /* aWait */);
    23882388    /* Must save the registries in any case, since an entry was removed. */
    2389     m->pVirtualBox->saveModifiedRegistries();
     2389    m->pVirtualBox->i_saveModifiedRegistries();
    23902390
    23912391    if (SUCCEEDED(mrc))
     
    24032403
    24042404    // locking: we need the tree lock first because we access parent pointers
    2405     AutoMultiWriteLock3 alock(&m->pVirtualBox->getMediaTreeLockHandle(),
     2405    AutoMultiWriteLock3 alock(&m->pVirtualBox->i_getMediaTreeLockHandle(),
    24062406                              this->lockHandle(), diff->lockHandle() COMMA_LOCKVAL_SRC_POS);
    24072407
     
    25452545        // and we need to write-lock the media involved
    25462546        uint32_t    cHandles    = 3;
    2547         LockHandle* pHandles[4] = { &m->pVirtualBox->getMediaTreeLockHandle(),
     2547        LockHandle* pHandles[4] = { &m->pVirtualBox->i_getMediaTreeLockHandle(),
    25482548                                    this->lockHandle(),
    25492549                                    pTarget->lockHandle() };
     
    28242824    {
    28252825        /* canClose() needs the tree lock */
    2826         AutoMultiWriteLock2 multilock(&m->pVirtualBox->getMediaTreeLockHandle(),
     2826        AutoMultiWriteLock2 multilock(&m->pVirtualBox->i_getMediaTreeLockHandle(),
    28272827                                      this->lockHandle()
    28282828                                      COMMA_LOCKVAL_SRC_POS);
     
    32303230         ++it)
    32313231    {
    3232         m->pVirtualBox->markRegistryModified(*it);
     3232        m->pVirtualBox->i_markRegistryModified(*it);
    32333233    }
    32343234}
     
    35233523
    35243524    /* we access mParent */
    3525     AutoReadLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3525    AutoReadLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    35263526
    35273527    pBase = this;
     
    35623562
    35633563    /* we access children */
    3564     AutoReadLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3564    AutoReadLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    35653565
    35663566    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    36223622
    36233623    /* we access mParent */
    3624     AutoReadLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3624    AutoReadLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    36253625
    36263626    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    36583658        /* Encrypt the plain secret. If that does not work (i.e. no or wrong settings key
    36593659         * specified), just use the encrypted secret (if there is any). */
    3660         int rc = m->pVirtualBox->encryptSetting(itPln->second, &strCiphertext);
     3660        int rc = m->pVirtualBox->i_encryptSetting(itPln->second, &strCiphertext);
    36613661        if (RT_SUCCESS(rc))
    36623662            fHaveInitiatorSecretEncrypted = true;
     
    37153715                                       MediumLockList &mediumLockList)
    37163716{
    3717     Assert(!m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     3717    Assert(!m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    37183718    Assert(!isWriteLockOnCurrentThread());
    37193719
     
    39413941        /* use the default format if not */
    39423942        Utf8Str tmp;
    3943         m->pVirtualBox->getDefaultHardDiskFormat(tmp);
     3943        m->pVirtualBox->i_getDefaultHardDiskFormat(tmp);
    39443944        return tmp;
    39453945    }
     
    39643964{
    39653965    // we're accessing parent/child and backrefs, so lock the tree first, then ourselves
    3966     AutoMultiWriteLock2 multilock(&m->pVirtualBox->getMediaTreeLockHandle(),
     3966    AutoMultiWriteLock2 multilock(&m->pVirtualBox->i_getMediaTreeLockHandle(),
    39673967                                  this->lockHandle()
    39683968                                  COMMA_LOCKVAL_SRC_POS);
     
    40064006        // Needs to be done before saving the registry, as otherwise there
    40074007        // may be a deadlock with someone else closing this object while we're
    4008         // in saveModifiedRegistries(), which needs the media tree lock, which
     4008        // in i_saveModifiedRegistries(), which needs the media tree lock, which
    40094009        // the other thread holds until after uninit() below.
    40104010        /// @todo redesign the locking here, as holding the locks over uninit causes lock order trouble which the lock validator can't detect
    40114011        autoCaller.release();
    4012         m->pVirtualBox->saveModifiedRegistries();
     4012        m->pVirtualBox->i_saveModifiedRegistries();
    40134013        multilock.acquire();
    40144014    }
     
    40654065    {
    40664066        /* we're accessing the media tree, and canClose() needs it too */
    4067         AutoMultiWriteLock2 multilock(&m->pVirtualBox->getMediaTreeLockHandle(),
     4067        AutoMultiWriteLock2 multilock(&m->pVirtualBox->i_getMediaTreeLockHandle(),
    40684068                                      this->lockHandle()
    40694069                                      COMMA_LOCKVAL_SRC_POS);
     
    43294329    {
    43304330        // locking: we need the tree lock first because we access parent pointers
    4331         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     4331        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    43324332
    43334333        /* more sanity checking and figuring out the current merge direction */
     
    44594459    {
    44604460        // locking: we need the tree lock first because we access parent pointers
    4461         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     4461        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    44624462
    44634463        /* more sanity checking and figuring out the merge direction */
     
    49364936{
    49374937    Assert(!isWriteLockOnCurrentThread());
    4938     Assert(!m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     4938    Assert(!m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    49394939    MediumLockList mediumLockList;
    49404940    HRESULT rc = i_createMediumLockList(true /* fFailIfInaccessible */,
     
    51265126        // and we need to write-lock the media involved
    51275127        uint32_t    cHandles    = 2;
    5128         LockHandle* pHandles[3] = { &m->pVirtualBox->getMediaTreeLockHandle(),
     5128        LockHandle* pHandles[3] = { &m->pVirtualBox->i_getMediaTreeLockHandle(),
    51295129                                    this->lockHandle() };
    51305130        /* Only add parent to the lock if it is not null */
     
    52245224        // and we need to write-lock the media involved
    52255225        uint32_t    cHandles    = 3;
    5226         LockHandle* pHandles[4] = { &m->pVirtualBox->getMediaTreeLockHandle(),
     5226        LockHandle* pHandles[4] = { &m->pVirtualBox->i_getMediaTreeLockHandle(),
    52275227                                    this->lockHandle(),
    52285228                                    aTarget->lockHandle() };
     
    54435443    alock.release();
    54445444    Assert(!isWriteLockOnCurrentThread());
    5445     Assert(!m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    5446     AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     5445    Assert(!m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     5446    AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    54475447    treeLock.release();
    54485448
     
    55445544                                location.c_str(),
    55455545                                mediumId.raw(),
    5546                                 m->pVirtualBox->settingsFilePath().c_str());
     5546                                m->pVirtualBox->i_settingsFilePath().c_str());
    55475547                        throw S_OK;
    55485548                    }
     
    56105610                        rc = VBOX_E_OBJECT_NOT_FOUND;
    56115611                    else
    5612                         rc = m->pVirtualBox->findHardDiskById(Guid(parentId), false /* aSetError */, &pParent);
     5612                        rc = m->pVirtualBox->i_findHardDiskById(Guid(parentId), false /* aSetError */, &pParent);
    56135613                    if (FAILED(rc))
    56145614                    {
     
    56325632                            lastAccessError = Utf8StrFmt(tr("Parent medium with UUID {%RTuuid} of the medium '%s' is not found in the media registry ('%s')"),
    56335633                                                         &parentId, location.c_str(),
    5634                                                          m->pVirtualBox->settingsFilePath().c_str());
     5634                                                         m->pVirtualBox->i_settingsFilePath().c_str());
    56355635                            throw S_OK;
    56365636                        }
     
    56885688                                    &parentId, location.c_str(),
    56895689                                    m->pParent->i_getId().raw(),
    5690                                     m->pVirtualBox->settingsFilePath().c_str());
     5690                                    m->pVirtualBox->i_settingsFilePath().c_str());
    56915691                            parentLock.release();
    56925692                            treeLock.release();
     
    58245824HRESULT Medium::i_canClose()
    58255825{
    5826     Assert(m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     5826    Assert(m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    58275827
    58285828    if (i_getChildren().size() != 0)
     
    58455845
    58465846    /* we modify mParent and access children */
    5847     Assert(m->pVirtualBox->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     5847    Assert(m->pVirtualBox->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    58485848
    58495849    Medium *pParentBackup = m->pParent;
     
    58525852        i_deparent();
    58535853
    5854     HRESULT rc = m->pVirtualBox->unregisterMedium(this);
     5854    HRESULT rc = m->pVirtualBox->i_unregisterMedium(this);
    58555855    if (FAILED(rc))
    58565856    {
     
    61576157    /* get the format object first */
    61586158    {
    6159         SystemProperties *pSysProps = m->pVirtualBox->getSystemProperties();
     6159        SystemProperties *pSysProps = m->pVirtualBox->i_getSystemProperties();
    61606160        AutoReadLock propsLock(pSysProps COMMA_LOCKVAL_SRC_POS);
    61616161
     
    65846584            if (capabilities & MediumFormatCapabilities_File)
    65856585            {
    6586                 rc = VirtualBox::ensureFilePathExists(location, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
     6586                rc = VirtualBox::i_ensureFilePathExists(location, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
    65876587                if (FAILED(rc))
    65886588                    throw rc;
     
    66266626         * Created state only on success (leaving an orphan file is
    66276627         * better than breaking media registry consistency) */
    6628         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     6628        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    66296629        ComObjPtr<Medium> pMedium;
    6630         rc = m->pVirtualBox->registerMedium(this, &pMedium, DeviceType_HardDisk);
     6630        rc = m->pVirtualBox->i_registerMedium(this, &pMedium, DeviceType_HardDisk);
    66316631        Assert(this == pMedium);
    66326632    }
     
    66486648        {
    66496649            // in asynchronous mode, save settings now
    6650             m->pVirtualBox->saveModifiedRegistries();
     6650            m->pVirtualBox->i_saveModifiedRegistries();
    66516651        }
    66526652    }
     
    67606760            if (capabilities & MediumFormatCapabilities_File)
    67616761            {
    6762                 HRESULT rc = VirtualBox::ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
     6762                HRESULT rc = VirtualBox::i_ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
    67636763                if (FAILED(rc))
    67646764                    throw rc;
     
    67976797    if (SUCCEEDED(mrc))
    67986798    {
    6799         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     6799        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    68006800
    68016801        Assert(pTarget->m->pParent.isNull());
     
    68146814         * better than breaking media registry consistency) */
    68156815        ComObjPtr<Medium> pMedium;
    6816         mrc = m->pVirtualBox->registerMedium(pTarget, &pMedium, DeviceType_HardDisk);
     6816        mrc = m->pVirtualBox->i_registerMedium(pTarget, &pMedium, DeviceType_HardDisk);
    68176817        Assert(pTarget == pMedium);
    68186818
     
    68536853    {
    68546854        // in asynchronous mode, save settings now
    6855         m->pVirtualBox->saveModifiedRegistries();
     6855        m->pVirtualBox->i_saveModifiedRegistries();
    68566856    }
    68576857
     
    70277027         * VDMerge; reparent the last one and uninitialize deleted media. */
    70287028
    7029         AutoWriteLock treeLock(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     7029        AutoWriteLock treeLock(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    70307030
    70317031        if (task.mfMergeForward)
     
    70337033            /* first, unregister the target since it may become a base
    70347034             * medium which needs re-registration */
    7035             rc2 = m->pVirtualBox->unregisterMedium(pTarget);
     7035            rc2 = m->pVirtualBox->i_unregisterMedium(pTarget);
    70367036            AssertComRC(rc2);
    70377037
     
    70487048            /* then, register again */
    70497049            ComObjPtr<Medium> pMedium;
    7050             rc2 = m->pVirtualBox->registerMedium(pTarget, &pMedium,
     7050            rc2 = m->pVirtualBox->i_registerMedium(pTarget, &pMedium,
    70517051                                                 DeviceType_HardDisk);
    70527052            AssertComRC(rc2);
     
    71047104            }
    71057105
    7106             rc2 = pMedium->m->pVirtualBox->unregisterMedium(pMedium);
     7106            rc2 = pMedium->m->pVirtualBox->i_unregisterMedium(pMedium);
    71077107            AssertComRC(rc2);
    71087108
     
    71427142        // in asynchronous mode, save settings now
    71437143        eik.restore();
    7144         m->pVirtualBox->saveModifiedRegistries();
     7144        m->pVirtualBox->i_saveModifiedRegistries();
    71457145        eik.fetch();
    71467146    }
     
    72597259            if (capabilities & MediumFormatCapabilities_File)
    72607260            {
    7261                 HRESULT rc = VirtualBox::ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
     7261                HRESULT rc = VirtualBox::i_ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
    72627262                if (FAILED(rc))
    72637263                    throw rc;
     
    73767376    {
    73777377        /* we set mParent & children() */
    7378         AutoWriteLock alock2(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     7378        AutoWriteLock alock2(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    73797379
    73807380        Assert(pTarget->m->pParent.isNull());
     
    73927392            eik.restore();
    73937393            ComObjPtr<Medium> pMedium;
    7394             mrc = pParent->m->pVirtualBox->registerMedium(pTarget, &pMedium,
     7394            mrc = pParent->m->pVirtualBox->i_registerMedium(pTarget, &pMedium,
    73957395                                                          DeviceType_HardDisk);
    73967396            Assert(   FAILED(mrc)
     
    74077407            eik.restore();
    74087408            ComObjPtr<Medium> pMedium;
    7409             mrc = m->pVirtualBox->registerMedium(pTarget, &pMedium,
     7409            mrc = m->pVirtualBox->i_registerMedium(pTarget, &pMedium,
    74107410                                                 DeviceType_HardDisk);
    74117411            Assert(   FAILED(mrc)
     
    74457445        /* collect multiple errors */
    74467446        eik.restore();
    7447         m->pVirtualBox->saveModifiedRegistries();
     7447        m->pVirtualBox->i_saveModifiedRegistries();
    74487448        eik.fetch();
    74497449    }
     
    79407940            if (capabilities & MediumFormatCapabilities_File)
    79417941            {
    7942                 rc = VirtualBox::ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
     7942                rc = VirtualBox::i_ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
    79437943                if (FAILED(rc))
    79447944                    throw rc;
     
    80288028        {
    80298029            targetId.create();
    8030             /* VirtualBox::registerMedium() will need UUID */
     8030            /* VirtualBox::i_registerMedium() will need UUID */
    80318031            unconst(m->id) = targetId;
    80328032        }
     
    80668066            if (capabilities & MediumFormatCapabilities_File)
    80678067            {
    8068                 HRESULT rc = VirtualBox::ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
     8068                HRESULT rc = VirtualBox::i_ensureFilePathExists(targetLocation, !(task.mVariant & MediumVariant_NoCreateDir) /* fCreate */);
    80698069                if (FAILED(rc))
    80708070                    throw rc;
     
    81628162    {
    81638163        /* we set mParent & children() */
    8164         AutoWriteLock alock2(m->pVirtualBox->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     8164        AutoWriteLock alock2(m->pVirtualBox->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    81658165
    81668166        Assert(m->pParent.isNull());
     
    81788178            eik.restore();
    81798179            ComObjPtr<Medium> pMedium;
    8180             mrc = pParent->m->pVirtualBox->registerMedium(this, &pMedium,
     8180            mrc = pParent->m->pVirtualBox->i_registerMedium(this, &pMedium,
    81818181                                                          DeviceType_HardDisk);
    81828182            Assert(this == pMedium);
     
    81928192            eik.restore();
    81938193            ComObjPtr<Medium> pMedium;
    8194             mrc = m->pVirtualBox->registerMedium(this, &pMedium, DeviceType_HardDisk);
     8194            mrc = m->pVirtualBox->i_registerMedium(this, &pMedium, DeviceType_HardDisk);
    81958195            Assert(this == pMedium);
    81968196            eik.fetch();
     
    82278227        /* collect multiple errors */
    82288228        eik.restore();
    8229         m->pVirtualBox->saveModifiedRegistries();
     8229        m->pVirtualBox->i_saveModifiedRegistries();
    82308230        eik.fetch();
    82318231    }
  • trunk/src/VBox/Main/src-server/NATNetworkImpl.cpp

    r49762 r50355  
    248248                                         m->maNATLoopbackOffsetList.end());
    249249
    250     mVirtualBox->onNATNetworkSetting(Bstr(mName).raw(),
    251                                      data.fEnabled ? TRUE : FALSE,
    252                                      Bstr(m->IPv4NetworkCidr).raw(),
    253                                      Bstr(m->IPv4Gateway).raw(),
    254                                      data.fAdvertiseDefaultIPv6Route ? TRUE : FALSE,
    255                                      data.fNeedDhcpServer ? TRUE : FALSE);
     250    mVirtualBox->i_onNATNetworkSetting(Bstr(mName).raw(),
     251                                       data.fEnabled ? TRUE : FALSE,
     252                                       Bstr(m->IPv4NetworkCidr).raw(),
     253                                       Bstr(m->IPv4Gateway).raw(),
     254                                       data.fAdvertiseDefaultIPv6Route ? TRUE : FALSE,
     255                                       data.fNeedDhcpServer ? TRUE : FALSE);
    256256
    257257    /* Notify listerners listening on this network only */
     
    290290    }
    291291    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    292     HRESULT rc = mVirtualBox->saveSettings();
     292    HRESULT rc = mVirtualBox->i_saveSettings();
    293293    ComAssertComRCRetRC(rc);
    294294
     
    314314
    315315    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    316     HRESULT rc = mVirtualBox->saveSettings();
     316    HRESULT rc = mVirtualBox->i_saveSettings();
    317317    ComAssertComRCRetRC(rc);
    318318    return S_OK;
     
    354354
    355355    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    356     HRESULT rc = mVirtualBox->saveSettings();
     356    HRESULT rc = mVirtualBox->i_saveSettings();
    357357    ComAssertComRCRetRC(rc);
    358358    return S_OK;
     
    380380
    381381    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    382     HRESULT rc = mVirtualBox->saveSettings();
     382    HRESULT rc = mVirtualBox->i_saveSettings();
    383383    ComAssertComRCRetRC(rc);
    384384
     
    413413
    414414    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    415     HRESULT rc = mVirtualBox->saveSettings();
     415    HRESULT rc = mVirtualBox->i_saveSettings();
    416416    ComAssertComRCRetRC(rc);
    417417
     
    441441
    442442    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    443     HRESULT rc = mVirtualBox->saveSettings();
     443    HRESULT rc = mVirtualBox->i_saveSettings();
    444444    ComAssertComRCRetRC(rc);
    445445
     
    470470
    471471    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    472     HRESULT rc = mVirtualBox->saveSettings();
     472    HRESULT rc = mVirtualBox->i_saveSettings();
    473473    ComAssertComRCRetRC(rc);
    474474
     
    535535
    536536        AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    537         return mVirtualBox->saveSettings();
     537        return mVirtualBox->i_saveSettings();
    538538    }
    539539
     
    552552
    553553    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    554     return mVirtualBox->saveSettings();
     554    return mVirtualBox->i_saveSettings();
    555555}
    556556
     
    580580
    581581    AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    582     return mVirtualBox->saveSettings();
     582    return mVirtualBox->i_saveSettings();
    583583}
    584584
     
    653653    {
    654654        AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    655         HRESULT rc = mVirtualBox->saveSettings();
     655        HRESULT rc = mVirtualBox->i_saveSettings();
    656656        ComAssertComRCRetRC(rc);
    657657    }
    658658
    659     mVirtualBox->onNATNetworkPortForward(Bstr(mName).raw(), TRUE, aIsIpv6,
    660                                          Bstr(aPortForwardRuleName).raw(), aProto,
    661                                          Bstr(aHostIp).raw(), aHostPort,
    662                                          Bstr(aGuestIp).raw(), aGuestPort);
     659    mVirtualBox->i_onNATNetworkPortForward(Bstr(mName).raw(), TRUE, aIsIpv6,
     660                                           Bstr(aPortForwardRuleName).raw(), aProto,
     661                                           Bstr(aHostIp).raw(), aHostPort,
     662                                           Bstr(aGuestIp).raw(), aGuestPort);
    663663
    664664    /* Notify listerners listening on this network only */
     
    698698    {
    699699        AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
    700         HRESULT rc = mVirtualBox->saveSettings();
     700        HRESULT rc = mVirtualBox->i_saveSettings();
    701701        ComAssertComRCRetRC(rc);
    702702    }
    703703
    704     mVirtualBox->onNATNetworkPortForward(Bstr(mName).raw(), FALSE, aIsIpv6,
    705                                          Bstr(aPortForwardRuleName).raw(), proto,
    706                                          Bstr(strHostIP).raw(), u16HostPort,
    707                                          Bstr(strGuestIP).raw(), u16GuestPort);
     704    mVirtualBox->i_onNATNetworkPortForward(Bstr(mName).raw(), FALSE, aIsIpv6,
     705                                           Bstr(aPortForwardRuleName).raw(), proto,
     706                                           Bstr(strHostIP).raw(), u16HostPort,
     707                                           Bstr(strGuestIP).raw(), u16GuestPort);
    708708
    709709    /* Notify listerners listening on this network only */
     
    799799    if (RT_SUCCESS(m->NATRunner.start()))
    800800    {
    801         mVirtualBox->onNATNetworkStartStop(Bstr(mName).raw(), TRUE);
     801        mVirtualBox->i_onNATNetworkStartStop(Bstr(mName).raw(), TRUE);
    802802        return S_OK;
    803803    }
     
    818818    if (RT_SUCCESS(m->NATRunner.stop()))
    819819    {
    820         mVirtualBox->onNATNetworkStartStop(Bstr(mName).raw(), FALSE);
     820        mVirtualBox->i_onNATNetworkStartStop(Bstr(mName).raw(), FALSE);
    821821        return S_OK;
    822822    }
  • trunk/src/VBox/Main/src-server/NetworkAdapterImpl.cpp

    r49951 r50355  
    14021402        hrc = mParent->COMGETTER(Name)(bstrName.asOutParam());
    14031403        LogRel(("VM '%ls' stops using NAT network '%ls'\n", bstrName.raw(), Bstr(networkName).raw()));
    1404         int natCount = mParent->getVirtualBox()->natNetworkRefDec(Bstr(networkName).raw());
     1404        int natCount = mParent->getVirtualBox()->i_natNetworkRefDec(Bstr(networkName).raw());
    14051405        if (natCount == -1)
    14061406            return E_INVALIDARG; /* no such network */
     
    14251425        hrc = mParent->COMGETTER(Name)(bstrName.asOutParam());
    14261426        LogRel(("VM '%ls' starts using NAT network '%ls'\n", bstrName.raw(), Bstr(aNatNetworkName).raw()));
    1427         int natCount = mParent->getVirtualBox()->natNetworkRefInc(Bstr(aNatNetworkName).raw());
     1427        int natCount = mParent->getVirtualBox()->i_natNetworkRefInc(Bstr(aNatNetworkName).raw());
    14281428        if (natCount == -1)
    14291429            return E_INVALIDARG; /* not found */
  • trunk/src/VBox/Main/src-server/SnapshotImpl.cpp

    r49960 r50355  
    12531253        // save the global settings
    12541254        AutoWriteLock vboxlock(mParent COMMA_LOCKVAL_SRC_POS);
    1255         rc = mParent->saveSettings();
     1255        rc = mParent->i_saveSettings();
    12561256    }
    12571257
    12581258    /* inform callbacks */
    1259     mParent->onSnapshotChange(uuidMachine, uuidSnapshot);
     1259    mParent->i_onSnapshotChange(uuidMachine, uuidSnapshot);
    12601260
    12611261    return rc;
     
    14631463    {
    14641464        // ensure the directory for the saved state file exists
    1465         HRESULT rc = VirtualBox::ensureFilePathExists(strStateFilePath, true /* fCreate */);
     1465        HRESULT rc = VirtualBox::i_ensureFilePathExists(strStateFilePath, true /* fCreate */);
    14661466        if (FAILED(rc)) return rc;
    14671467    }
     
    16251625
    16261626        /* inform callbacks */
    1627         mParent->onSnapshotTaken(mData->mUuid,
    1628                                  mConsoleTaskData.mSnapshot->i_getId());
     1627        mParent->i_onSnapshotTaken(mData->mUuid,
     1628                                   mConsoleTaskData.mSnapshot->i_getId());
    16291629        machineLock.release();
    16301630    }
     
    16601660    /* machineLock has been released already */
    16611661
    1662     mParent->saveModifiedRegistries();
     1662    mParent->i_saveModifiedRegistries();
    16631663
    16641664    return rc;
     
    19941994        alock.release();
    19951995
    1996         mParent->markRegistryModified(mParent->getGlobalRegistryId());
     1996        mParent->i_markRegistryModified(mParent->i_getGlobalRegistryId());
    19971997
    19981998        // from here on we cannot roll back on failure any more
     
    20332033    }
    20342034
    2035     mParent->saveModifiedRegistries();
     2035    mParent->i_saveModifiedRegistries();
    20362036
    20372037    /* set the result (this will try to fetch current error info on failure) */
     
    20392039
    20402040    if (SUCCEEDED(rc))
    2041         mParent->onSnapshotDeleted(mData->mUuid, Guid());
     2041        mParent->i_onSnapshotDeleted(mData->mUuid, Guid());
    20422042
    20432043    LogFlowThisFunc(("Done restoring snapshot (rc=%08X)\n", rc));
     
    23612361        // has exited after setting the machine state to MachineState_DeletingSnapshot
    23622362
    2363         AutoWriteLock treeLock(mParent->getMediaTreeLockHandle()
     2363        AutoWriteLock treeLock(mParent->i_getMediaTreeLockHandle()
    23642364                               COMMA_LOCKVAL_SRC_POS);
    23652365
     
    26612661                // machine will need saving now
    26622662                machineLock.release();
    2663                 mParent->markRegistryModified(getId());
     2663                mParent->i_markRegistryModified(getId());
    26642664            }
    26652665        }
     
    26922692                /* no real merge needed, just updating state and delete
    26932693                 * diff files if necessary */
    2694                 AutoMultiWriteLock2 mLock(&mParent->getMediaTreeLockHandle(), pMedium->lockHandle() COMMA_LOCKVAL_SRC_POS);
     2694                AutoMultiWriteLock2 mLock(&mParent->i_getMediaTreeLockHandle(), pMedium->lockHandle() COMMA_LOCKVAL_SRC_POS);
    26952695
    26962696                Assert(   !it->mfMergeForward
     
    28402840
    28412841            // One attachment is merged, must save the settings
    2842             mParent->markRegistryModified(getId());
     2842            mParent->i_markRegistryModified(getId());
    28432843
    28442844            // prevent calling cancelDeleteSnapshotMedium() for this attachment
     
    28602860
    28612861            machineLock.release();
    2862             mParent->markRegistryModified(getId());
     2862            mParent->i_markRegistryModified(getId());
    28632863        }
    28642864    }
     
    28742874
    28752875        AutoMultiWriteLock2 multiLock(this->lockHandle(),                   // machine
    2876                                       &mParent->getMediaTreeLockHandle()    // media tree
     2876                                      &mParent->i_getMediaTreeLockHandle()    // media tree
    28772877                                      COMMA_LOCKVAL_SRC_POS);
    28782878
     
    29022902        updateMachineStateOnClient();
    29032903
    2904         mParent->saveModifiedRegistries();
     2904        mParent->i_saveModifiedRegistries();
    29052905    }
    29062906
     
    29092909
    29102910    if (SUCCEEDED(rc))
    2911         mParent->onSnapshotDeleted(mData->mUuid, snapshotId);
     2911        mParent->i_onSnapshotDeleted(mData->mUuid, snapshotId);
    29122912
    29132913    LogFlowThisFunc(("Done deleting snapshot (rc=%08X)\n", rc));
     
    29652965                                                    ComPtr<IToken> &aHDLockToken)
    29662966{
    2967     Assert(!mParent->getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     2967    Assert(!mParent->i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    29682968    Assert(!fOnlineMergePossible || VALID_PTR(aVMMALockList));
    29692969
     
    32553255    if (aMediumLockList == NULL)
    32563256    {
    3257         AutoMultiWriteLock2 mLock(&mParent->getMediaTreeLockHandle(), aHD->lockHandle() COMMA_LOCKVAL_SRC_POS);
     3257        AutoMultiWriteLock2 mLock(&mParent->i_getMediaTreeLockHandle(), aHD->lockHandle() COMMA_LOCKVAL_SRC_POS);
    32583258
    32593259        Assert(aHD->i_getChildren().size() == 0);
     
    34463446    // the merge; reparent target if necessary and uninitialize media
    34473447
    3448     AutoWriteLock treeLock(mParent->getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3448    AutoWriteLock treeLock(mParent->i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    34493449
    34503450    // Declare this here to make sure the object does not get uninitialized
     
    34573457        // first, unregister the target since it may become a base
    34583458        // hard disk which needs re-registration
    3459         rc = mParent->unregisterMedium(pDeleteRec->mpTarget);
     3459        rc = mParent->i_unregisterMedium(pDeleteRec->mpTarget);
    34603460        AssertComRC(rc);
    34613461
     
    34683468
    34693469        // then, register again
    3470         rc = mParent->registerMedium(pDeleteRec->mpTarget, &pDeleteRec->mpTarget, DeviceType_HardDisk);
     3470        rc = mParent->i_registerMedium(pDeleteRec->mpTarget, &pDeleteRec->mpTarget, DeviceType_HardDisk);
    34713471        AssertComRC(rc);
    34723472    }
     
    35403540        else
    35413541        {
    3542             rc = mParent->unregisterMedium(pMedium);
     3542            rc = mParent->i_unregisterMedium(pMedium);
    35433543            AssertComRC(rc);
    35443544
  • trunk/src/VBox/Main/src-server/StorageControllerImpl.cpp

    r49644 r50355  
    9191    {
    9292        unconst(pVirtualBox) = aMachine->getVirtualBox();
    93         unconst(pSystemProperties) = pVirtualBox->getSystemProperties();
     93        unconst(pSystemProperties) = pVirtualBox->i_getSystemProperties();
    9494    }
    9595
     
    147147    if (FAILED(rc))
    148148        return rc;
    149     rc = aParent->getVirtualBox()->getSystemProperties()->GetMaxInstancesOfStorageBus(chipsetType, aStorageBus, &maxInstances);
     149    rc = aParent->getVirtualBox()->i_getSystemProperties()->GetMaxInstancesOfStorageBus(chipsetType, aStorageBus, &maxInstances);
    150150    if (FAILED(rc))
    151151        return rc;
  • trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp

    r50291 r50355  
    292292    alock.release();
    293293
    294     // VirtualBox::saveSettings() needs vbox write lock
     294    // VirtualBox::i_saveSettings() needs vbox write lock
    295295    AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    296     HRESULT rc = mParent->saveSettings();
     296    HRESULT rc = mParent->i_saveSettings();
    297297
    298298    return rc;
     
    602602    if (SUCCEEDED(rc))
    603603    {
    604         // VirtualBox::saveSettings() needs vbox write lock
     604        // VirtualBox::i_saveSettings() needs vbox write lock
    605605        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    606         rc = mParent->saveSettings();
     606        rc = mParent->i_saveSettings();
    607607    }
    608608
     
    632632    {
    633633        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    634         rc = mParent->saveSettings();
     634        rc = mParent->i_saveSettings();
    635635    }
    636636    else
     
    665665    if (SUCCEEDED(rc))
    666666    {
    667         // VirtualBox::saveSettings() needs vbox write lock
     667        // VirtualBox::i_saveSettings() needs vbox write lock
    668668        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    669         rc = mParent->saveSettings();
     669        rc = mParent->i_saveSettings();
    670670    }
    671671
     
    733733    if (SUCCEEDED(rc))
    734734    {
    735         // VirtualBox::saveSettings() needs vbox write lock
     735        // VirtualBox::i_saveSettings() needs vbox write lock
    736736        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    737         rc = mParent->saveSettings();
     737        rc = mParent->i_saveSettings();
    738738    }
    739739
     
    758758    if (SUCCEEDED(rc))
    759759    {
    760         // VirtualBox::saveSettings() needs vbox write lock
     760        // VirtualBox::i_saveSettings() needs vbox write lock
    761761        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    762         rc = mParent->saveSettings();
     762        rc = mParent->i_saveSettings();
    763763    }
    764764
     
    777777        else
    778778#ifdef VBOX_WITH_EXTPACK
    779             hrc = mParent->getExtPackManager()->checkVrdeExtPack(&strExtPack);
     779            hrc = mParent->i_getExtPackManager()->checkVrdeExtPack(&strExtPack);
    780780#else
    781781            hrc = setError(E_FAIL, tr("The extension pack '%s' does not exist"), strExtPack.c_str());
     
    785785    {
    786786#ifdef VBOX_WITH_EXTPACK
    787         hrc = mParent->getExtPackManager()->getDefaultVrdeExtPack(&strExtPack);
     787        hrc = mParent->i_getExtPackManager()->getDefaultVrdeExtPack(&strExtPack);
    788788#endif
    789789        if (strExtPack.isEmpty())
     
    823823        else
    824824#ifdef VBOX_WITH_EXTPACK
    825             hrc = mParent->getExtPackManager()->checkVrdeExtPack(&aExtPack);
     825            hrc = mParent->i_getExtPackManager()->checkVrdeExtPack(&aExtPack);
    826826#else
    827827            hrc = setError(E_FAIL, tr("The extension pack '%s' does not exist"), aExtPack.c_str());
     
    834834        if (SUCCEEDED(hrc))
    835835        {
    836             /* VirtualBox::saveSettings() needs the VirtualBox write lock. */
     836            /* VirtualBox::i_saveSettings() needs the VirtualBox write lock. */
    837837            alock.release();
    838838            AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    839             hrc = mParent->saveSettings();
     839            hrc = mParent->i_saveSettings();
    840840        }
    841841    }
     
    861861    alock.release();
    862862
    863     // VirtualBox::saveSettings() needs vbox write lock
     863    // VirtualBox::i_saveSettings() needs vbox write lock
    864864    AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    865     HRESULT rc = mParent->saveSettings();
     865    HRESULT rc = mParent->i_saveSettings();
    866866
    867867    return rc;
     
    894894    if (SUCCEEDED(rc))
    895895    {
    896         // VirtualBox::saveSettings() needs vbox write lock
     896        // VirtualBox::i_saveSettings() needs vbox write lock
    897897        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    898         rc = mParent->saveSettings();
     898        rc = mParent->i_saveSettings();
    899899    }
    900900
     
    933933    if (SUCCEEDED(rc))
    934934    {
    935         // VirtualBox::saveSettings() needs vbox write lock
     935        // VirtualBox::i_saveSettings() needs vbox write lock
    936936        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    937         rc = mParent->saveSettings();
     937        rc = mParent->i_saveSettings();
    938938    }
    939939
     
    958958    if (SUCCEEDED(rc))
    959959    {
    960         // VirtualBox::saveSettings() needs vbox write lock
     960        // VirtualBox::i_saveSettings() needs vbox write lock
    961961        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
    962         rc = mParent->saveSettings();
     962        rc = mParent->i_saveSettings();
    963963    }
    964964
     
    12161216{
    12171217    HRESULT rc = S_OK;
    1218     AutostartDb *autostartDb = this->mParent->getAutostartDb();
     1218    AutostartDb *autostartDb = this->mParent->i_getAutostartDb();
    12191219
    12201220    if (!aPath.isEmpty())
     
    12591259        vrc = RTPathUserHome(strTemp, sizeof(strTemp));
    12601260        AssertRC(vrc);
    1261         Utf8Str strSrc3 = Utf8StrFmt("%s/VBoxGuestAdditions_%ls.iso", strTemp, Bstr(VirtualBox::getVersionNormalized()).raw());
     1261        Utf8Str strSrc3 = Utf8StrFmt("%s/VBoxGuestAdditions_%ls.iso", strTemp, Bstr(VirtualBox::i_getVersionNormalized()).raw());
    12621262
    12631263        /* Check the standard image locations */
  • trunk/src/VBox/Main/src-server/USBDeviceFiltersImpl.cpp

    r49960 r50355  
    5151    Data(Machine *pMachine)
    5252        : pParent(pMachine),
    53           pHost(pMachine->getVirtualBox()->host())
     53          pHost(pMachine->getVirtualBox()->i_host())
    5454    { }
    5555
  • trunk/src/VBox/Main/src-server/USBProxyService.cpp

    r49960 r50355  
    218218    // (getOpenedMachines requests locks which are incompatible with the lock of the machines list)
    219219    SessionMachinesList llOpenedMachines;
    220     mHost->i_parent()->getOpenedMachines(llOpenedMachines);
     220    mHost->i_parent()->i_getOpenedMachines(llOpenedMachines);
    221221
    222222    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    329329    // (getOpenedMachines requests locks which are incompatible with the host object lock)
    330330    SessionMachinesList llOpenedMachines;
    331     mHost->i_parent()->getOpenedMachines(llOpenedMachines);
     331    mHost->i_parent()->i_getOpenedMachines(llOpenedMachines);
    332332
    333333    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    862862    // (getOpenedMachines requests higher priority locks)
    863863    SessionMachinesList llOpenedMachines;
    864     mHost->i_parent()->getOpenedMachines(llOpenedMachines);
     864    mHost->i_parent()->i_getOpenedMachines(llOpenedMachines);
    865865
    866866    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
  • trunk/src/VBox/Main/src-server/VRDEServerImpl.cpp

    r49662 r50355  
    537537#ifdef VBOX_WITH_EXTPACK
    538538        VirtualBox *pVirtualBox = mParent->getVirtualBox();
    539         ExtPackManager *pExtPackMgr = pVirtualBox->getExtPackManager();
     539        ExtPackManager *pExtPackMgr = pVirtualBox->i_getExtPackManager();
    540540        vrc = pExtPackMgr->getVrdeLibraryPathForExtPack(&strExtPack, &strVrdeLibrary);
    541541#else
     
    806806        {
    807807#ifdef VBOX_WITH_EXTPACK
    808             ExtPackManager *pExtPackMgr = mParent->getVirtualBox()->getExtPackManager();
     808            ExtPackManager *pExtPackMgr = mParent->getVirtualBox()->i_getExtPackManager();
    809809            hrc = pExtPackMgr->checkVrdeExtPack(&strExtPack);
    810810#else
     
    851851            {
    852852#ifdef VBOX_WITH_EXTPACK
    853                 ExtPackManager *pExtPackMgr = mParent->getVirtualBox()->getExtPackManager();
     853                ExtPackManager *pExtPackMgr = mParent->getVirtualBox()->i_getExtPackManager();
    854854                hrc = pExtPackMgr->checkVrdeExtPack(&aExtPack);
    855855#else
  • trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp

    r49951 r50355  
    6969#endif /* VBOX_WITH_RESOURCE_USAGE_API */
    7070#include "EventImpl.h"
    71 // #include "VBoxEvents.h"
    7271#ifdef VBOX_WITH_EXTPACK
    7372# include "ExtPackManagerImpl.h"
     
    9998
    10099// static
    101 Bstr VirtualBox::sVersion;
     100com::Utf8Str VirtualBox::sVersion;
    102101
    103102// static
    104 Bstr VirtualBox::sVersionNormalized;
     103com::Utf8Str VirtualBox::sVersionNormalized;
    105104
    106105// static
     
    108107
    109108// static
    110 Bstr VirtualBox::sPackageType;
     109com::Utf8Str VirtualBox::sPackageType;
    111110
    112111// static
    113 Bstr VirtualBox::sAPIVersion;
     112com::Utf8Str VirtualBox::sAPIVersion;
    114113
    115114// static
    116 std::map<Bstr, int> VirtualBox::sNatNetworkNameToRefCount;
     115std::map<com::Utf8Str, int> VirtualBox::sNatNetworkNameToRefCount;
    117116
    118117// static leaked (todo: find better place to free it.)
     
    306305/////////////////////////////////////////////////////////////////////////////
    307306
    308 VirtualBox::VirtualBox()
    309 {}
    310 
    311 VirtualBox::~VirtualBox()
    312 {}
     307DEFINE_EMPTY_CTOR_DTOR(VirtualBox)
    313308
    314309HRESULT VirtualBox::FinalConstruct()
     
    374369        spMtxNatNetworkNameToRefCountLock = new RWLockHandle(LOCKCLASS_VIRTUALBOXOBJECT);
    375370
    376     LogFlowThisFunc(("Version: %ls, Package: %ls, API Version: %ls\n", sVersion.raw(), sPackageType.raw(), sAPIVersion.raw()));
     371    LogFlowThisFunc(("Version: %ls, Package: %ls, API Version: %ls\n", Bstr(sVersion).raw(), Bstr(sPackageType).raw(), Bstr(sAPIVersion).raw()));
    377372
    378373    /* Get the VirtualBox home directory. */
     
    471466#ifdef DEBUG
    472467        LogFlowThisFunc(("Dumping media backreferences\n"));
    473         dumpAllBackRefs();
     468        i_dumpAllBackRefs();
    474469#endif
    475470
     
    486481            if (FAILED(rc)) throw rc;
    487482
    488             rc = registerDHCPServer(pDhcpServer, false /* aSaveRegistry */);
     483            rc = i_registerDHCPServer(pDhcpServer, false /* aSaveRegistry */);
    489484            if (FAILED(rc)) throw rc;
    490485        }
     
    504499            }
    505500
    506             rc = registerNATNetwork(pNATNetwork, false /* aSaveRegistry */);
     501            rc = i_registerNATNetwork(pNATNetwork, false /* aSaveRegistry */);
    507502            AssertComRCReturnRC(rc);
    508503        }
     
    611606                                            &uuid);
    612607            if (SUCCEEDED(rc))
    613                 rc = registerMachine(pMachine);
     608                rc = i_registerMachine(pMachine);
    614609            if (FAILED(rc))
    615610                return rc;
     
    650645             strMachineFolder.c_str()));
    651646
    652     AutoWriteLock treeLock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     647    AutoWriteLock treeLock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    653648
    654649    HRESULT rc = S_OK;
     
    670665        if (FAILED(rc)) return rc;
    671666
    672         rc = registerMedium(pHardDisk, &pHardDisk, DeviceType_HardDisk);
     667        rc = i_registerMedium(pHardDisk, &pHardDisk, DeviceType_HardDisk);
    673668        if (FAILED(rc)) return rc;
    674669    }
     
    690685        if (FAILED(rc)) return rc;
    691686
    692         rc = registerMedium(pImage, &pImage, DeviceType_DVD);
     687        rc = i_registerMedium(pImage, &pImage, DeviceType_DVD);
    693688        if (FAILED(rc)) return rc;
    694689    }
     
    710705        if (FAILED(rc)) return rc;
    711706
    712         rc = registerMedium(pImage, &pImage, DeviceType_Floppy);
     707        rc = i_registerMedium(pImage, &pImage, DeviceType_Floppy);
    713708        if (FAILED(rc)) return rc;
    714709    }
     
    723718    Assert(!m->uRegistryNeedsSaving);
    724719    if (m->uRegistryNeedsSaving)
    725         saveSettings();
     720        i_saveSettings();
    726721
    727722    /* Enclose the state transition Ready->InUninit->NotReady */
     
    831826}
    832827
    833 // IVirtualBox properties
     828// Wrapped IVirtualBox properties
    834829/////////////////////////////////////////////////////////////////////////////
    835 
    836 STDMETHODIMP VirtualBox::COMGETTER(Version)(BSTR *aVersion)
    837 {
    838     CheckComArgNotNull(aVersion);
    839 
    840     AutoCaller autoCaller(this);
    841     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    842 
    843     sVersion.cloneTo(aVersion);
     830HRESULT VirtualBox::getVersion(com::Utf8Str &aVersion)
     831{
     832    aVersion = sVersion;
    844833    return S_OK;
    845834}
    846835
    847 STDMETHODIMP VirtualBox::COMGETTER(VersionNormalized)(BSTR *aVersionNormalized)
    848 {
    849     CheckComArgNotNull(aVersionNormalized);
    850 
    851     AutoCaller autoCaller(this);
    852     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    853 
    854     sVersionNormalized.cloneTo(aVersionNormalized);
     836HRESULT VirtualBox::getVersionNormalized(com::Utf8Str &aVersionNormalized)
     837{
     838    aVersionNormalized = sVersionNormalized;
    855839    return S_OK;
    856840}
    857841
    858 STDMETHODIMP VirtualBox::COMGETTER(Revision)(ULONG *aRevision)
    859 {
    860     CheckComArgNotNull(aRevision);
    861 
    862     AutoCaller autoCaller(this);
    863     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    864 
     842HRESULT VirtualBox::getRevision(ULONG *aRevision)
     843{
    865844    *aRevision = sRevision;
    866845    return S_OK;
    867846}
    868847
    869 STDMETHODIMP VirtualBox::COMGETTER(PackageType)(BSTR *aPackageType)
    870 {
    871     CheckComArgNotNull(aPackageType);
    872 
    873     AutoCaller autoCaller(this);
    874     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    875 
    876     sPackageType.cloneTo(aPackageType);
     848HRESULT VirtualBox::getPackageType(com::Utf8Str &aPackageType)
     849{
     850    aPackageType = sPackageType;
    877851    return S_OK;
    878852}
    879853
    880 STDMETHODIMP VirtualBox::COMGETTER(APIVersion)(BSTR *aAPIVersion)
    881 {
    882     CheckComArgNotNull(aAPIVersion);
    883 
    884     AutoCaller autoCaller(this);
    885     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    886 
    887     sAPIVersion.cloneTo(aAPIVersion);
     854HRESULT VirtualBox::getAPIVersion(com::Utf8Str &aAPIVersion)
     855{
     856    aAPIVersion = sAPIVersion;
    888857    return S_OK;
    889858}
    890859
    891 STDMETHODIMP VirtualBox::COMGETTER(HomeFolder)(BSTR *aHomeFolder)
    892 {
    893     CheckComArgNotNull(aHomeFolder);
    894 
    895     AutoCaller autoCaller(this);
    896     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    897 
     860HRESULT VirtualBox::getHomeFolder(com::Utf8Str &aHomeFolder)
     861{
    898862    /* mHomeDir is const and doesn't need a lock */
    899     m->strHomeDir.cloneTo(aHomeFolder);
     863    aHomeFolder = m->strHomeDir;
    900864    return S_OK;
    901865}
    902866
    903 STDMETHODIMP VirtualBox::COMGETTER(SettingsFilePath)(BSTR *aSettingsFilePath)
    904 {
    905     CheckComArgNotNull(aSettingsFilePath);
    906 
    907     AutoCaller autoCaller(this);
    908     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    909 
     867HRESULT VirtualBox::getSettingsFilePath(com::Utf8Str &aSettingsFilePath)
     868{
    910869    /* mCfgFile.mName is const and doesn't need a lock */
    911     m->strSettingsFilePath.cloneTo(aSettingsFilePath);
     870    aSettingsFilePath = m->strSettingsFilePath;
    912871    return S_OK;
    913872}
    914873
    915 STDMETHODIMP VirtualBox::COMGETTER(Host)(IHost **aHost)
    916 {
    917     CheckComArgOutPointerValid(aHost);
    918 
    919     AutoCaller autoCaller(this);
    920     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    921 
     874HRESULT VirtualBox::getHost(ComPtr<IHost> &aHost)
     875{
    922876    /* mHost is const, no need to lock */
    923     m->pHost.queryInterfaceTo(aHost);
     877    m->pHost.queryInterfaceTo(aHost.asOutParam());
    924878    return S_OK;
    925879}
    926880
    927 STDMETHODIMP
    928 VirtualBox::COMGETTER(SystemProperties)(ISystemProperties **aSystemProperties)
    929 {
    930     CheckComArgOutPointerValid(aSystemProperties);
    931 
    932     AutoCaller autoCaller(this);
    933     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    934 
     881HRESULT VirtualBox::getSystemProperties(ComPtr<ISystemProperties> &aSystemProperties)
     882{
    935883    /* mSystemProperties is const, no need to lock */
    936     m->pSystemProperties.queryInterfaceTo(aSystemProperties);
     884    m->pSystemProperties.queryInterfaceTo(aSystemProperties.asOutParam());
    937885    return S_OK;
    938886}
    939887
    940 STDMETHODIMP
    941 VirtualBox::COMGETTER(Machines)(ComSafeArrayOut(IMachine *, aMachines))
    942 {
    943     CheckComArgOutSafeArrayPointerValid(aMachines);
    944 
    945     AutoCaller autoCaller(this);
    946     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    947 
     888HRESULT VirtualBox::getMachines(std::vector<ComPtr<IMachine> > &aMachines)
     889{
    948890    AutoReadLock al(m->allMachines.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    949     SafeIfaceArray<IMachine> machines(m->allMachines.getList());
    950     machines.detachTo(ComSafeArrayOutArg(aMachines));
    951 
     891    aMachines.resize(m->allMachines.size());
     892    size_t i = 0;
     893    for (MachinesOList::const_iterator it= m->allMachines.begin();
     894         it!= m->allMachines.end(); ++it, ++i)
     895        (*it).queryInterfaceTo(aMachines[i].asOutParam());
    952896    return S_OK;
    953897}
    954898
    955 STDMETHODIMP
    956 VirtualBox::COMGETTER(MachineGroups)(ComSafeArrayOut(BSTR, aMachineGroups))
    957 {
    958     CheckComArgOutSafeArrayPointerValid(aMachineGroups);
    959 
    960     AutoCaller autoCaller(this);
    961     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    962 
    963     std::list<Bstr> allGroups;
     899HRESULT VirtualBox::getMachineGroups(std::vector<com::Utf8Str> &aMachineGroups)
     900{
     901    std::list<com::Utf8Str> allGroups;
    964902
    965903    /* get copy of all machine references, to avoid holding the list lock */
     
    983921            const StringsList &thisGroups = pMachine->getGroups();
    984922            for (StringsList::const_iterator it2 = thisGroups.begin();
    985                  it2 != thisGroups.end();
    986                  ++it2)
     923                 it2 != thisGroups.end(); ++it2)
    987924                allGroups.push_back(*it2);
    988925        }
     
    992929    allGroups.sort();
    993930    allGroups.unique();
    994     com::SafeArray<BSTR> machineGroups(allGroups.size());
     931    aMachineGroups.resize(allGroups.size());
    995932    size_t i = 0;
    996     for (std::list<Bstr>::const_iterator it = allGroups.begin();
    997          it != allGroups.end();
    998          ++it, i++)
    999     {
    1000         const Bstr &tmp = *it;
    1001         tmp.cloneTo(&machineGroups[i]);
    1002     }
    1003     machineGroups.detachTo(ComSafeArrayOutArg(aMachineGroups));
    1004 
     933    for (std::list<com::Utf8Str>::const_iterator it = allGroups.begin();
     934         it != allGroups.end(); ++it, ++i)
     935        aMachineGroups[i] = (*it);
    1005936    return S_OK;
    1006937}
    1007938
    1008 STDMETHODIMP VirtualBox::COMGETTER(HardDisks)(ComSafeArrayOut(IMedium *, aHardDisks))
    1009 {
    1010     CheckComArgOutSafeArrayPointerValid(aHardDisks);
    1011 
    1012     AutoCaller autoCaller(this);
    1013     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1014 
     939HRESULT VirtualBox::getHardDisks(std::vector<ComPtr<IMedium> > &aHardDisks)
     940{
    1015941    AutoReadLock al(m->allHardDisks.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1016     SafeIfaceArray<IMedium> hardDisks(m->allHardDisks.getList());
    1017     hardDisks.detachTo(ComSafeArrayOutArg(aHardDisks));
    1018 
     942    aHardDisks.resize(m->allHardDisks.size());
     943    size_t i = 0;
     944    for (MediaOList::const_iterator it = m->allHardDisks.begin();
     945         it !=  m->allHardDisks.end(); ++it, ++i)
     946        (*it).queryInterfaceTo(aHardDisks[i].asOutParam());
    1019947    return S_OK;
    1020948}
    1021949
    1022 STDMETHODIMP VirtualBox::COMGETTER(DVDImages)(ComSafeArrayOut(IMedium *, aDVDImages))
    1023 {
    1024     CheckComArgOutSafeArrayPointerValid(aDVDImages);
    1025 
    1026     AutoCaller autoCaller(this);
    1027     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1028 
     950HRESULT VirtualBox::getDVDImages(std::vector<ComPtr<IMedium> > &aDVDImages)
     951{
    1029952    AutoReadLock al(m->allDVDImages.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1030     SafeIfaceArray<IMedium> images(m->allDVDImages.getList());
    1031     images.detachTo(ComSafeArrayOutArg(aDVDImages));
    1032 
     953    aDVDImages.resize(m->allDVDImages.size());
     954    size_t i = 0;
     955    for (MediaOList::const_iterator it = m->allDVDImages.begin();
     956         it!= m->allDVDImages.end(); ++it, ++i)
     957        (*it).queryInterfaceTo(aDVDImages[i].asOutParam());
    1033958    return S_OK;
    1034959}
    1035960
    1036 STDMETHODIMP VirtualBox::COMGETTER(FloppyImages)(ComSafeArrayOut(IMedium *, aFloppyImages))
    1037 {
    1038     CheckComArgOutSafeArrayPointerValid(aFloppyImages);
    1039 
    1040     AutoCaller autoCaller(this);
    1041     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1042 
     961HRESULT VirtualBox::getFloppyImages(std::vector<ComPtr<IMedium> > &aFloppyImages)
     962{
    1043963    AutoReadLock al(m->allFloppyImages.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1044     SafeIfaceArray<IMedium> images(m->allFloppyImages.getList());
    1045     images.detachTo(ComSafeArrayOutArg(aFloppyImages));
    1046 
     964    aFloppyImages.resize(m->allFloppyImages.size());
     965    size_t i = 0;
     966    for (MediaOList::const_iterator it = m->allFloppyImages.begin();
     967         it != m->allFloppyImages.end(); ++it, ++i)
     968        (*it).queryInterfaceTo(aFloppyImages[i].asOutParam());
    1047969    return S_OK;
    1048970}
    1049971
    1050 STDMETHODIMP VirtualBox::COMGETTER(ProgressOperations)(ComSafeArrayOut(IProgress *, aOperations))
    1051 {
    1052     CheckComArgOutPointerValid(aOperations);
    1053 
    1054     AutoCaller autoCaller(this);
    1055     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1056 
     972HRESULT VirtualBox::getProgressOperations(std::vector<ComPtr<IProgress> > &aProgressOperations)
     973{
    1057974    /* protect mProgressOperations */
    1058975    AutoReadLock safeLock(m->mtxProgressOperations COMMA_LOCKVAL_SRC_POS);
    1059     SafeIfaceArray<IProgress> progress(m->mapProgressOperations);
    1060     progress.detachTo(ComSafeArrayOutArg(aOperations));
    1061 
     976    ProgressMap pmap(m->mapProgressOperations);
     977    aProgressOperations.resize(pmap.size());
     978    size_t i = 0;
     979    for (ProgressMap::iterator it = pmap.begin(); it != pmap.end(); ++it, ++i)
     980        it->second.queryInterfaceTo(aProgressOperations[i].asOutParam());
    1062981    return S_OK;
    1063982}
    1064983
    1065 STDMETHODIMP VirtualBox::COMGETTER(GuestOSTypes)(ComSafeArrayOut(IGuestOSType *, aGuestOSTypes))
    1066 {
    1067     CheckComArgOutSafeArrayPointerValid(aGuestOSTypes);
    1068 
    1069     AutoCaller autoCaller(this);
    1070     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1071 
     984HRESULT VirtualBox::getGuestOSTypes(std::vector<ComPtr<IGuestOSType> > &aGuestOSTypes)
     985{
    1072986    AutoReadLock al(m->allGuestOSTypes.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1073     SafeIfaceArray<IGuestOSType> ostypes(m->allGuestOSTypes.getList());
    1074     ostypes.detachTo(ComSafeArrayOutArg(aGuestOSTypes));
    1075 
     987    aGuestOSTypes.resize(m->allGuestOSTypes.size());
     988    size_t i = 0;
     989    for (GuestOSTypesOList::const_iterator it = m->allGuestOSTypes.begin();
     990         it != m->allGuestOSTypes.end(); ++it, ++i)
     991         (*it).queryInterfaceTo(aGuestOSTypes[i].asOutParam());
    1076992    return S_OK;
    1077993}
    1078994
    1079 STDMETHODIMP VirtualBox::COMGETTER(SharedFolders)(ComSafeArrayOut(ISharedFolder *, aSharedFolders))
    1080 {
    1081 #ifndef RT_OS_WINDOWS
    1082     NOREF(aSharedFoldersSize);
    1083 #endif /* RT_OS_WINDOWS */
    1084 
    1085     CheckComArgOutSafeArrayPointerValid(aSharedFolders);
    1086 
    1087     AutoCaller autoCaller(this);
    1088     if (FAILED(autoCaller.rc())) return autoCaller.rc();
     995HRESULT VirtualBox::getSharedFolders(std::vector<ComPtr<ISharedFolder> > &aSharedFolders)
     996{
     997 #ifndef RT_OS_WINDOWS
     998     NOREF(aSharedFolders);
     999 #endif /* RT_OS_WINDOWS */
     1000     NOREF(aSharedFolders);
    10891001
    10901002    return setError(E_NOTIMPL, "Not yet implemented");
    10911003}
    10921004
    1093 STDMETHODIMP
    1094 VirtualBox::COMGETTER(PerformanceCollector)(IPerformanceCollector **aPerformanceCollector)
     1005HRESULT VirtualBox::getPerformanceCollector(ComPtr<IPerformanceCollector> &aPerformanceCollector)
    10951006{
    10961007#ifdef VBOX_WITH_RESOURCE_USAGE_API
    1097     CheckComArgOutPointerValid(aPerformanceCollector);
    1098 
    1099     AutoCaller autoCaller(this);
    1100     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1101 
    11021008    /* mPerformanceCollector is const, no need to lock */
    1103     m->pPerformanceCollector.queryInterfaceTo(aPerformanceCollector);
     1009    m->pPerformanceCollector.queryInterfaceTo(aPerformanceCollector.asOutParam());
    11041010
    11051011    return S_OK;
     
    11101016}
    11111017
    1112 STDMETHODIMP
    1113 VirtualBox::COMGETTER(DHCPServers)(ComSafeArrayOut(IDHCPServer *, aDHCPServers))
    1114 {
    1115     CheckComArgOutSafeArrayPointerValid(aDHCPServers);
    1116 
    1117     AutoCaller autoCaller(this);
    1118     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1119 
     1018HRESULT VirtualBox::getDHCPServers(std::vector<ComPtr<IDHCPServer> > &aDHCPServers)
     1019{
    11201020    AutoReadLock al(m->allDHCPServers.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1121     SafeIfaceArray<IDHCPServer> svrs(m->allDHCPServers.getList());
    1122     svrs.detachTo(ComSafeArrayOutArg(aDHCPServers));
    1123 
     1021    aDHCPServers.resize(m->allDHCPServers.size());
     1022    size_t i = 0;
     1023    for (DHCPServersOList::const_iterator it= m->allDHCPServers.begin();
     1024         it!= m->allDHCPServers.end(); ++it, ++i)
     1025         (*it).queryInterfaceTo(aDHCPServers[i].asOutParam());
    11241026    return S_OK;
    11251027}
    11261028
    11271029
    1128 STDMETHODIMP
    1129 VirtualBox::COMGETTER(NATNetworks)(ComSafeArrayOut(INATNetwork *, aNATNetworks))
     1030HRESULT VirtualBox::getNATNetworks(std::vector<ComPtr<INATNetwork> > &aNATNetworks)
    11301031{
    11311032#ifdef VBOX_WITH_NAT_SERVICE
    1132     CheckComArgOutSafeArrayPointerValid(aNATNetworks);
    1133 
    1134     AutoCaller autoCaller(this);
    1135     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1136 
    11371033    AutoReadLock al(m->allNATNetworks.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1138     SafeIfaceArray<INATNetwork> nets(m->allNATNetworks.getList());
    1139     nets.detachTo(ComSafeArrayOutArg(aNATNetworks));
    1140 
     1034    aNATNetworks.resize(m->allNATNetworks.size());
     1035    size_t i = 0;
     1036    for (NATNetworksOList::const_iterator it= m->allNATNetworks.begin();
     1037         it!= m->allNATNetworks.end(); ++it, ++i)
     1038         (*it).queryInterfaceTo(aNATNetworks[i].asOutParam());
    11411039    return S_OK;
    11421040#else
    11431041    NOREF(aNATNetworks);
    11441042# ifndef RT_OS_WINDOWS
    1145     NOREF(aNATNetworksSize);
     1043    NOREF(aNATNetworks);
    11461044# endif
     1045    NOREF(aNATNetworks);
    11471046    return E_NOTIMPL;
    11481047#endif
    11491048}
    11501049
    1151 
    1152 STDMETHODIMP
    1153 VirtualBox::COMGETTER(EventSource)(IEventSource ** aEventSource)
    1154 {
    1155     CheckComArgOutPointerValid(aEventSource);
    1156 
    1157     AutoCaller autoCaller(this);
    1158     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1159 
     1050HRESULT VirtualBox::getEventSource(ComPtr<IEventSource> &aEventSource)
     1051{
    11601052    /* event source is const, no need to lock */
    1161     m->pEventSource.queryInterfaceTo(aEventSource);
    1162 
     1053    m->pEventSource.queryInterfaceTo(aEventSource.asOutParam());
    11631054    return S_OK;
    11641055}
    11651056
    1166 STDMETHODIMP
    1167 VirtualBox::COMGETTER(ExtensionPackManager)(IExtPackManager **aExtPackManager)
    1168 {
    1169     CheckComArgOutPointerValid(aExtPackManager);
    1170 
    1171     AutoCaller autoCaller(this);
    1172     HRESULT hrc = autoCaller.rc();
    1173     if (SUCCEEDED(hrc))
    1174     {
     1057HRESULT VirtualBox::getExtensionPackManager(ComPtr<IExtPackManager> &aExtensionPackManager)
     1058{
     1059    HRESULT hrc = S_OK;
    11751060#ifdef VBOX_WITH_EXTPACK
    1176         /* The extension pack manager is const, no need to lock. */
    1177         hrc = m->ptrExtPackManager.queryInterfaceTo(aExtPackManager);
     1061    /* The extension pack manager is const, no need to lock. */
     1062    hrc = m->ptrExtPackManager.queryInterfaceTo(aExtensionPackManager.asOutParam());
    11781063#else
    1179         hrc = E_NOTIMPL;
     1064    hrc = E_NOTIMPL;
     1065    NOREF(aExtensionPackManager);
    11801066#endif
    1181     }
    1182 
    11831067    return hrc;
    11841068}
    11851069
    1186 STDMETHODIMP VirtualBox::COMGETTER(InternalNetworks)(ComSafeArrayOut(BSTR, aInternalNetworks))
    1187 {
    1188     CheckComArgOutSafeArrayPointerValid(aInternalNetworks);
    1189 
    1190     AutoCaller autoCaller(this);
    1191     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1192 
    1193     std::list<Bstr> allInternalNetworks;
     1070HRESULT VirtualBox::getInternalNetworks(std::vector<com::Utf8Str> &aInternalNetworks)
     1071{
     1072    std::list<com::Utf8Str> allInternalNetworks;
    11941073
    11951074    /* get copy of all machine references, to avoid holding the list lock */
     
    12001079    }
    12011080    for (MachinesOList::MyList::const_iterator it = allMachines.begin();
    1202          it != allMachines.end();
    1203          ++it)
     1081         it != allMachines.end(); ++it)
    12041082    {
    12051083        const ComObjPtr<Machine> &pMachine = *it;
     
    12231101                    continue;
    12241102
    1225                 allInternalNetworks.push_back(strInternalNetwork);
     1103                allInternalNetworks.push_back(Utf8Str(strInternalNetwork));
    12261104            }
    12271105        }
     
    12311109    allInternalNetworks.sort();
    12321110    allInternalNetworks.unique();
    1233     com::SafeArray<BSTR> internalNetworks(allInternalNetworks.size());
    12341111    size_t i = 0;
    1235     for (std::list<Bstr>::const_iterator it = allInternalNetworks.begin();
     1112    aInternalNetworks.resize(allInternalNetworks.size());
     1113    for (std::list<com::Utf8Str>::const_iterator it = allInternalNetworks.begin();
    12361114         it != allInternalNetworks.end();
    1237          ++it, i++)
    1238     {
    1239         const Bstr &tmp = *it;
    1240         tmp.cloneTo(&internalNetworks[i]);
    1241     }
    1242     internalNetworks.detachTo(ComSafeArrayOutArg(aInternalNetworks));
    1243 
     1115         ++it, ++i)
     1116        aInternalNetworks[i] = *it;
    12441117    return S_OK;
    12451118}
    12461119
    1247 STDMETHODIMP VirtualBox::COMGETTER(GenericNetworkDrivers)(ComSafeArrayOut(BSTR, aGenericNetworkDrivers))
    1248 {
    1249     CheckComArgOutSafeArrayPointerValid(aGenericNetworkDrivers);
    1250 
    1251     AutoCaller autoCaller(this);
    1252     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1253 
    1254     std::list<Bstr> allGenericNetworkDrivers;
     1120HRESULT VirtualBox::getGenericNetworkDrivers(std::vector<com::Utf8Str> &aGenericNetworkDrivers)
     1121{
     1122    std::list<com::Utf8Str> allGenericNetworkDrivers;
    12551123
    12561124    /* get copy of all machine references, to avoid holding the list lock */
     
    12841152                    continue;
    12851153
    1286                 allGenericNetworkDrivers.push_back(strGenericNetworkDriver);
     1154                allGenericNetworkDrivers.push_back(Utf8Str(strGenericNetworkDriver).c_str());
    12871155            }
    12881156        }
     
    12921160    allGenericNetworkDrivers.sort();
    12931161    allGenericNetworkDrivers.unique();
    1294     com::SafeArray<BSTR> genericNetworks(allGenericNetworkDrivers.size());
     1162    aGenericNetworkDrivers.resize(allGenericNetworkDrivers.size());
    12951163    size_t i = 0;
    1296     for (std::list<Bstr>::const_iterator it = allGenericNetworkDrivers.begin();
    1297          it != allGenericNetworkDrivers.end();
    1298          ++it, i++)
    1299     {
    1300         const Bstr &tmp = *it;
    1301         tmp.cloneTo(&genericNetworks[i]);
    1302     }
    1303     genericNetworks.detachTo(ComSafeArrayOutArg(aGenericNetworkDrivers));
     1164    for (std::list<com::Utf8Str>::const_iterator it = allGenericNetworkDrivers.begin();
     1165         it != allGenericNetworkDrivers.end(); ++it, ++i)
     1166        aGenericNetworkDrivers[i] = *it;
    13041167
    13051168    return S_OK;
    13061169}
    13071170
    1308 STDMETHODIMP
    1309 VirtualBox::CheckFirmwarePresent(FirmwareType_T aFirmwareType,
    1310                                  IN_BSTR        aVersion,
    1311                                  BSTR           *aUrl,
    1312                                  BSTR           *aFile,
    1313                                  BOOL           *aResult)
    1314 {
    1315     CheckComArgNotNull(aResult);
    1316 
    1317     AutoCaller autoCaller(this);
    1318     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1319 
     1171HRESULT VirtualBox::checkFirmwarePresent(FirmwareType_T aFirmwareType,
     1172                                         const com::Utf8Str &aVersion,
     1173                                         com::Utf8Str &aUrl,
     1174                                         com::Utf8Str &aFile,
     1175                                         BOOL *aResult)
     1176{
    13201177    NOREF(aVersion);
    13211178
     
    13601217                               RTPATH_DELIMITER,
    13611218                               firmwareDesc[i].fileName);
    1362         int rc = calculateFullPath(shortName, fullName);
     1219        int rc = i_calculateFullPath(shortName, fullName);
    13631220        AssertRCReturn(rc, rc);
    13641221        if (RTFileExists(fullName.c_str()))
    13651222        {
    13661223            *aResult = TRUE;
    1367             if (aFile)
    1368                 Utf8Str(fullName).cloneTo(aFile);
     1224            aFile = fullName;
    13691225            break;
    13701226        }
     
    13801236        {
    13811237            *aResult = TRUE;
    1382             if (aFile)
    1383                 Utf8Str(fullName).cloneTo(aFile);
     1238            aFile = fullName;
    13841239            break;
    13851240        }
    13861241
    13871242        /** @todo: account for version in the URL */
    1388         if (aUrl != NULL)
    1389         {
    1390             Utf8Str strUrl(firmwareDesc[i].url);
    1391             strUrl.cloneTo(aUrl);
    1392         }
     1243        aUrl = firmwareDesc[i].url;
    13931244        *aResult = FALSE;
    13941245
     
    13991250    return S_OK;
    14001251}
    1401 // IVirtualBox methods
     1252// Wrapped IVirtualBox methods
    14021253/////////////////////////////////////////////////////////////////////////////
    14031254
     
    14051256static void sanitiseMachineFilename(Utf8Str &aName);
    14061257
    1407 STDMETHODIMP VirtualBox::ComposeMachineFilename(IN_BSTR aName,
    1408                                                 IN_BSTR aGroup,
    1409                                                 IN_BSTR aCreateFlags,
    1410                                                 IN_BSTR aBaseFolder,
    1411                                                 BSTR *aFilename)
     1258STDMETHODIMP VirtualBox::composeMachineFilename(const com::Utf8Str &aName,
     1259                                                const com::Utf8Str &aGroup,
     1260                                                const com::Utf8Str &aCreateFlags,
     1261                                                const com::Utf8Str &aBaseFolder,
     1262                                                com::Utf8Str       &aFile)
    14121263{
    14131264    LogFlowThisFuncEnter();
    1414     LogFlowThisFunc(("aName=\"%ls\",aBaseFolder=\"%ls\"\n", aName, aBaseFolder));
    1415 
    1416     CheckComArgStrNotEmptyOrNull(aName);
    1417     CheckComArgOutPointerValid(aFilename);
    1418 
    1419     AutoCaller autoCaller(this);
    1420     if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1265
     1266    Utf8Str strBase = aBaseFolder;
     1267    Utf8Str strName = aName;
     1268
     1269    LogFlowThisFunc(("aName=\"%ls\",aBaseFolder=\"%ls\"\n", strName.c_str(), strBase.c_str()));
    14211270
    14221271    Utf8Str strCreateFlags(aCreateFlags);
     
    14681317    if (strGroup.isEmpty())
    14691318        strGroup = "/";
    1470     HRESULT rc = validateMachineGroup(strGroup, true);
     1319    HRESULT rc = i_validateMachineGroup(strGroup, true);
    14711320    if (FAILED(rc))
    14721321        return rc;
     
    14811330     * using it.
    14821331     */
    1483     Utf8Str strBase = aBaseFolder;
    1484     Utf8Str strName = aName;
    14851332    Utf8Str strDirName(strName);
    14861333    if (fDirectoryIncludesUUID)
     
    14911338    if (strBase.isEmpty())
    14921339        /* we use the non-full folder value below to keep the path relative */
    1493         getDefaultMachineFolder(strBase);
    1494 
    1495     calculateFullPath(strBase, strBase);
     1340        i_getDefaultMachineFolder(strBase);
     1341
     1342    i_calculateFullPath(strBase, strBase);
    14961343
    14971344    /* eliminate toplevel group to avoid // in the result */
    14981345    if (strGroup == "/")
    14991346        strGroup.setNull();
    1500     Bstr bstrSettingsFile = BstrFmt("%s%s%c%s%c%s.vbox",
    1501                                     strBase.c_str(),
    1502                                     strGroup.c_str(),
    1503                                     RTPATH_DELIMITER,
    1504                                     strDirName.c_str(),
    1505                                     RTPATH_DELIMITER,
    1506                                     strName.c_str());
    1507 
    1508     bstrSettingsFile.detachTo(aFilename);
    1509 
     1347    aFile = com::Utf8StrFmt("%s%s%c%s%c%s.vbox",
     1348                            strBase.c_str(),
     1349                            strGroup.c_str(),
     1350                            RTPATH_DELIMITER,
     1351                            strDirName.c_str(),
     1352                            RTPATH_DELIMITER,
     1353                            strName.c_str());
    15101354    return S_OK;
    15111355}
     
    15981442
    15991443/** @note Locks mSystemProperties object for reading. */
    1600 STDMETHODIMP VirtualBox::CreateMachine(IN_BSTR aSettingsFile,
    1601                                        IN_BSTR aName,
    1602                                        ComSafeArrayIn(IN_BSTR, aGroups),
    1603                                        IN_BSTR aOsTypeId,
    1604                                        IN_BSTR aCreateFlags,
    1605                                        IMachine **aMachine)
     1444HRESULT VirtualBox::createMachine(const com::Utf8Str &aSettingsFile,
     1445                                  const com::Utf8Str &aName,
     1446                                  const std::vector<com::Utf8Str> &aGroups,
     1447                                  const com::Utf8Str &aOsTypeId,
     1448                                  const com::Utf8Str &aFlags,
     1449                                  ComPtr<IMachine> &aMachine)
    16061450{
    16071451    LogFlowThisFuncEnter();
    1608     LogFlowThisFunc(("aSettingsFile=\"%ls\", aName=\"%ls\", aOsTypeId =\"%ls\", aCreateFlags=\"%ls\"\n", aSettingsFile, aName, aOsTypeId, aCreateFlags));
    1609 
    1610     CheckComArgStrNotEmptyOrNull(aName);
     1452    LogFlowThisFunc(("aSettingsFile=\"%ls\", aName=\"%ls\", aOsTypeId =\"%ls\", aCreateFlags=\"%ls\"\n", Bstr(aSettingsFile).raw(), Bstr(aName).raw(), Bstr(aOsTypeId).raw(), Bstr(aFlags).raw()));
    16111453    /** @todo tighten checks on aId? */
    1612     CheckComArgOutPointerValid(aMachine);
    1613 
    1614     AutoCaller autoCaller(this);
    1615     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    16161454
    16171455    StringsList llGroups;
    1618     HRESULT rc = convertMachineGroups(ComSafeArrayInArg(aGroups), &llGroups);
     1456    HRESULT rc = i_convertMachineGroups(aGroups, &llGroups);
    16191457    if (FAILED(rc))
    16201458        return rc;
    16211459
    1622     Utf8Str strCreateFlags(aCreateFlags);
     1460    Utf8Str strCreateFlags(aFlags);
    16231461    Guid id;
    16241462    bool fForceOverwrite = false;
     
    16761514            strNewCreateFlags += ",directoryIncludesUUID=1";
    16771515
    1678         rc = ComposeMachineFilename(aName,
    1679                                     Bstr(llGroups.front()).raw(),
    1680                                     Bstr(strNewCreateFlags).raw(),
    1681                                     NULL /* aBaseFolder */,
    1682                                     bstrSettingsFile.asOutParam());
     1516        com::Utf8Str blstr = "";
     1517        com::Utf8Str sf = aSettingsFile;
     1518        rc = composeMachineFilename(aName,
     1519                                    llGroups.front(),
     1520                                    strNewCreateFlags,
     1521                                    blstr /* aBaseFolder */,
     1522                                    sf);
    16831523        if (FAILED(rc)) return rc;
     1524        bstrSettingsFile = Bstr(sf).raw();
    16841525    }
    16851526
     
    16901531
    16911532    GuestOSType *osType = NULL;
    1692     rc = findGuestOSType(Bstr(aOsTypeId), osType);
     1533    rc = i_findGuestOSType(Bstr(aOsTypeId), osType);
    16931534    if (FAILED(rc)) return rc;
    16941535
     
    17051546    {
    17061547        /* set the return value */
    1707         rc = machine.queryInterfaceTo(aMachine);
     1548        machine.queryInterfaceTo(aMachine.asOutParam());
    17081549        AssertComRC(rc);
    17091550
     
    17191560}
    17201561
    1721 STDMETHODIMP VirtualBox::OpenMachine(IN_BSTR aSettingsFile,
    1722                                      IMachine **aMachine)
    1723 {
    1724     CheckComArgStrNotEmptyOrNull(aSettingsFile);
    1725     CheckComArgOutPointerValid(aMachine);
    1726 
    1727     AutoCaller autoCaller(this);
    1728     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1729 
     1562HRESULT VirtualBox::openMachine(const com::Utf8Str &aSettingsFile,
     1563                                ComPtr<IMachine> &aMachine)
     1564{
    17301565    HRESULT rc = E_FAIL;
    17311566
     
    17421577        {
    17431578            /* set the return value */
    1744             rc = machine.queryInterfaceTo(aMachine);
     1579            machine.queryInterfaceTo(aMachine.asOutParam());
    17451580            ComAssertComRC(rc);
    17461581        }
     
    17511586
    17521587/** @note Locks objects! */
    1753 STDMETHODIMP VirtualBox::RegisterMachine(IMachine *aMachine)
    1754 {
    1755     CheckComArgNotNull(aMachine);
    1756 
    1757     AutoCaller autoCaller(this);
    1758     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1759 
     1588HRESULT VirtualBox::registerMachine(const ComPtr<IMachine> &aMachine)
     1589{
    17601590    HRESULT rc;
    17611591
     
    17661596    /* We can safely cast child to Machine * here because only Machine
    17671597     * implementations of IMachine can be among our children. */
    1768     Machine *pMachine = static_cast<Machine*>(aMachine);
     1598    IMachine *aM = aMachine;
     1599    Machine *pMachine = static_cast<Machine*>(aM);
    17691600
    17701601    AutoCaller machCaller(pMachine);
    17711602    ComAssertComRCRetRC(machCaller.rc());
    17721603
    1773     rc = registerMachine(pMachine);
     1604    rc = i_registerMachine(pMachine);
    17741605    /* fire an event */
    17751606    if (SUCCEEDED(rc))
    1776         onMachineRegistered(pMachine->getId(), TRUE);
     1607        i_onMachineRegistered(pMachine->getId(), TRUE);
    17771608
    17781609    return rc;
     
    17801611
    17811612/** @note Locks this object for reading, then some machine objects for reading. */
    1782 STDMETHODIMP VirtualBox::FindMachine(IN_BSTR aNameOrId, IMachine **aMachine)
     1613HRESULT VirtualBox::findMachine(const com::Utf8Str &aSettingsFile,
     1614                                ComPtr<IMachine> &aMachine)
    17831615{
    17841616    LogFlowThisFuncEnter();
    1785     LogFlowThisFunc(("aName=\"%ls\", aMachine={%p}\n", aNameOrId, aMachine));
    1786 
    1787     CheckComArgStrNotEmptyOrNull(aNameOrId);
    1788     CheckComArgOutPointerValid(aMachine);
    1789 
    1790     AutoCaller autoCaller(this);
    1791     if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1617    LogFlowThisFunc(("aSettingsFile=\"%ls\", aMachine={%p}\n", Bstr(aSettingsFile).raw(), &aMachine));
    17921618
    17931619    /* start with not found */
     
    17951621    ComObjPtr<Machine> pMachineFound;
    17961622
    1797     Guid id(aNameOrId);
     1623    Guid id(Bstr(aSettingsFile).raw());
     1624    Utf8Str strFile(aSettingsFile);
    17981625    if (id.isValid() && !id.isZero())
    17991626
    1800         rc = findMachine(id,
    1801                          true /* fPermitInaccessible */,
    1802                          true /* setError */,
    1803                          &pMachineFound);
    1804                 // returns VBOX_E_OBJECT_NOT_FOUND if not found and sets error
     1627        rc = i_findMachine(id,
     1628                           true /* fPermitInaccessible */,
     1629                           true /* setError */,
     1630                           &pMachineFound);
     1631        // returns VBOX_E_OBJECT_NOT_FOUND if not found and sets error
    18051632    else
    18061633    {
    1807         Utf8Str strName(aNameOrId);
    1808         rc = findMachineByName(aNameOrId,
    1809                                true /* setError */,
    1810                                &pMachineFound);
    1811                 // returns VBOX_E_OBJECT_NOT_FOUND if not found and sets error
     1634        rc = i_findMachineByName(strFile,
     1635                                 true /* setError */,
     1636                                 &pMachineFound);
     1637        // returns VBOX_E_OBJECT_NOT_FOUND if not found and sets error
    18121638    }
    18131639
    18141640    /* this will set (*machine) to NULL if machineObj is null */
    1815     pMachineFound.queryInterfaceTo(aMachine);
    1816 
    1817     LogFlowThisFunc(("aName=\"%ls\", aMachine=%p, rc=%08X\n", aNameOrId, *aMachine, rc));
     1641    pMachineFound.queryInterfaceTo(aMachine.asOutParam());
     1642
     1643    LogFlowThisFunc(("aName=\"%ls\", aMachine=%p, rc=%08X\n", Bstr(aSettingsFile).raw(), &aMachine, rc));
    18181644    LogFlowThisFuncLeave();
    18191645
     
    18211647}
    18221648
    1823 STDMETHODIMP VirtualBox::GetMachinesByGroups(ComSafeArrayIn(IN_BSTR, aGroups), ComSafeArrayOut(IMachine *, aMachines))
    1824 {
    1825     CheckComArgSafeArrayNotNull(aGroups);
    1826     CheckComArgOutSafeArrayPointerValid(aMachines);
    1827 
    1828     AutoCaller autoCaller(this);
    1829     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1830 
     1649HRESULT VirtualBox::getMachinesByGroups(const std::vector<com::Utf8Str> &aGroups,
     1650                                        std::vector<ComPtr<IMachine> > &aMachines)
     1651{
    18311652    StringsList llGroups;
    1832     HRESULT rc = convertMachineGroups(ComSafeArrayInArg(aGroups), &llGroups);
     1653    HRESULT rc = i_convertMachineGroups(aGroups, &llGroups);
    18331654    if (FAILED(rc))
    18341655        return rc;
     1656
    18351657    /* we want to rely on sorted groups during compare, to save time */
    18361658    llGroups.sort();
     
    18381660    /* get copy of all machine references, to avoid holding the list lock */
    18391661    MachinesOList::MyList allMachines;
    1840     {
    1841         AutoReadLock al(m->allMachines.getLockHandle() COMMA_LOCKVAL_SRC_POS);
    1842         allMachines = m->allMachines.getList();
    1843     }
    1844 
    1845     com::SafeIfaceArray<IMachine> saMachines;
     1662    AutoReadLock al(m->allMachines.getLockHandle() COMMA_LOCKVAL_SRC_POS);
     1663    allMachines = m->allMachines.getList();
     1664
     1665    std::vector<ComObjPtr<IMachine> > saMachines;
     1666    saMachines.resize(0);
    18461667    for (MachinesOList::MyList::const_iterator it = allMachines.begin();
    18471668         it != allMachines.end();
     
    18701691                    if (order == 0)
    18711692                    {
    1872                         saMachines.push_back(pMachine);
     1693                        saMachines.push_back(static_cast<IMachine *>(pMachine));
    18731694                        fAppended = true;
    18741695                        break;
     
    18851706        }
    18861707    }
    1887 
    1888     saMachines.detachTo(ComSafeArrayOutArg(aMachines));
     1708    aMachines.resize(saMachines.size());
     1709    size_t i = 0;
     1710    for(i = 0; i < saMachines.size(); ++i)
     1711        saMachines[i].queryInterfaceTo(aMachines[i].asOutParam());
    18891712
    18901713    return S_OK;
    18911714}
    18921715
    1893 STDMETHODIMP VirtualBox::GetMachineStates(ComSafeArrayIn(IMachine *, aMachines), ComSafeArrayOut(MachineState_T, aStates))
    1894 {
    1895     CheckComArgSafeArrayNotNull(aMachines);
    1896     CheckComArgOutSafeArrayPointerValid(aStates);
    1897 
    1898     com::SafeIfaceArray<IMachine> saMachines(ComSafeArrayInArg(aMachines));
    1899     com::SafeArray<MachineState_T> saStates(saMachines.size());
     1716HRESULT VirtualBox::getMachineStates(const std::vector<ComPtr<IMachine> > &aMachines,
     1717                                     std::vector<MachineState_T> &aStates)
     1718{
     1719    com::SafeIfaceArray<IMachine> saMachines(aMachines);
     1720    aStates.resize(aMachines.size());
    19001721    for (size_t i = 0; i < saMachines.size(); i++)
    19011722    {
     
    19091730            AssertComRC(rc);
    19101731        }
    1911         saStates[i] = state;
    1912     }
    1913     saStates.detachTo(ComSafeArrayOutArg(aStates));
    1914 
     1732        aStates[i] = state;
     1733    }
    19151734    return S_OK;
    19161735}
    19171736
    1918 STDMETHODIMP VirtualBox::CreateHardDisk(IN_BSTR aFormat,
    1919                                         IN_BSTR aLocation,
    1920                                         IMedium **aHardDisk)
    1921 {
    1922     CheckComArgOutPointerValid(aHardDisk);
    1923 
    1924     AutoCaller autoCaller(this);
    1925     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1926 
     1737HRESULT VirtualBox::createHardDisk(const com::Utf8Str &aFormat,
     1738                                   const com::Utf8Str &aLocation,
     1739                                   ComPtr<IMedium> &aMedium)
     1740{
    19271741    /* we don't access non-const data members so no need to lock */
    1928 
    1929     Utf8Str format(aFormat);
     1742    com::Utf8Str format = aFormat;
    19301743    if (format.isEmpty())
    1931         getDefaultHardDiskFormat(format);
     1744        i_getDefaultHardDiskFormat(format);
    19321745
    19331746    ComObjPtr<Medium> hardDisk;
     
    19371750                                aLocation,
    19381751                                Guid::Empty /* media registry: none yet */);
    1939 
    19401752    if (SUCCEEDED(rc))
    1941         hardDisk.queryInterfaceTo(aHardDisk);
     1753        hardDisk.queryInterfaceTo(aMedium.asOutParam());
    19421754
    19431755    return rc;
    19441756}
    19451757
    1946 STDMETHODIMP VirtualBox::OpenMedium(IN_BSTR aLocation,
    1947                                     DeviceType_T deviceType,
    1948                                     AccessMode_T accessMode,
    1949                                     BOOL fForceNewUuid,
    1950                                     IMedium **aMedium)
     1758HRESULT VirtualBox::openMedium(const com::Utf8Str &aLocation,
     1759                               DeviceType_T aDeviceType,
     1760                               AccessMode_T aAccessMode,
     1761                               BOOL aForceNewUuid,
     1762                               ComPtr<IMedium> &aMedium)
    19511763{
    19521764    HRESULT rc = S_OK;
    1953     CheckComArgStrNotEmptyOrNull(aLocation);
    1954     CheckComArgOutPointerValid(aMedium);
    1955 
    1956     AutoCaller autoCaller(this);
    1957     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    1958 
    19591765    Guid id(aLocation);
     1766    const Guid cid = id;
    19601767    ComObjPtr<Medium> pMedium;
    19611768
     
    19631770    // in one critical section, otherwise there are races which can lead to
    19641771    // multiple Medium objects with the same content
    1965     AutoWriteLock treeLock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     1772    AutoWriteLock treeLock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    19661773
    19671774    // check if the device type is correct, and see if a medium for the
    19681775    // given path has already initialized; if so, return that
    1969     switch (deviceType)
     1776    switch (aDeviceType)
    19701777    {
    19711778        case DeviceType_HardDisk:
    19721779            if (id.isValid() && !id.isZero())
    1973                 rc = findHardDiskById(id, false /* setError */, &pMedium);
     1780                rc = i_findHardDiskById(id, false /* setError */, &pMedium);
    19741781            else
    1975                 rc = findHardDiskByLocation(aLocation,
    1976                                             false, /* aSetError */
    1977                                             &pMedium);
     1782                rc = i_findHardDiskByLocation(aLocation,
     1783                                              false, /* aSetError */
     1784                                              &pMedium);
    19781785        break;
    19791786
     
    19811788        case DeviceType_DVD:
    19821789            if (id.isValid() && !id.isZero())
    1983                 rc = findDVDOrFloppyImage(deviceType, &id, Utf8Str::Empty,
     1790                rc = i_findDVDOrFloppyImage(aDeviceType, &id, Utf8Str::Empty,
    19841791                                          false /* setError */, &pMedium);
    19851792            else
    1986                 rc = findDVDOrFloppyImage(deviceType, NULL, aLocation,
     1793                rc = i_findDVDOrFloppyImage(aDeviceType, NULL, aLocation,
    19871794                                          false /* setError */, &pMedium);
    19881795
    19891796            // enforce read-only for DVDs even if caller specified ReadWrite
    1990             if (deviceType == DeviceType_DVD)
    1991                 accessMode = AccessMode_ReadOnly;
     1797            if (aDeviceType == DeviceType_DVD)
     1798                aAccessMode = AccessMode_ReadOnly;
    19921799        break;
    19931800
    19941801        default:
    1995             return setError(E_INVALIDARG, "Device type must be HardDisk, DVD or Floppy %d", deviceType);
     1802            return setError(E_INVALIDARG, "Device type must be HardDisk, DVD or Floppy %d", aDeviceType);
    19961803    }
    19971804
     
    20021809        rc = pMedium->init(this,
    20031810                           aLocation,
    2004                            (accessMode == AccessMode_ReadWrite) ? Medium::OpenReadWrite : Medium::OpenReadOnly,
    2005                            !!fForceNewUuid,
    2006                            deviceType);
     1811                           (aAccessMode == AccessMode_ReadWrite) ? Medium::OpenReadWrite : Medium::OpenReadOnly,
     1812                           !!aForceNewUuid,
     1813                           aDeviceType);
    20071814        treeLock.acquire();
    20081815
    20091816        if (SUCCEEDED(rc))
    20101817        {
    2011             rc = registerMedium(pMedium, &pMedium, deviceType);
     1818            rc = i_registerMedium(pMedium, &pMedium, aDeviceType);
    20121819
    20131820            treeLock.release();
     
    20281835
    20291836    if (SUCCEEDED(rc))
    2030         pMedium.queryInterfaceTo(aMedium);
     1837        pMedium.queryInterfaceTo(aMedium.asOutParam());
    20311838
    20321839    return rc;
     
    20351842
    20361843/** @note Locks this object for reading. */
    2037 STDMETHODIMP VirtualBox::GetGuestOSType(IN_BSTR aId, IGuestOSType **aType)
    2038 {
    2039     CheckComArgNotNull(aType);
    2040 
    2041     AutoCaller autoCaller(this);
    2042     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    2043 
    2044     *aType = NULL;
    2045 
     1844HRESULT VirtualBox::getGuestOSType(const com::Guid &aId,
     1845                                   ComPtr<IGuestOSType> &aType)
     1846{
     1847    aType = NULL;
    20461848    AutoReadLock alock(m->allGuestOSTypes.getLockHandle() COMMA_LOCKVAL_SRC_POS);
     1849    IN_BSTR strId = Bstr(aId.toUtf16()).raw();
     1850
     1851    HRESULT rc = S_OK;
    20471852    for (GuestOSTypesOList::iterator it = m->allGuestOSTypes.begin();
    20481853         it != m->allGuestOSTypes.end();
     
    20511856        const Bstr &typeId = (*it)->i_id();
    20521857        AssertMsg(!typeId.isEmpty(), ("ID must not be NULL"));
    2053         if (typeId.compare(aId, Bstr::CaseInsensitive) == 0)
    2054         {
    2055             (*it).queryInterfaceTo(aType);
     1858        if (com::Guid(typeId) == aId)
     1859        {
     1860            (*it).queryInterfaceTo(aType.asOutParam());
    20561861            break;
    20571862        }
    20581863    }
    2059 
    2060     return (*aType) ? S_OK :
     1864    return (aType) ? S_OK :
    20611865        setError(E_INVALIDARG,
    20621866                 tr("'%ls' is not a valid Guest OS type"),
    2063                  aId);
    2064 }
    2065 
    2066 STDMETHODIMP VirtualBox::CreateSharedFolder(IN_BSTR aName,        IN_BSTR aHostPath,
    2067                                             BOOL /* aWritable */, BOOL /* aAutoMount */)
    2068 {
    2069     CheckComArgStrNotEmptyOrNull(aName);
    2070     CheckComArgStrNotEmptyOrNull(aHostPath);
    2071 
    2072     AutoCaller autoCaller(this);
    2073     if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1867                 strId);
     1868    return rc;
     1869}
     1870
     1871HRESULT VirtualBox::createSharedFolder(const com::Utf8Str &aName,
     1872                                       const com::Utf8Str &aHostPath,
     1873                                       BOOL aWritable,
     1874                                       BOOL aAutomount)
     1875{
     1876    NOREF(aName);
     1877    NOREF(aHostPath);
     1878    NOREF(aWritable);
     1879    NOREF(aAutomount);
    20741880
    20751881    return setError(E_NOTIMPL, "Not yet implemented");
    20761882}
    20771883
    2078 STDMETHODIMP VirtualBox::RemoveSharedFolder(IN_BSTR aName)
    2079 {
    2080     CheckComArgStrNotEmptyOrNull(aName);
    2081 
    2082     AutoCaller autoCaller(this);
    2083     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    2084 
     1884HRESULT VirtualBox::removeSharedFolder(const com::Utf8Str &aName)
     1885{
     1886    NOREF(aName);
    20851887    return setError(E_NOTIMPL, "Not yet implemented");
    20861888}
     
    20891891 *  @note Locks this object for reading.
    20901892 */
    2091 STDMETHODIMP VirtualBox::GetExtraDataKeys(ComSafeArrayOut(BSTR, aKeys))
     1893HRESULT VirtualBox::getExtraDataKeys(std::vector<com::Utf8Str> &aKeys)
    20921894{
    20931895    using namespace settings;
    20941896
    2095     CheckComArgOutSafeArrayPointerValid(aKeys);
    2096 
    2097     AutoCaller autoCaller(this);
    2098     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    2099 
    21001897    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    21011898
    2102     com::SafeArray<BSTR> saKeys(m->pMainConfigFile->mapExtraDataItems.size());
    2103     int i = 0;
    2104     for (StringsMap::const_iterator it = m->pMainConfigFile->mapExtraDataItems.begin();
    2105          it != m->pMainConfigFile->mapExtraDataItems.end();
    2106          ++it, ++i)
    2107     {
    2108         const Utf8Str &strName = it->first;     // the key
    2109         strName.cloneTo(&saKeys[i]);
    2110     }
    2111     saKeys.detachTo(ComSafeArrayOutArg(aKeys));
     1899    std::vector<com::Utf8Str> saKeys(m->pMainConfigFile->mapExtraDataItems.size());
     1900    aKeys.resize(saKeys.size());
     1901    for (size_t i = 0; i < saKeys.size(); i++)
     1902        aKeys[i] = saKeys[i];
    21121903
    21131904    return S_OK;
     
    21171908 *  @note Locks this object for reading.
    21181909 */
    2119 STDMETHODIMP VirtualBox::GetExtraData(IN_BSTR aKey,
    2120                                       BSTR *aValue)
    2121 {
    2122     CheckComArgStrNotEmptyOrNull(aKey);
    2123     CheckComArgNotNull(aValue);
    2124 
    2125     AutoCaller autoCaller(this);
    2126     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    2127 
    2128     /* start with nothing found */
    2129     Utf8Str strKey(aKey);
    2130     Bstr bstrResult;
    2131 
    2132     settings::StringsMap::const_iterator it = m->pMainConfigFile->mapExtraDataItems.find(strKey);
     1910HRESULT VirtualBox::getExtraData(const com::Utf8Str &aKey,
     1911                                 com::Utf8Str &aValue)
     1912{
     1913    settings::StringsMap::const_iterator it = m->pMainConfigFile->mapExtraDataItems.find(aKey);
    21331914    if (it != m->pMainConfigFile->mapExtraDataItems.end())
    21341915        // found:
    2135         bstrResult = it->second; // source is a Utf8Str
     1916        aValue = it->second; // source is a Utf8Str
    21361917
    21371918    /* return the result to caller (may be empty) */
    2138     bstrResult.cloneTo(aValue);
    21391919
    21401920    return S_OK;
     
    21441924 *  @note Locks this object for writing.
    21451925 */
    2146 STDMETHODIMP VirtualBox::SetExtraData(IN_BSTR aKey,
    2147                                       IN_BSTR aValue)
    2148 {
    2149     CheckComArgStrNotEmptyOrNull(aKey);
    2150 
    2151     AutoCaller autoCaller(this);
    2152     if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1926HRESULT VirtualBox::setExtraData(const com::Utf8Str &aKey,
     1927                                 const com::Utf8Str &aValue)
     1928{
    21531929
    21541930    Utf8Str strKey(aKey);
    21551931    Utf8Str strValue(aValue);
    21561932    Utf8Str strOldValue;            // empty
     1933    HRESULT rc = S_OK;
    21571934
    21581935    // locking note: we only hold the read lock briefly to look up the old value,
     
    21781955        // lock to copy the list of callbacks to invoke
    21791956        Bstr error;
    2180         Bstr bstrValue(aValue);
    2181 
    2182         if (!onExtraDataCanChange(Guid::Empty, aKey, bstrValue.raw(), error))
     1957
     1958        if (!i_onExtraDataCanChange(Guid::Empty, Bstr(aKey).raw(), Bstr(aValue).raw(), error))
    21831959        {
    21841960            const char *sep = error.isEmpty() ? "" : ": ";
     
    21881964            return setError(E_ACCESSDENIED,
    21891965                            tr("Could not set extra data because someone refused the requested change of '%ls' to '%ls'%s%ls"),
    2190                             aKey,
    2191                             bstrValue.raw(),
     1966                            Bstr(strKey).raw(),
     1967                            Bstr(strValue).raw(),
    21921968                            sep,
    21931969                            err);
     
    22051981
    22061982        /* save settings on success */
    2207         HRESULT rc = saveSettings();
     1983        rc = i_saveSettings();
    22081984        if (FAILED(rc)) return rc;
    22091985    }
     
    22111987    // fire notification outside the lock
    22121988    if (fChanged)
    2213         onExtraDataChange(Guid::Empty, aKey, aValue);
    2214 
     1989        i_onExtraDataChange(Guid::Empty, Bstr(aKey).raw(), Bstr(aValue).raw());
     1990
     1991    return rc;
     1992}
     1993
     1994/**
     1995 *
     1996 */
     1997HRESULT VirtualBox::setSettingsSecret(const com::Utf8Str &aPassword)
     1998{
     1999    i_storeSettingsKey(aPassword);
     2000    i_decryptSettings();
    22152001    return S_OK;
    22162002}
    22172003
    2218 /**
    2219  *
    2220  */
    2221 STDMETHODIMP VirtualBox::SetSettingsSecret(IN_BSTR aValue)
    2222 {
    2223     storeSettingsKey(aValue);
    2224     decryptSettings();
    2225     return S_OK;
    2226 }
    2227 
    2228 int VirtualBox::decryptMediumSettings(Medium *pMedium)
     2004int VirtualBox::i_decryptMediumSettings(Medium *pMedium)
    22292005{
    22302006    Bstr bstrCipher;
     
    22342010    {
    22352011        Utf8Str strPlaintext;
    2236         int rc = decryptSetting(&strPlaintext, bstrCipher);
     2012        int rc = i_decryptSetting(&strPlaintext, bstrCipher);
    22372013        if (RT_SUCCESS(rc))
    22382014            pMedium->i_setPropertyDirect("InitiatorSecret", strPlaintext);
     
    22512027 * properties need to be null-terminated strings.
    22522028 */
    2253 int VirtualBox::decryptSettings()
     2029int VirtualBox::i_decryptSettings()
    22542030{
    22552031    bool fFailure = false;
     
    22642040            continue;
    22652041        AutoWriteLock mlock(pMedium COMMA_LOCKVAL_SRC_POS);
    2266         int vrc = decryptMediumSettings(pMedium);
     2042        int vrc = i_decryptMediumSettings(pMedium);
    22672043        if (RT_FAILURE(vrc))
    22682044            fFailure = true;
     
    22772053 * @param aCiphertext     resulting ciphertext (base64-encoded)
    22782054 */
    2279 int VirtualBox::encryptSetting(const Utf8Str &aPlaintext, Utf8Str *aCiphertext)
     2055int VirtualBox::i_encryptSetting(const Utf8Str &aPlaintext, Utf8Str *aCiphertext)
    22802056{
    22812057    uint8_t abCiphertext[32];
    22822058    char    szCipherBase64[128];
    22832059    size_t  cchCipherBase64;
    2284     int rc = encryptSettingBytes((uint8_t*)aPlaintext.c_str(), abCiphertext,
     2060    int rc = i_encryptSettingBytes((uint8_t*)aPlaintext.c_str(), abCiphertext,
    22852061                                 aPlaintext.length()+1, sizeof(abCiphertext));
    22862062    if (RT_SUCCESS(rc))
     
    23012077 * @param aCiphertext     ciphertext (base64-encoded) to decrypt
    23022078 */
    2303 int VirtualBox::decryptSetting(Utf8Str *aPlaintext, const Utf8Str &aCiphertext)
     2079int VirtualBox::i_decryptSetting(Utf8Str *aPlaintext, const Utf8Str &aCiphertext)
    23042080{
    23052081    uint8_t abPlaintext[64];
     
    23112087    if (RT_SUCCESS(rc))
    23122088    {
    2313         rc = decryptSettingBytes(abPlaintext, abCiphertext, cbCiphertext);
     2089        rc = i_decryptSettingBytes(abPlaintext, abCiphertext, cbCiphertext);
    23142090        if (RT_SUCCESS(rc))
    23152091        {
     
    23412117 * @param aCiphertextSize size of the ciphertext
    23422118 */
    2343 int VirtualBox::encryptSettingBytes(const uint8_t *aPlaintext, uint8_t *aCiphertext,
     2119int VirtualBox::i_encryptSettingBytes(const uint8_t *aPlaintext, uint8_t *aCiphertext,
    23442120                                    size_t aPlaintextSize, size_t aCiphertextSize) const
    23452121{
     
    23912167 * @param aCiphertextSize size of the ciphertext == size of the plaintext
    23922168 */
    2393 int VirtualBox::decryptSettingBytes(uint8_t *aPlaintext,
    2394                                     const uint8_t *aCiphertext, size_t aCiphertextSize) const
     2169int VirtualBox::i_decryptSettingBytes(uint8_t *aPlaintext,
     2170                                      const uint8_t *aCiphertext, size_t aCiphertextSize) const
    23952171{
    23962172    unsigned i, j;
     
    24242200 * @param aKey          the key to store
    24252201 */
    2426 void VirtualBox::storeSettingsKey(const Utf8Str &aKey)
     2202void VirtualBox::i_storeSettingsKey(const Utf8Str &aKey)
    24272203{
    24282204    RTSha512(aKey.c_str(), aKey.length(), m->SettingsCipherKey);
     
    24342210
    24352211#ifdef DEBUG
    2436 void VirtualBox::dumpAllBackRefs()
     2212void VirtualBox::i_dumpAllBackRefs()
    24372213{
    24382214    {
     
    24732249 *  @note Doesn't lock any object.
    24742250 */
    2475 HRESULT VirtualBox::postEvent(Event *event)
     2251HRESULT VirtualBox::i_postEvent(Event *event)
    24762252{
    24772253    AssertReturn(event, E_FAIL);
     
    25072283 * @note Doesn't lock objects.
    25082284 */
    2509 HRESULT VirtualBox::addProgress(IProgress *aProgress)
     2285HRESULT VirtualBox::i_addProgress(IProgress *aProgress)
    25102286{
    25112287    CheckComArgNotNull(aProgress);
     
    25332309 * @note Doesn't lock objects.
    25342310 */
    2535 HRESULT VirtualBox::removeProgress(IN_GUID aId)
     2311HRESULT VirtualBox::i_removeProgress(IN_GUID aId)
    25362312{
    25372313    AutoCaller autoCaller(this);
     
    26092385 *  @note Doesn't lock anything.
    26102386 */
    2611 HRESULT VirtualBox::startSVCHelperClient(bool aPrivileged,
    2612                                          SVCHelperClientFunc aFunc,
    2613                                          void *aUser, Progress *aProgress)
     2387HRESULT VirtualBox::i_startSVCHelperClient(bool aPrivileged,
     2388                                           SVCHelperClientFunc aFunc,
     2389                                           void *aUser, Progress *aProgress)
    26142390{
    26152391    AssertReturn(aFunc, E_POINTER);
     
    27952571 *  @note Doesn't lock anything.
    27962572 */
    2797 void VirtualBox::updateClientWatcher()
     2573void VirtualBox::i_updateClientWatcher()
    27982574{
    27992575    AutoCaller autoCaller(this);
     
    28102586 *  @note Doesn't lock anything.
    28112587 */
    2812 void VirtualBox::addProcessToReap(RTPROCESS pid)
     2588void VirtualBox::i_addProcessToReap(RTPROCESS pid)
    28132589{
    28142590    AutoCaller autoCaller(this);
     
    28622638 *  @note Doesn't lock any object.
    28632639 */
    2864 void VirtualBox::onMachineStateChange(const Guid &aId, MachineState_T aState)
    2865 {
    2866     postEvent(new MachineEvent(this, VBoxEventType_OnMachineStateChanged, aId, aState));
     2640void VirtualBox::i_onMachineStateChange(const Guid &aId, MachineState_T aState)
     2641{
     2642    i_postEvent(new MachineEvent(this, VBoxEventType_OnMachineStateChanged, aId, aState));
    28672643}
    28682644
     
    28702646 *  @note Doesn't lock any object.
    28712647 */
    2872 void VirtualBox::onMachineDataChange(const Guid &aId, BOOL aTemporary)
    2873 {
    2874     postEvent(new MachineEvent(this, VBoxEventType_OnMachineDataChanged, aId, aTemporary));
     2648void VirtualBox::i_onMachineDataChange(const Guid &aId, BOOL aTemporary)
     2649{
     2650    i_postEvent(new MachineEvent(this, VBoxEventType_OnMachineDataChanged, aId, aTemporary));
    28752651}
    28762652
     
    28782654 *  @note Locks this object for reading.
    28792655 */
    2880 BOOL VirtualBox::onExtraDataCanChange(const Guid &aId, IN_BSTR aKey, IN_BSTR aValue,
    2881                                        Bstr &aError)
     2656BOOL VirtualBox::i_onExtraDataCanChange(const Guid &aId, IN_BSTR aKey, IN_BSTR aValue,
     2657                                        Bstr &aError)
    28822658{
    28832659    LogFlowThisFunc(("machine={%s} aKey={%ls} aValue={%ls}\n",
     
    29392715 *  @note Doesn't lock any object.
    29402716 */
    2941 void VirtualBox::onExtraDataChange(const Guid &aId, IN_BSTR aKey, IN_BSTR aValue)
    2942 {
    2943     postEvent(new ExtraDataEvent(this, aId, aKey, aValue));
     2717void VirtualBox::i_onExtraDataChange(const Guid &aId, IN_BSTR aKey, IN_BSTR aValue)
     2718{
     2719    i_postEvent(new ExtraDataEvent(this, aId, aKey, aValue));
    29442720}
    29452721
     
    29472723 *  @note Doesn't lock any object.
    29482724 */
    2949 void VirtualBox::onMachineRegistered(const Guid &aId, BOOL aRegistered)
    2950 {
    2951     postEvent(new MachineEvent(this, VBoxEventType_OnMachineRegistered, aId, aRegistered));
     2725void VirtualBox::i_onMachineRegistered(const Guid &aId, BOOL aRegistered)
     2726{
     2727    i_postEvent(new MachineEvent(this, VBoxEventType_OnMachineRegistered, aId, aRegistered));
    29522728}
    29532729
     
    29712747 *  @note Doesn't lock any object.
    29722748 */
    2973 void VirtualBox::onSessionStateChange(const Guid &aId, SessionState_T aState)
    2974 {
    2975     postEvent(new SessionEvent(this, aId, aState));
     2749void VirtualBox::i_onSessionStateChange(const Guid &aId, SessionState_T aState)
     2750{
     2751    i_postEvent(new SessionEvent(this, aId, aState));
    29762752}
    29772753
     
    29982774 *  @note Doesn't lock any object.
    29992775 */
    3000 void VirtualBox::onSnapshotTaken(const Guid &aMachineId, const Guid &aSnapshotId)
    3001 {
    3002     postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
     2776void VirtualBox::i_onSnapshotTaken(const Guid &aMachineId, const Guid &aSnapshotId)
     2777{
     2778    i_postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
    30032779                                VBoxEventType_OnSnapshotTaken));
    30042780}
     
    30072783 *  @note Doesn't lock any object.
    30082784 */
    3009 void VirtualBox::onSnapshotDeleted(const Guid &aMachineId, const Guid &aSnapshotId)
    3010 {
    3011     postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
     2785void VirtualBox::i_onSnapshotDeleted(const Guid &aMachineId, const Guid &aSnapshotId)
     2786{
     2787    i_postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
    30122788                                VBoxEventType_OnSnapshotDeleted));
    30132789}
     
    30162792 *  @note Doesn't lock any object.
    30172793 */
    3018 void VirtualBox::onSnapshotChange(const Guid &aMachineId, const Guid &aSnapshotId)
    3019 {
    3020     postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
     2794void VirtualBox::i_onSnapshotChange(const Guid &aMachineId, const Guid &aSnapshotId)
     2795{
     2796    i_postEvent(new SnapshotEvent(this, aMachineId, aSnapshotId,
    30212797                                VBoxEventType_OnSnapshotChanged));
    30222798}
     
    30472823 *  @note Doesn't lock any object.
    30482824 */
    3049 void VirtualBox::onGuestPropertyChange(const Guid &aMachineId, IN_BSTR aName,
    3050                                        IN_BSTR aValue, IN_BSTR aFlags)
    3051 {
    3052     postEvent(new GuestPropertyEvent(this, aMachineId, aName, aValue, aFlags));
     2825void VirtualBox::i_onGuestPropertyChange(const Guid &aMachineId, IN_BSTR aName,
     2826                                         IN_BSTR aValue, IN_BSTR aFlags)
     2827{
     2828    i_postEvent(new GuestPropertyEvent(this, aMachineId, aName, aValue, aFlags));
    30532829}
    30542830
     
    30562832 *  @note Doesn't lock any object.
    30572833 */
    3058 void VirtualBox::onNatRedirectChange(const Guid &aMachineId, ULONG ulSlot, bool fRemove, IN_BSTR aName,
    3059                                NATProtocol_T aProto, IN_BSTR aHostIp, uint16_t aHostPort,
    3060                                IN_BSTR aGuestIp, uint16_t aGuestPort)
     2834void VirtualBox::i_onNatRedirectChange(const Guid &aMachineId, ULONG ulSlot, bool fRemove, IN_BSTR aName,
     2835                                       NATProtocol_T aProto, IN_BSTR aHostIp, uint16_t aHostPort,
     2836                                       IN_BSTR aGuestIp, uint16_t aGuestPort)
    30612837{
    30622838    fireNATRedirectEvent(m->pEventSource, aMachineId.toUtf16().raw(), ulSlot, fRemove, aName, aProto, aHostIp,
     
    30642840}
    30652841
    3066 void VirtualBox::onNATNetworkChange(IN_BSTR aName)
     2842void VirtualBox::i_onNATNetworkChange(IN_BSTR aName)
    30672843{
    30682844    fireNATNetworkChangedEvent(m->pEventSource, aName);
    30692845}
    30702846
    3071 void VirtualBox::onNATNetworkStartStop(IN_BSTR aName, BOOL fStart)
     2847void VirtualBox::i_onNATNetworkStartStop(IN_BSTR aName, BOOL fStart)
    30722848{
    30732849    fireNATNetworkStartStopEvent(m->pEventSource, aName, fStart);
    30742850}
    3075 void VirtualBox::onNATNetworkSetting(IN_BSTR aNetworkName, BOOL aEnabled,
    3076                                      IN_BSTR aNetwork, IN_BSTR aGateway,
    3077                                      BOOL aAdvertiseDefaultIpv6RouteEnabled,
    3078                                      BOOL fNeedDhcpServer)
     2851
     2852void VirtualBox::i_onNATNetworkSetting(IN_BSTR aNetworkName, BOOL aEnabled,
     2853                                       IN_BSTR aNetwork, IN_BSTR aGateway,
     2854                                       BOOL aAdvertiseDefaultIpv6RouteEnabled,
     2855                                       BOOL fNeedDhcpServer)
    30792856{
    30802857    fireNATNetworkSettingEvent(m->pEventSource, aNetworkName, aEnabled,
     
    30832860}
    30842861
    3085 void VirtualBox::onNATNetworkPortForward(IN_BSTR aNetworkName, BOOL create, BOOL fIpv6,
    3086                                          IN_BSTR aRuleName, NATProtocol_T proto,
    3087                                          IN_BSTR aHostIp, LONG aHostPort,
    3088                                          IN_BSTR aGuestIp, LONG aGuestPort)
     2862void VirtualBox::i_onNATNetworkPortForward(IN_BSTR aNetworkName, BOOL create, BOOL fIpv6,
     2863                                           IN_BSTR aRuleName, NATProtocol_T proto,
     2864                                           IN_BSTR aHostIp, LONG aHostPort,
     2865                                           IN_BSTR aGuestIp, LONG aGuestPort)
    30892866{
    30902867    fireNATNetworkPortForwardEvent(m->pEventSource, aNetworkName, create,
     
    30952872
    30962873
    3097 void VirtualBox::onHostNameResolutionConfigurationChange()
     2874void VirtualBox::i_onHostNameResolutionConfigurationChange()
    30982875{
    30992876    if (m->pEventSource)
     
    31022879
    31032880
    3104 int VirtualBox::natNetworkRefInc(IN_BSTR aNetworkName)
     2881int VirtualBox::i_natNetworkRefInc(IN_BSTR aNetworkName)
    31052882{
    31062883    AutoWriteLock safeLock(*spMtxNatNetworkNameToRefCountLock COMMA_LOCKVAL_SRC_POS);
     
    31272904
    31282905
    3129 int VirtualBox::natNetworkRefDec(IN_BSTR aNetworkName)
     2906int VirtualBox::i_natNetworkRefDec(IN_BSTR aNetworkName)
    31302907{
    31312908    AutoWriteLock safeLock(*spMtxNatNetworkNameToRefCountLock COMMA_LOCKVAL_SRC_POS);
     
    31582935 *  @note Locks this object for reading.
    31592936 */
    3160 ComObjPtr<GuestOSType> VirtualBox::getUnknownOSType()
     2937ComObjPtr<GuestOSType> VirtualBox::i_getUnknownOSType()
    31612938{
    31622939    ComObjPtr<GuestOSType> type;
     
    31862963 * @note Locks objects for reading.
    31872964 */
    3188 void VirtualBox::getOpenedMachines(SessionMachinesList &aMachines,
    3189                                    InternalControlList *aControls /*= NULL*/)
     2965void VirtualBox::i_getOpenedMachines(SessionMachinesList &aMachines,
     2966                                     InternalControlList *aControls /*= NULL*/)
    31902967{
    31912968    AutoCaller autoCaller(this);
     
    32212998 * @note Caller must hold the VirtualBox object lock at least for reading.
    32222999 */
    3223 VirtualBox::MachinesOList &VirtualBox::getMachinesList(void)
     3000VirtualBox::MachinesOList &VirtualBox::i_getMachinesList(void)
    32243001{
    32253002    return m->allMachines;
     
    32373014 * @return
    32383015 */
    3239 HRESULT VirtualBox::findMachine(const Guid &aId,
    3240                                 bool fPermitInaccessible,
    3241                                 bool aSetError,
    3242                                 ComObjPtr<Machine> *aMachine /* = NULL */)
     3016HRESULT VirtualBox::i_findMachine(const Guid &aId,
     3017                                  bool fPermitInaccessible,
     3018                                  bool aSetError,
     3019                                  ComObjPtr<Machine> *aMachine /* = NULL */)
    32433020{
    32443021    HRESULT rc = VBOX_E_OBJECT_NOT_FOUND;
     
    32913068 * @return
    32923069 */
    3293 HRESULT VirtualBox::findMachineByName(const Utf8Str &aName, bool aSetError,
    3294                                       ComObjPtr<Machine> *aMachine /* = NULL */)
     3070HRESULT VirtualBox::i_findMachineByName(const Utf8Str &aName,
     3071                                        bool  aSetError,
     3072                                        ComObjPtr<Machine> *aMachine /* = NULL */)
    32953073{
    32963074    HRESULT rc = VBOX_E_OBJECT_NOT_FOUND;
     
    33303108}
    33313109
    3332 static HRESULT validateMachineGroupHelper(const Utf8Str &aGroup, bool fPrimary, VirtualBox *pVirtualBox)
     3110static HRESULT i_validateMachineGroupHelper(const Utf8Str &aGroup, bool fPrimary, VirtualBox *pVirtualBox)
    33333111{
    33343112    /* empty strings are invalid */
     
    33663144            if (fPrimary)
    33673145            {
    3368                 HRESULT rc = pVirtualBox->findMachineByName(tmp,
    3369                                                             false /* aSetError */);
     3146                HRESULT rc = pVirtualBox->i_findMachineByName(tmp,
     3147                                                              false /* aSetError */);
    33703148                if (SUCCEEDED(rc))
    33713149                    return VBOX_E_VM_ERROR;
     
    33963174 * @return S_OK or E_INVALIDARG
    33973175 */
    3398 HRESULT VirtualBox::validateMachineGroup(const Utf8Str &aGroup, bool fPrimary)
    3399 {
    3400     HRESULT rc = validateMachineGroupHelper(aGroup, fPrimary, this);
     3176HRESULT VirtualBox::i_validateMachineGroup(const Utf8Str &aGroup, bool fPrimary)
     3177{
     3178    HRESULT rc = i_validateMachineGroupHelper(aGroup, fPrimary, this);
    34013179    if (FAILED(rc))
    34023180    {
     
    34213199 * @return S_OK or E_INVALIDARG
    34223200 */
    3423 HRESULT VirtualBox::convertMachineGroups(ComSafeArrayIn(IN_BSTR, aMachineGroups), StringsList *pllMachineGroups)
     3201HRESULT VirtualBox::i_convertMachineGroups(const std::vector<com::Utf8Str> aMachineGroups, StringsList *pllMachineGroups)
    34243202{
    34253203    pllMachineGroups->clear();
    3426     if (aMachineGroups)
    3427     {
    3428         com::SafeArray<IN_BSTR> machineGroups(ComSafeArrayInArg(aMachineGroups));
    3429         for (size_t i = 0; i < machineGroups.size(); i++)
    3430         {
    3431             Utf8Str group(machineGroups[i]);
     3204    if (aMachineGroups.size())
     3205    {
     3206        for (size_t i = 0; i < aMachineGroups.size(); i++)
     3207        {
     3208            Utf8Str group(aMachineGroups[i]);
    34323209            if (group.length() == 0)
    34333210                group = "/";
    34343211
    3435             HRESULT rc = validateMachineGroup(group, i == 0);
     3212            HRESULT rc = i_validateMachineGroup(group, i == 0);
    34363213            if (FAILED(rc))
    34373214                return rc;
     
    34643241 * @note Locks the media tree for reading.
    34653242 */
    3466 HRESULT VirtualBox::findHardDiskById(const Guid &id,
    3467                                      bool aSetError,
    3468                                      ComObjPtr<Medium> *aHardDisk /*= NULL*/)
     3243HRESULT VirtualBox::i_findHardDiskById(const Guid &id,
     3244                                       bool aSetError,
     3245                                       ComObjPtr<Medium> *aHardDisk /*= NULL*/)
    34693246{
    34703247    AssertReturn(!id.isZero(), E_INVALIDARG);
     
    35043281 * @note Locks the media tree for reading.
    35053282 */
    3506 HRESULT VirtualBox::findHardDiskByLocation(const Utf8Str &strLocation,
    3507                                            bool aSetError,
    3508                                            ComObjPtr<Medium> *aHardDisk /*= NULL*/)
     3283HRESULT VirtualBox::i_findHardDiskByLocation(const Utf8Str &strLocation,
     3284                                             bool aSetError,
     3285                                             ComObjPtr<Medium> *aHardDisk /*= NULL*/)
    35093286{
    35103287    AssertReturn(!strLocation.isEmpty(), E_INVALIDARG);
     
    35593336 * @note Locks the media tree for reading.
    35603337 */
    3561 HRESULT VirtualBox::findDVDOrFloppyImage(DeviceType_T mediumType,
    3562                                          const Guid *aId,
    3563                                          const Utf8Str &aLocation,
    3564                                          bool aSetError,
    3565                                          ComObjPtr<Medium> *aImage /* = NULL */)
     3338HRESULT VirtualBox::i_findDVDOrFloppyImage(DeviceType_T mediumType,
     3339                                           const Guid *aId,
     3340                                           const Utf8Str &aLocation,
     3341                                           bool aSetError,
     3342                                           ComObjPtr<Medium> *aImage /* = NULL */)
    35663343{
    35673344    AssertReturn(aId || !aLocation.isEmpty(), E_INVALIDARG);
     
    35703347    if (!aLocation.isEmpty())
    35713348    {
    3572         int vrc = calculateFullPath(aLocation, location);
     3349        int vrc = i_calculateFullPath(aLocation, location);
    35733350        if (RT_FAILURE(vrc))
    35743351            return setError(VBOX_E_FILE_ERROR,
     
    36693446 * @return
    36703447 */
    3671 HRESULT VirtualBox::findRemoveableMedium(DeviceType_T mediumType,
    3672                                          const Guid &uuid,
    3673                                          bool fRefresh,
    3674                                          bool aSetError,
    3675                                          ComObjPtr<Medium> &pMedium)
     3448HRESULT VirtualBox::i_findRemoveableMedium(DeviceType_T mediumType,
     3449                                           const Guid &uuid,
     3450                                           bool fRefresh,
     3451                                           bool aSetError,
     3452                                           ComObjPtr<Medium> &pMedium)
    36763453{
    36773454    if (uuid.isZero())
     
    36963473    if (rc == VBOX_E_OBJECT_NOT_FOUND)
    36973474                // then search for an image with that UUID
    3698         rc = findDVDOrFloppyImage(mediumType, &uuid, Utf8Str::Empty, aSetError, &pMedium);
     3475        rc = i_findDVDOrFloppyImage(mediumType, &uuid, Utf8Str::Empty, aSetError, &pMedium);
    36993476
    37003477    return rc;
    37013478}
    37023479
    3703 HRESULT VirtualBox::findGuestOSType(const Bstr &bstrOSType,
    3704                                     GuestOSType*& pGuestOSType)
     3480HRESULT VirtualBox::i_findGuestOSType(const Bstr &bstrOSType,
     3481                                      GuestOSType*& pGuestOSType)
    37053482{
    37063483    /* Look for a GuestOSType object */
     
    37443521 * @return
    37453522 */
    3746 const Guid& VirtualBox::getGlobalRegistryId() const
     3523const Guid& VirtualBox::i_getGlobalRegistryId() const
    37473524{
    37483525    return m->uuidMediaRegistry;
    37493526}
    37503527
    3751 const ComObjPtr<Host>& VirtualBox::host() const
     3528const ComObjPtr<Host>& VirtualBox::i_host() const
    37523529{
    37533530    return m->pHost;
    37543531}
    37553532
    3756 SystemProperties* VirtualBox::getSystemProperties() const
     3533SystemProperties* VirtualBox::i_getSystemProperties() const
    37573534{
    37583535    return m->pSystemProperties;
     
    37643541 * pack manager.
    37653542 */
    3766 ExtPackManager* VirtualBox::getExtPackManager() const
     3543ExtPackManager* VirtualBox::i_getExtPackManager() const
    37673544{
    37683545    return m->ptrExtPackManager;
     
    37733550 * Getter that machines can talk to the autostart database.
    37743551 */
    3775 AutostartDb* VirtualBox::getAutostartDb() const
     3552AutostartDb* VirtualBox::i_getAutostartDb() const
    37763553{
    37773554    return m->pAutostartDb;
     
    37793556
    37803557#ifdef VBOX_WITH_RESOURCE_USAGE_API
    3781 const ComObjPtr<PerformanceCollector>& VirtualBox::performanceCollector() const
     3558const ComObjPtr<PerformanceCollector>& VirtualBox::i_performanceCollector() const
    37823559{
    37833560    return m->pPerformanceCollector;
     
    37903567 * @return
    37913568 */
    3792 void VirtualBox::getDefaultMachineFolder(Utf8Str &str) const
     3569void VirtualBox::i_getDefaultMachineFolder(Utf8Str &str) const
    37933570{
    37943571    AutoReadLock propsLock(m->pSystemProperties COMMA_LOCKVAL_SRC_POS);
     
    38013578 * @return
    38023579 */
    3803 void VirtualBox::getDefaultHardDiskFormat(Utf8Str &str) const
     3580void VirtualBox::i_getDefaultHardDiskFormat(Utf8Str &str) const
    38043581{
    38053582    AutoReadLock propsLock(m->pSystemProperties COMMA_LOCKVAL_SRC_POS);
     
    38073584}
    38083585
    3809 const Utf8Str& VirtualBox::homeDir() const
     3586const Utf8Str& VirtualBox::i_homeDir() const
    38103587{
    38113588    return m->strHomeDir;
     
    38233600 * @note Doesn't lock any object.
    38243601 */
    3825 int VirtualBox::calculateFullPath(const Utf8Str &strPath, Utf8Str &aResult)
     3602int VirtualBox::i_calculateFullPath(const Utf8Str &strPath, Utf8Str &aResult)
    38263603{
    38273604    AutoCaller autoCaller(this);
     
    38483625 * @param strTarget Buffer to receive target path.
    38493626 */
    3850 void VirtualBox::copyPathRelativeToConfig(const Utf8Str &strSource,
    3851                                           Utf8Str &strTarget)
     3627void VirtualBox::i_copyPathRelativeToConfig(const Utf8Str &strSource,
     3628                                            Utf8Str &strTarget)
    38523629{
    38533630    AutoCaller autoCaller(this);
     
    38843661 * @note Locks the media tree and media objects for reading.
    38853662 */
    3886 HRESULT VirtualBox::checkMediaForConflicts(const Guid &aId,
    3887                                            const Utf8Str &aLocation,
    3888                                            Utf8Str &aConflict,
    3889                                            ComObjPtr<Medium> *ppMedium)
     3663HRESULT VirtualBox::i_checkMediaForConflicts(const Guid &aId,
     3664                                             const Utf8Str &aLocation,
     3665                                             Utf8Str &aConflict,
     3666                                             ComObjPtr<Medium> *ppMedium)
    38903667{
    38913668    AssertReturn(!aId.isZero() && !aLocation.isEmpty(), E_FAIL);
     
    38953672    ppMedium->setNull();
    38963673
    3897     AutoReadLock alock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3674    AutoReadLock alock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    38983675
    38993676    HRESULT rc = S_OK;
     
    39033680
    39043681    if (aId.isValid() && !aId.isZero())
    3905         rc = findHardDiskById(aId, false /* aSetError */, &pMediumFound);
     3682        rc = i_findHardDiskById(aId, false /* aSetError */, &pMediumFound);
    39063683    if (FAILED(rc) && !aLocation.isEmpty())
    3907         rc = findHardDiskByLocation(aLocation, false /* aSetError */, &pMediumFound);
     3684        rc = i_findHardDiskByLocation(aLocation, false /* aSetError */, &pMediumFound);
    39083685    if (SUCCEEDED(rc))
    39093686        pcszType = tr("hard disk");
     
    39113688    if (!pcszType)
    39123689    {
    3913         rc = findDVDOrFloppyImage(DeviceType_DVD, &aId, aLocation, false /* aSetError */, &pMediumFound);
     3690        rc = i_findDVDOrFloppyImage(DeviceType_DVD, &aId, aLocation, false /* aSetError */, &pMediumFound);
    39143691        if (SUCCEEDED(rc))
    39153692            pcszType = tr("CD/DVD image");
     
    39183695    if (!pcszType)
    39193696    {
    3920         rc = findDVDOrFloppyImage(DeviceType_Floppy, &aId, aLocation, false /* aSetError */, &pMediumFound);
     3697        rc = i_findDVDOrFloppyImage(DeviceType_Floppy, &aId, aLocation, false /* aSetError */, &pMediumFound);
    39213698        if (SUCCEEDED(rc))
    39223699            pcszType = tr("floppy image");
     
    39553732 *                        conflicts.
    39563733 */
    3957 bool VirtualBox::isMediaUuidInUse(const Guid &aId, DeviceType_T deviceType)
     3734bool VirtualBox::i_isMediaUuidInUse(const Guid &aId, DeviceType_T deviceType)
    39583735{
    39593736    /* A zero UUID is invalid here, always claim that it is already used. */
    39603737    AssertReturn(!aId.isZero(), true);
    39613738
    3962     AutoReadLock alock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3739    AutoReadLock alock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    39633740
    39643741    HRESULT rc = S_OK;
     
    39703747    {
    39713748        case DeviceType_HardDisk:
    3972             rc = findHardDiskById(aId, false /* aSetError */, &pMediumFound);
     3749            rc = i_findHardDiskById(aId, false /* aSetError */, &pMediumFound);
    39733750            break;
    39743751        case DeviceType_DVD:
    3975             rc = findDVDOrFloppyImage(DeviceType_DVD, &aId, Utf8Str::Empty, false /* aSetError */, &pMediumFound);
     3752            rc = i_findDVDOrFloppyImage(DeviceType_DVD, &aId, Utf8Str::Empty, false /* aSetError */, &pMediumFound);
    39763753            break;
    39773754        case DeviceType_Floppy:
    3978             rc = findDVDOrFloppyImage(DeviceType_Floppy, &aId, Utf8Str::Empty, false /* aSetError */, &pMediumFound);
     3755            rc = i_findDVDOrFloppyImage(DeviceType_Floppy, &aId, Utf8Str::Empty, false /* aSetError */, &pMediumFound);
    39793756            break;
    39803757        default:
     
    40023779 * VirtualBox::saveSettings() can process them properly.
    40033780 */
    4004 void VirtualBox::rememberMachineNameChangeForMedia(const Utf8Str &strOldConfigDir,
    4005                                                    const Utf8Str &strNewConfigDir)
    4006 {
    4007     AutoWriteLock mediaLock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3781void VirtualBox::i_rememberMachineNameChangeForMedia(const Utf8Str &strOldConfigDir,
     3782                                                     const Utf8Str &strNewConfigDir)
     3783{
     3784    AutoWriteLock mediaLock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    40083785
    40093786    Data::PendingMachineRename pmr;
     
    40373814    }
    40383815
    4039     pDesc->pVirtualBox->saveModifiedRegistries();
     3816    pDesc->pVirtualBox->i_saveModifiedRegistries();
    40403817
    40413818    pDesc->llMedia.clear();
     
    40753852 * @param strMachineFolder The machine folder for relative paths, if machine registry, or an empty string otherwise.
    40763853 */
    4077 void VirtualBox::saveMediaRegistry(settings::MediaRegistry &mediaRegistry,
    4078                                    const Guid &uuidRegistry,
    4079                                    const Utf8Str &strMachineFolder)
     3854void VirtualBox::i_saveMediaRegistry(settings::MediaRegistry &mediaRegistry,
     3855                                     const Guid &uuidRegistry,
     3856                                     const Utf8Str &strMachineFolder)
    40803857{
    40813858    // lock all media for the following; use a write lock because we're
    40823859    // modifying the PendingMachineRenamesList, which is protected by this
    4083     AutoWriteLock mediaLock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     3860    AutoWriteLock mediaLock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    40843861
    40853862    // if a machine was renamed, then we'll need to refresh media paths
     
    41993976 *    which could cause conflicts.
    42003977 */
    4201 HRESULT VirtualBox::saveSettings()
     3978HRESULT VirtualBox::i_saveSettings()
    42023979{
    42033980    AutoCaller autoCaller(this);
     
    42274004        }
    42284005
    4229         saveMediaRegistry(m->pMainConfigFile->mediaRegistry,
    4230                           m->uuidMediaRegistry,         // global media registry ID
    4231                           Utf8Str::Empty);              // strMachineFolder
     4006        i_saveMediaRegistry(m->pMainConfigFile->mediaRegistry,
     4007                            m->uuidMediaRegistry,         // global media registry ID
     4008                            Utf8Str::Empty);              // strMachineFolder
    42324009
    42334010        m->pMainConfigFile->llDhcpServers.clear();
     
    43024079 *  @note Locks objects!
    43034080 */
    4304 HRESULT VirtualBox::registerMachine(Machine *aMachine)
     4081HRESULT VirtualBox::i_registerMachine(Machine *aMachine)
    43054082{
    43064083    ComAssertRet(aMachine, E_INVALIDARG);
     
    43154092    {
    43164093        ComObjPtr<Machine> pMachine;
    4317         rc = findMachine(aMachine->getId(),
    4318                          true /* fPermitInaccessible */,
    4319                          false /* aDoSetError */,
    4320                          &pMachine);
     4094        rc = i_findMachine(aMachine->getId(),
     4095                           true /* fPermitInaccessible */,
     4096                           false /* aDoSetError */,
     4097                           &pMachine);
    43214098        if (SUCCEEDED(rc))
    43224099        {
     
    43454122
    43464123    if (autoCaller.state() != InInit)
    4347         rc = saveSettings();
     4124        rc = i_saveSettings();
    43484125
    43494126    return rc;
     
    43644141 * @return
    43654142 */
    4366 HRESULT VirtualBox::registerMedium(const ComObjPtr<Medium> &pMedium,
    4367                                    ComObjPtr<Medium> *ppMedium,
    4368                                    DeviceType_T argType)
     4143HRESULT VirtualBox::i_registerMedium(const ComObjPtr<Medium> &pMedium,
     4144                                     ComObjPtr<Medium> *ppMedium,
     4145                                     DeviceType_T argType)
    43694146{
    43704147    AssertReturn(pMedium != NULL, E_INVALIDARG);
     
    43984175
    43994176    // caller must hold the media tree write lock
    4400     Assert(getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     4177    Assert(i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    44014178
    44024179    Guid id;
     
    44144191    Utf8Str strConflict;
    44154192    ComObjPtr<Medium> pDupMedium;
    4416     rc = checkMediaForConflicts(id,
    4417                                 strLocationFull,
    4418                                 strConflict,
    4419                                 &pDupMedium);
     4193    rc = i_checkMediaForConflicts(id,
     4194                                  strLocationFull,
     4195                                  strConflict,
     4196                                  &pDupMedium);
    44204197    if (FAILED(rc)) return rc;
    44214198
     
    44614238 * @note Caller must hold the media tree lock for writing; in addition, this locks @a pMedium for reading
    44624239 */
    4463 HRESULT VirtualBox::unregisterMedium(Medium *pMedium)
     4240HRESULT VirtualBox::i_unregisterMedium(Medium *pMedium)
    44644241{
    44654242    AssertReturn(pMedium != NULL, E_INVALIDARG);
     
    44724249
    44734250    // caller must hold the media tree write lock
    4474     Assert(getMediaTreeLockHandle().isWriteLockOnCurrentThread());
     4251    Assert(i_getMediaTreeLockHandle().isWriteLockOnCurrentThread());
    44754252
    44764253    Guid id;
     
    45214298 * @param pMedium
    45224299 */
    4523 void VirtualBox::pushMediumToListWithChildren(MediaList &llMedia, Medium *pMedium)
     4300void VirtualBox::i_pushMediumToListWithChildren(MediaList &llMedia, Medium *pMedium)
    45244301{
    45254302    // recurse first, then add ourselves; this way children end up on the
     
    45324309    {
    45334310        Medium *pChild = *it;
    4534         pushMediumToListWithChildren(llMedia, pChild);
     4311        i_pushMediumToListWithChildren(llMedia, pChild);
    45354312    }
    45364313
     
    45494326 * @return
    45504327 */
    4551 HRESULT VirtualBox::unregisterMachineMedia(const Guid &uuidMachine)
     4328HRESULT VirtualBox::i_unregisterMachineMedia(const Guid &uuidMachine)
    45524329{
    45534330    Assert(!uuidMachine.isZero() && uuidMachine.isValid());
     
    45614338
    45624339    {
    4563         AutoWriteLock tlock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     4340        AutoWriteLock tlock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    45644341
    45654342        for (MediaOList::iterator it = m->allHardDisks.getList().begin();
     
    45744351            if (pMedium->i_isInRegistry(uuidMachine))
    45754352                // recursively with children first
    4576                 pushMediumToListWithChildren(llMedia2Close, pMedium);
     4353                i_pushMediumToListWithChildren(llMedia2Close, pMedium);
    45774354        }
    45784355    }
     
    46004377 * @return
    46014378 */
    4602 HRESULT VirtualBox::unregisterMachine(Machine *pMachine,
    4603                                       const Guid &id)
     4379HRESULT VirtualBox::i_unregisterMachine(Machine *pMachine,
     4380                                        const Guid &id)
    46044381{
    46054382    // remove from the collection of registered machines
     
    46074384    m->allMachines.removeChild(pMachine);
    46084385    // save the global registry
    4609     HRESULT rc = saveSettings();
     4386    HRESULT rc = i_saveSettings();
    46104387    alock.release();
    46114388
     
    46224399     */
    46234400    {
    4624         AutoReadLock tlock(getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
     4401        AutoReadLock tlock(i_getMediaTreeLockHandle() COMMA_LOCKVAL_SRC_POS);
    46254402        // iterate over the list of *base* images
    46264403        for (MediaOList::iterator it = m->allHardDisks.getList().begin();
     
    46464423                    mlock.release();
    46474424                    tlock.release();
    4648                     markRegistryModified(*puuidBetter);
     4425                    i_markRegistryModified(*puuidBetter);
    46494426                    tlock.acquire();
    46504427                    mlock.release();
     
    46544431    }
    46554432
    4656     saveModifiedRegistries();
     4433    i_saveModifiedRegistries();
    46574434
    46584435    /* fire an event */
    4659     onMachineRegistered(id, FALSE);
     4436    i_onMachineRegistered(id, FALSE);
    46604437
    46614438    return rc;
     
    46684445 * @param uuid
    46694446 */
    4670 void VirtualBox::markRegistryModified(const Guid &uuid)
    4671 {
    4672     if (uuid == getGlobalRegistryId())
     4447void VirtualBox::i_markRegistryModified(const Guid &uuid)
     4448{
     4449    if (uuid == i_getGlobalRegistryId())
    46734450        ASMAtomicIncU64(&m->uRegistryNeedsSaving);
    46744451    else
    46754452    {
    46764453        ComObjPtr<Machine> pMachine;
    4677         HRESULT rc = findMachine(uuid,
    4678                                  false /* fPermitInaccessible */,
    4679                                  false /* aSetError */,
    4680                                  &pMachine);
     4454        HRESULT rc = i_findMachine(uuid,
     4455                                   false /* fPermitInaccessible */,
     4456                                   false /* aSetError */,
     4457                                   &pMachine);
    46814458        if (SUCCEEDED(rc))
    46824459        {
     
    46974474 * @return
    46984475 */
    4699 void VirtualBox::saveModifiedRegistries()
     4476void VirtualBox::i_saveModifiedRegistries()
    47004477{
    47014478    HRESULT rc = S_OK;
     
    47474524    {
    47484525        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
    4749         rc = saveSettings();
     4526        rc = i_saveSettings();
    47504527    }
    47514528    NOREF(rc); /* XXX */
     
    47544531
    47554532/* static */
    4756 const Bstr &VirtualBox::getVersionNormalized()
     4533const com::Utf8Str &VirtualBox::i_getVersionNormalized()
    47574534{
    47584535    return sVersionNormalized;
     
    47734550 */
    47744551/* static */
    4775 HRESULT VirtualBox::ensureFilePathExists(const Utf8Str &strFileName, bool fCreate)
     4552HRESULT VirtualBox::i_ensureFilePathExists(const Utf8Str &strFileName, bool fCreate)
    47764553{
    47774554    Utf8Str strDir(strFileName);
     
    47834560            int vrc = RTDirCreateFullPath(strDir.c_str(), 0700);
    47844561            if (RT_FAILURE(vrc))
    4785                 return setErrorStatic(VBOX_E_IPRT_ERROR,
    4786                                       Utf8StrFmt(tr("Could not create the directory '%s' (%Rrc)"),
    4787                                                  strDir.c_str(),
    4788                                                  vrc));
     4562                return i_setErrorStatic(VBOX_E_IPRT_ERROR,
     4563                                        Utf8StrFmt(tr("Could not create the directory '%s' (%Rrc)"),
     4564                                                   strDir.c_str(),
     4565                                                   vrc));
    47894566        }
    47904567        else
    4791             return setErrorStatic(VBOX_E_IPRT_ERROR,
    4792                                   Utf8StrFmt(tr("Directory '%s' does not exist"),
    4793                                              strDir.c_str()));
     4568            return i_setErrorStatic(VBOX_E_IPRT_ERROR,
     4569                                    Utf8StrFmt(tr("Directory '%s' does not exist"),
     4570                                               strDir.c_str()));
    47944571    }
    47954572
     
    47974574}
    47984575
    4799 const Utf8Str& VirtualBox::settingsFilePath()
     4576const Utf8Str& VirtualBox::i_settingsFilePath()
    48004577{
    48014578    return m->strSettingsFilePath;
     
    48094586 * before the locks of any machine object. See AutoLock.h.
    48104587 */
    4811 RWLockHandle& VirtualBox::getMachinesListLockHandle()
     4588RWLockHandle& VirtualBox::i_getMachinesListLockHandle()
    48124589{
    48134590    return m->lockMachines;
     
    48224599 * objects contained in these lists. See AutoLock.h.
    48234600 */
    4824 RWLockHandle& VirtualBox::getMediaTreeLockHandle()
     4601RWLockHandle& VirtualBox::i_getMediaTreeLockHandle()
    48254602{
    48264603    return m->lockMedia;
     
    49284705//}
    49294706
    4930 STDMETHODIMP VirtualBox::CreateDHCPServer(IN_BSTR aName, IDHCPServer ** aServer)
    4931 {
    4932     CheckComArgStrNotEmptyOrNull(aName);
    4933     CheckComArgNotNull(aServer);
    4934 
    4935     AutoCaller autoCaller(this);
    4936     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    4937 
     4707HRESULT VirtualBox::createDHCPServer(const com::Utf8Str &aName,
     4708                                     ComPtr<IDHCPServer> &aServer)
     4709{
    49384710    ComObjPtr<DHCPServer> dhcpServer;
    49394711    dhcpServer.createObject();
    4940     HRESULT rc = dhcpServer->init(this, aName);
     4712    HRESULT rc = dhcpServer->init(this, Bstr(aName).raw());
    49414713    if (FAILED(rc)) return rc;
    49424714
    4943     rc = registerDHCPServer(dhcpServer, true);
     4715    rc = i_registerDHCPServer(dhcpServer, true);
    49444716    if (FAILED(rc)) return rc;
    49454717
    4946     dhcpServer.queryInterfaceTo(aServer);
     4718    dhcpServer.queryInterfaceTo(aServer.asOutParam());
    49474719
    49484720    return rc;
    49494721}
    49504722
    4951 STDMETHODIMP VirtualBox::FindDHCPServerByNetworkName(IN_BSTR aName, IDHCPServer ** aServer)
    4952 {
    4953     CheckComArgStrNotEmptyOrNull(aName);
    4954     CheckComArgNotNull(aServer);
    4955 
    4956     AutoCaller autoCaller(this);
    4957     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    4958 
    4959     HRESULT rc;
     4723HRESULT VirtualBox::findDHCPServerByNetworkName(const com::Utf8Str &aName,
     4724                                                ComPtr<IDHCPServer> &aServer)
     4725{
     4726    HRESULT rc = S_OK;
    49604727    Bstr bstr;
    49614728    ComPtr<DHCPServer> found;
     
    49704737        if (FAILED(rc)) return rc;
    49714738
    4972         if (bstr == aName)
     4739        if (bstr == Bstr(aName).raw())
    49734740        {
    49744741            found = *it;
     
    49804747        return E_INVALIDARG;
    49814748
    4982     return found.queryInterfaceTo(aServer);
    4983 }
    4984 
    4985 STDMETHODIMP VirtualBox::RemoveDHCPServer(IDHCPServer * aServer)
    4986 {
    4987     CheckComArgNotNull(aServer);
    4988 
    4989     AutoCaller autoCaller(this);
    4990     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    4991 
    4992     HRESULT rc = unregisterDHCPServer(static_cast<DHCPServer *>(aServer), true);
     4749    rc = found.queryInterfaceTo(aServer.asOutParam());
     4750
     4751    return rc;
     4752}
     4753
     4754HRESULT VirtualBox::removeDHCPServer(const ComPtr<IDHCPServer> &aServer)
     4755{
     4756    IDHCPServer *aP = aServer;
     4757
     4758    HRESULT rc = i_unregisterDHCPServer(static_cast<DHCPServer *>(aP), true);
    49934759
    49944760    return rc;
     
    50104776 * @note Locks this object for writing and @a aDHCPServer for reading.
    50114777 */
    5012 HRESULT VirtualBox::registerDHCPServer(DHCPServer *aDHCPServer,
    5013                                        bool aSaveSettings /*= true*/)
     4778HRESULT VirtualBox::i_registerDHCPServer(DHCPServer *aDHCPServer,
     4779                                         bool aSaveSettings /*= true*/)
    50144780{
    50154781    AssertReturn(aDHCPServer != NULL, E_INVALIDARG);
     
    50224788
    50234789    Bstr name;
    5024     HRESULT rc;
     4790    com::Utf8Str uname;
     4791    HRESULT rc = S_OK;
    50254792    rc = aDHCPServer->COMGETTER(NetworkName)(name.asOutParam());
    50264793    if (FAILED(rc)) return rc;
     4794    uname = Utf8Str(name);
    50274795
    50284796    ComPtr<IDHCPServer> existing;
    5029     rc = FindDHCPServerByNetworkName(name.raw(), existing.asOutParam());
     4797    rc = findDHCPServerByNetworkName(uname, existing);
    50304798    if (SUCCEEDED(rc))
    50314799        return E_INVALIDARG;
    5032 
    50334800    rc = S_OK;
    50344801
     
    50384805    {
    50394806        AutoWriteLock vboxLock(this COMMA_LOCKVAL_SRC_POS);
    5040         rc = saveSettings();
     4807        rc = i_saveSettings();
    50414808        vboxLock.release();
    50424809
    50434810        if (FAILED(rc))
    5044             unregisterDHCPServer(aDHCPServer, false /* aSaveSettings */);
     4811            i_unregisterDHCPServer(aDHCPServer, false /* aSaveSettings */);
    50454812    }
    50464813
     
    50604827 * @note Locks this object for writing.
    50614828 */
    5062 HRESULT VirtualBox::unregisterDHCPServer(DHCPServer *aDHCPServer,
    5063                                          bool aSaveSettings /*= true*/)
     4829HRESULT VirtualBox::i_unregisterDHCPServer(DHCPServer *aDHCPServer,
     4830                                           bool aSaveSettings /*= true*/)
    50644831{
    50654832    AssertReturn(aDHCPServer != NULL, E_INVALIDARG);
     
    50784845    {
    50794846        AutoWriteLock vboxLock(this COMMA_LOCKVAL_SRC_POS);
    5080         rc = saveSettings();
     4847        rc = i_saveSettings();
    50814848        vboxLock.release();
    50824849
    50834850        if (FAILED(rc))
    5084             registerDHCPServer(aDHCPServer, false /* aSaveSettings */);
     4851            rc = i_registerDHCPServer(aDHCPServer, false /* aSaveSettings */);
    50854852    }
    50864853
     
    50924859 * NAT Network
    50934860 */
    5094 
    5095 STDMETHODIMP VirtualBox::CreateNATNetwork(IN_BSTR aName, INATNetwork ** aNatNetwork)
     4861HRESULT VirtualBox::createNATNetwork(const com::Utf8Str &aNetworkName,
     4862                                     ComPtr<INATNetwork> &aNetwork)
    50964863{
    50974864#ifdef VBOX_WITH_NAT_SERVICE
    5098     CheckComArgStrNotEmptyOrNull(aName);
    5099     CheckComArgNotNull(aNatNetwork);
    5100 
    5101     AutoCaller autoCaller(this);
    5102     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    5103 
    51044865    ComObjPtr<NATNetwork> natNetwork;
    51054866    natNetwork.createObject();
    5106     HRESULT rc = natNetwork->init(this, aName);
     4867    HRESULT rc = natNetwork->init(this, Bstr(aNetworkName).raw());
    51074868    if (FAILED(rc)) return rc;
    51084869
    5109     rc = registerNATNetwork(natNetwork, true);
     4870    rc = i_registerNATNetwork(natNetwork, true);
    51104871    if (FAILED(rc)) return rc;
    51114872
    5112     natNetwork.queryInterfaceTo(aNatNetwork);
    5113 
    5114     fireNATNetworkCreationDeletionEvent(m->pEventSource, aName, TRUE);
     4873    natNetwork.queryInterfaceTo(aNetwork.asOutParam());
     4874
     4875    fireNATNetworkCreationDeletionEvent(m->pEventSource, Bstr(aNetworkName).raw(), TRUE);
     4876
    51154877    return rc;
    51164878#else
     
    51214883}
    51224884
    5123 STDMETHODIMP VirtualBox::FindNATNetworkByName(IN_BSTR aName, INATNetwork ** aNetwork)
     4885HRESULT VirtualBox::findNATNetworkByName(const com::Utf8Str &aNetworkName,
     4886                                         ComPtr<INATNetwork> &aNetwork)
    51244887{
    51254888#ifdef VBOX_WITH_NAT_SERVICE
    5126     CheckComArgStrNotEmptyOrNull(aName);
    5127     CheckComArgNotNull(aNetwork);
    5128 
    5129     AutoCaller autoCaller(this);
    5130     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    51314889
    51324890    HRESULT rc;
     
    51434901        if (FAILED(rc)) return rc;
    51444902
    5145         if (bstr == aName)
     4903        if (bstr == Bstr(aNetworkName).raw())
    51464904        {
    51474905            found = *it;
     
    51524910    if (!found)
    51534911        return E_INVALIDARG;
    5154 
    5155     return found.queryInterfaceTo(aNetwork);
     4912    found.queryInterfaceTo(aNetwork.asOutParam());
     4913    return rc;
    51564914#else
    51574915    NOREF(aName);
    5158     NOREF(aNetwork);
     4916    NOREF(aNetworkName);
    51594917    return E_NOTIMPL;
    51604918#endif
    51614919}
    51624920
    5163 STDMETHODIMP VirtualBox::RemoveNATNetwork(INATNetwork * aNetwork)
     4921HRESULT VirtualBox::removeNATNetwork(const ComPtr<INATNetwork> &aNetwork)
    51644922{
    51654923#ifdef VBOX_WITH_NAT_SERVICE
    5166     CheckComArgNotNull(aNetwork);
    5167 
    5168     AutoCaller autoCaller(this);
    5169     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    51704924    Bstr name;
    5171     HRESULT rc;
    5172     NATNetwork *network = static_cast<NATNetwork *>(aNetwork);
     4925    HRESULT rc = S_OK;
     4926    INATNetwork *iNw = aNetwork;
     4927    NATNetwork *network = static_cast<NATNetwork *>(iNw);
    51734928    rc = network->COMGETTER(NetworkName)(name.asOutParam());
    5174     rc = unregisterNATNetwork(network, true);
     4929    rc = i_unregisterNATNetwork(network, true);
    51754930    fireNATNetworkCreationDeletionEvent(m->pEventSource, name.raw(), FALSE);
    51764931    return rc;
     
    51904945 * @note Locks this object for writing and @a aNATNetwork for reading.
    51914946 */
    5192 HRESULT VirtualBox::registerNATNetwork(NATNetwork *aNATNetwork,
    5193                                        bool aSaveSettings /*= true*/)
     4947HRESULT VirtualBox::i_registerNATNetwork(NATNetwork *aNATNetwork,
     4948                                         bool aSaveSettings /*= true*/)
    51944949{
    51954950#ifdef VBOX_WITH_NAT_SERVICE
     
    52234978    {
    52244979        AutoWriteLock vboxLock(this COMMA_LOCKVAL_SRC_POS);
    5225         rc = saveSettings();
     4980        rc = i_saveSettings();
    52264981        vboxLock.release();
    52274982
    52284983        if (FAILED(rc))
    5229             unregisterNATNetwork(aNATNetwork, false /* aSaveSettings */);
     4984            i_unregisterNATNetwork(aNATNetwork, false /* aSaveSettings */);
    52304985    }
    52314986
     
    52515006 * @note Locks this object for writing.
    52525007 */
    5253 HRESULT VirtualBox::unregisterNATNetwork(NATNetwork *aNATNetwork,
    5254                                          bool aSaveSettings /*= true*/)
     5008HRESULT VirtualBox::i_unregisterNATNetwork(NATNetwork *aNATNetwork,
     5009                                           bool aSaveSettings /*= true*/)
    52555010{
    52565011#ifdef VBOX_WITH_NAT_SERVICE
     
    52745029    {
    52755030        AutoWriteLock vboxLock(this COMMA_LOCKVAL_SRC_POS);
    5276         rc = saveSettings();
     5031        rc = i_saveSettings();
    52775032        vboxLock.release();
    52785033
    52795034        if (FAILED(rc))
    5280             registerNATNetwork(aNATNetwork, false /* aSaveSettings */);
     5035            i_registerNATNetwork(aNATNetwork, false /* aSaveSettings */);
    52815036    }
    52825037
  • trunk/src/VBox/Main/src-server/win/NetIf-win.cpp

    r50174 r50355  
    11491149            d->vBox = pVirtualBox;
    11501150
    1151             rc = pVirtualBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1152                                                    netIfNetworkInterfaceHelperClient,
    1153                                                    static_cast<void *>(d.get()),
    1154                                                    progress);
     1151            rc = pVirtualBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1152                                                     netIfNetworkInterfaceHelperClient,
     1153                                                     static_cast<void *>(d.get()),
     1154                                                     progress);
    11551155            if (SUCCEEDED(rc))
    11561156            {
     
    11941194            d->guid = aId;
    11951195
    1196             rc = pVirtualBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1197                                                    netIfNetworkInterfaceHelperClient,
    1198                                                    static_cast<void *>(d.get()),
    1199                                                    progress);
     1196            rc = pVirtualBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1197                                                     netIfNetworkInterfaceHelperClient,
     1198                                                     static_cast<void *>(d.get()),
     1199                                                     progress);
    12001200
    12011201            if (SUCCEEDED(rc))
     
    12511251                    d->u.StaticIP.IPNetMask = mask;
    12521252
    1253                     rc = vBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1254                                                     netIfNetworkInterfaceHelperClient,
    1255                                                     static_cast<void *>(d.get()),
    1256                                                     progress);
     1253                    rc = vBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1254                                                      netIfNetworkInterfaceHelperClient,
     1255                                                      static_cast<void *>(d.get()),
     1256                                                      progress);
    12571257
    12581258                    if (SUCCEEDED(rc))
     
    13121312                    d->u.StaticIPV6.IPV6NetMaskLength = aIPV6MaskPrefixLength;
    13131313
    1314                     rc = vBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1315                                                     netIfNetworkInterfaceHelperClient,
    1316                                                     static_cast<void *>(d.get()),
    1317                                                     progress);
     1314                    rc = vBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1315                                                      netIfNetworkInterfaceHelperClient,
     1316                                                      static_cast<void *>(d.get()),
     1317                                                      progress);
    13181318
    13191319                    if (SUCCEEDED(rc))
     
    13711371                    d->iface = pIf;
    13721372
    1373                     rc = vBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1374                                                     netIfNetworkInterfaceHelperClient,
    1375                                                     static_cast<void *>(d.get()),
    1376                                                     progress);
     1373                    rc = vBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1374                                                      netIfNetworkInterfaceHelperClient,
     1375                                                      static_cast<void *>(d.get()),
     1376                                                      progress);
    13771377
    13781378                    if (SUCCEEDED(rc))
     
    14301430                    d->iface = pIf;
    14311431
    1432                     rc = vBox->startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
    1433                                                     netIfNetworkInterfaceHelperClient,
    1434                                                     static_cast<void *>(d.get()),
    1435                                                     progress);
     1432                    rc = vBox->i_startSVCHelperClient(IsUACEnabled() == TRUE /* aPrivileged */,
     1433                                                      netIfNetworkInterfaceHelperClient,
     1434                                                      static_cast<void *>(d.get()),
     1435                                                      progress);
    14361436
    14371437                    if (SUCCEEDED(rc))
  • trunk/src/VBox/Main/src-server/xpcom/server.cpp

    r49960 r50355  
    9797
    9898/* implement nsISupports parts of our objects with support for nsIClassInfo */
    99 
    100 NS_DECL_CLASSINFO(VirtualBox)
    101 NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VirtualBox, IVirtualBox)
    102 
    10399NS_DECL_CLASSINFO(Machine)
    104100NS_IMPL_THREADSAFE_ISUPPORTS1_CI(Machine, IMachine)
  • trunk/src/VBox/Main/src-server/xpcom/server.h

    r44528 r50355  
    3535
    3636#endif /* ____H_LINUX_SERVER */
     37HRESULT VirtualBox_GetInterfacesHelper() { return S_OK; }
     38nsIClassInfo* VirtualBox_classInfoGlobal;
  • trunk/src/VBox/Main/src-server/xpcom/server_module.cpp

    r50117 r50355  
    9191 *  in sync with macros used for VirtualBox in server.cpp for the same purpose.
    9292 */
    93 
    94 NS_DECL_CLASSINFO(VirtualBox)
    95 NS_IMPL_CI_INTERFACE_GETTER1(VirtualBox, IVirtualBox)
    9693
    9794static nsresult vboxsvcSpawnDaemon(void)
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