VirtualBox

Changeset 44503 in vbox for trunk/src


Ignore:
Timestamp:
Feb 1, 2013 6:28:53 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
83539
Message:

Main: change API. Interface IMediumFormat was touched. Attribute capabilities got the type MediumFormatCapabilities and option safeArray. PR5434.

Location:
trunk/src/VBox
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageList.cpp

    r44498 r44503  
    271271                    COMGETTER(Id)(description.asOutParam()));
    272272
    273         ULONG caps;
     273        ULONG caps = 0;
     274        com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
    274275        CHECK_ERROR(mediumFormats[i],
    275                     COMGETTER(Capabilities)(&caps));
     276                    COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap)));
     277        for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     278            caps |= mediumFormatCap[j];
     279
    276280
    277281        RTPrintf("Backend %u: id='%ls' description='%ls' capabilities=%#06x extensions='",
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp

    r44453 r44503  
    14591459            .arg(aMedium.location());
    14601460
     1461    qulonglong caps = 0;
     1462    QVector<KMediumFormatCapabilities> capabilities;
     1463    capabilities = aMedium.medium().GetMediumFormat().GetCapabilities();
     1464    for (int i = 0; i < capabilities.size(); i++)
     1465        caps |= capabilities[i];
     1466
    14611467    if (aMedium.type() == UIMediumType_HardDisk &&
    1462         aMedium.medium().GetMediumFormat().GetCapabilities() & MediumFormatCapabilities_File)
     1468        caps & MediumFormatCapabilities_File)
    14631469    {
    14641470        if (aMedium.state() == KMediumState_Inaccessible)
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r43424 r44503  
    11421142             * will give a corresponding hint. Therefore, once the code is
    11431143             * changed below, the hint should be re-checked for validity. */
     1144
     1145            qulonglong caps = 0;
     1146            QVector<KMediumFormatCapabilities> capabilities;
     1147            capabilities = item->medium().medium().GetMediumFormat().GetCapabilities();
     1148            for (int i = 0; i < capabilities.size(); i++)
     1149                caps |= capabilities[i];
     1150
    11441151            if (item->state() != KMediumState_Inaccessible &&
    1145                 item->medium().medium().GetMediumFormat().GetCapabilities() & MediumFormatCapabilities_File)
     1152                caps & MediumFormatCapabilities_File)
    11461153            {
    11471154                int rc = msgCenter().
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageBasic2.cpp

    r41587 r44503  
    3939{
    4040    /* Check that medium format supports creation: */
    41     ULONG uFormatCapabilities = medFormat.GetCapabilities();
     41    //ULONG uFormatCapabilities = medFormat.GetCapabilities();
     42    ULONG uFormatCapabilities = 0;
     43    QVector<KMediumFormatCapabilities> capabilities;
     44    capabilities = medFormat.GetCapabilities();
     45    for (ULONG i = 0; i < capabilities.size(); i++)
     46        uFormatCapabilities |= capabilities[i];
     47
    4248    if (!(uFormatCapabilities & MediumFormatCapabilities_CreateFixed ||
    4349          uFormatCapabilities & MediumFormatCapabilities_CreateDynamic))
     
    149155    /* Show variant page only if there is something to show: */
    150156    CMediumFormat medFormat = mediumFormat();
    151     ULONG uCapabilities = medFormat.GetCapabilities();
     157//    ULONG uCapabilities = medFormat.GetCapabilities();
     158    ULONG uCapabilities = 0;
     159    QVector<KMediumFormatCapabilities> capabilities;
     160    capabilities = medFormat.GetCapabilities();
     161    for (ULONG i = 0; i < capabilities.size(); i++)
     162        uCapabilities |= capabilities[i];
     163
    152164    int cTest = 0;
    153165    if (uCapabilities & KMediumFormatCapabilities_CreateDynamic)
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageBasic3.cpp

    r41587 r44503  
    145145    /* Setup visibility: */
    146146    CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();
    147     ULONG uCapabilities = mediumFormat.GetCapabilities();
     147    ULONG uCapabilities = 0;
     148    QVector<KMediumFormatCapabilities> capabilities;
     149    capabilities = mediumFormat.GetCapabilities();
     150    for (ULONG i = 0; i < capabilities.size(); i++)
     151        uCapabilities |= capabilities[i];
     152
    148153    bool fIsCreateDynamicPossible = uCapabilities & KMediumFormatCapabilities_CreateDynamic;
    149154    bool fIsCreateFixedPossible = uCapabilities & KMediumFormatCapabilities_CreateFixed;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVDPageExpert.cpp

    r41615 r44503  
    187187
    188188    /* Enable/disable widgets: */
    189     ULONG uCapabilities = mf.GetCapabilities();
     189    ULONG uCapabilities = 0;
     190    QVector<KMediumFormatCapabilities> capabilities;
     191    capabilities = mf.GetCapabilities();
     192    for (ULONG i = 0; i < capabilities.size(); i++)
     193        uCapabilities |= capabilities[i];
     194
    190195    bool fIsCreateDynamicPossible = uCapabilities & KMediumFormatCapabilities_CreateDynamic;
    191196    bool fIsCreateFixedPossible = uCapabilities & KMediumFormatCapabilities_CreateFixed;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.cpp

    r41587 r44503  
    3939{
    4040    /* Check that medium format supports creation: */
    41     ULONG uFormatCapabilities = medFormat.GetCapabilities();
     41    ULONG uFormatCapabilities = 0;
     42    QVector<KMediumFormatCapabilities> capabilities;
     43    capabilities = medFormat.GetCapabilities();
     44    for (ULONG i = 0; i < capabilities.size(); i++)
     45        uFormatCapabilities |= capabilities[i];
     46
    4247    if (!(uFormatCapabilities & MediumFormatCapabilities_CreateFixed ||
    4348          uFormatCapabilities & MediumFormatCapabilities_CreateDynamic))
     
    149154    /* Show variant page only if there is something to show: */
    150155    CMediumFormat mf = mediumFormat();
    151     ULONG uCapabilities = mf.GetCapabilities();
     156    ULONG uCapabilities = 0;
     157    QVector<KMediumFormatCapabilities> capabilities;
     158    capabilities = mf.GetCapabilities();
     159    for (ULONG i = 0; i < capabilities.size(); i++)
     160        uCapabilities |= capabilities[i];
     161
    152162    int cTest = 0;
    153163    if (uCapabilities & KMediumFormatCapabilities_CreateDynamic)
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic2.cpp

    r41587 r44503  
    145145    /* Setup visibility: */
    146146    CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();
    147     ULONG uCapabilities = mediumFormat.GetCapabilities();
     147    ULONG uCapabilities = 0;
     148    QVector<KMediumFormatCapabilities> capabilities;
     149    capabilities = mediumFormat.GetCapabilities();
     150    for (ULONG i = 0; i < capabilities.size(); i++)
     151        uCapabilities |= capabilities[i];
     152
    148153    bool fIsCreateDynamicPossible = uCapabilities & KMediumFormatCapabilities_CreateDynamic;
    149154    bool fIsCreateFixedPossible = uCapabilities & KMediumFormatCapabilities_CreateFixed;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp

    r41833 r44503  
    189189
    190190    /* Enable/disable widgets: */
    191     ULONG uCapabilities = mf.GetCapabilities();
     191    ULONG uCapabilities = 0;
     192    QVector<KMediumFormatCapabilities> capabilities;
     193    capabilities = mf.GetCapabilities();
     194    for (ULONG i = 0; i < capabilities.size(); i++)
     195        uCapabilities |= capabilities[i];
     196
    192197    bool fIsCreateDynamicPossible = uCapabilities & KMediumFormatCapabilities_CreateDynamic;
    193198    bool fIsCreateFixedPossible = uCapabilities & KMediumFormatCapabilities_CreateFixed;
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r44409 r44503  
    1341213412  <interface
    1341313413    name="IMediumFormat" extends="$unknown"
    13414     uuid="9bd5b655-ea47-4637-99f3-aad0948be35b"
     13414    uuid="6238e1cf-a17d-4ec1-8172-418bfb22b93a"
    1341513415    wsmap="managed"
    1341613416    >
     
    1346013460    </attribute>
    1346113461
    13462     <attribute name="capabilities" type="unsigned long" readonly="yes">
     13462    <attribute name="capabilities" type="MediumFormatCapabilities" safearray="yes" readonly="yes">
    1346313463      <desc>
    1346413464        Capabilities of the format as a set of bit flags.
  • trunk/src/VBox/Main/include/MediumFormatImpl.h

    r37587 r44503  
    9191    STDMETHOD(COMGETTER(Id))(BSTR *aId);
    9292    STDMETHOD(COMGETTER(Name))(BSTR *aName);
    93     STDMETHOD(COMGETTER(Capabilities))(ULONG *aCaps);
     93    STDMETHOD(COMGETTER(Capabilities))(ComSafeArrayOut(MediumFormatCapabilities_T, aCaps));
    9494
    9595    // IMediumFormat methods
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r44425 r44503  
    32443244            ComPtr<IMediumFormat> pMediumFormat;
    32453245            hrc = pMedium->COMGETTER(MediumFormat)(pMediumFormat.asOutParam());             H();
    3246             ULONG uCaps;
    3247             hrc = pMediumFormat->COMGETTER(Capabilities)(&uCaps);                           H();
     3246            ULONG uCaps = 0;
     3247            com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
     3248            hrc = pMediumFormat->COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap));    H();
     3249
     3250            for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     3251                uCaps |= mediumFormatCap[j];
     3252
    32483253            if (uCaps & MediumFormatCapabilities_File)
    32493254            {
     
    34183423            ComPtr<IMediumFormat> pMediumFormat;
    34193424            hrc = pMedium->COMGETTER(MediumFormat)(pMediumFormat.asOutParam());             H();
    3420             ULONG uCaps;
    3421             hrc = pMediumFormat->COMGETTER(Capabilities)(&uCaps);                           H();
     3425            ULONG uCaps = 0;
     3426            com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
     3427            hrc = pMediumFormat->COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap));     H();
     3428
     3429            for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     3430                uCaps |= mediumFormatCap[j];
     3431
    34223432            if (uCaps & MediumFormatCapabilities_File)
    34233433            {
  • trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp

    r44365 r44503  
    18351835            /* Check the capabilities. We need create capabilities. */
    18361836            ULONG lCabs = 0;
    1837             rc = trgFormat->COMGETTER(Capabilities)(&lCabs);
     1837            com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
     1838            rc = trgFormat->COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap));
     1839
    18381840            if (FAILED(rc)) throw rc;
     1841            else
     1842            {
     1843                for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     1844                    lCabs |= mediumFormatCap[j];
     1845            }
     1846
    18391847            if (!(   ((lCabs & MediumFormatCapabilities_CreateFixed) == MediumFormatCapabilities_CreateFixed)
    18401848                  || ((lCabs & MediumFormatCapabilities_CreateDynamic) == MediumFormatCapabilities_CreateDynamic)))
  • trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp

    r44480 r44503  
    10901090                        rc = pMedium->COMGETTER(MediumFormat)(pSrcFormat.asOutParam());
    10911091                        ULONG uSrcCaps = 0;
    1092                         rc = pSrcFormat->COMGETTER(Capabilities)(&uSrcCaps);
     1092                        com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
     1093                        rc = pSrcFormat->COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap));
     1094
    10931095                        if (FAILED(rc)) throw rc;
     1096                        else
     1097                        {
     1098                            for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     1099                                uSrcCaps |= mediumFormatCap[j];
     1100                        }
    10941101
    10951102                        /* Default format? */
  • trunk/src/VBox/Main/src-server/MediumFormatImpl.cpp

    r37587 r44503  
    218218}
    219219
    220 STDMETHODIMP MediumFormat::COMGETTER(Capabilities)(ULONG *aCaps)
    221 {
    222     CheckComArgOutPointerValid(aCaps);
    223 
    224     AutoCaller autoCaller(this);
    225     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    226 
    227     /* m.capabilities is const, no need to lock */
    228 
    229     /// @todo add COMGETTER(ExtendedCapabilities) when we reach the 32 bit
    230     /// limit (or make the argument ULONG64 after checking that COM is capable
    231     /// of defining enums (used to represent bit flags) that contain 64-bit
    232     /// values). Or go away from the enum/ulong hack for bit sets and use
    233     /// a safearray like elsewhere.
    234     ComAssertRet((uint64_t)m.capabilities == ((ULONG)m.capabilities), E_FAIL);
    235 
    236     *aCaps = (ULONG)m.capabilities;
     220STDMETHODIMP MediumFormat::COMGETTER(Capabilities)(ComSafeArrayOut(MediumFormatCapabilities_T, aCaps))
     221{
     222    CheckComArgOutSafeArrayPointerValid(aCaps);
     223
     224    AutoCaller autoCaller(this);
     225    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     226
     227    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     228
     229    SafeArray<MediumFormatCapabilities_T> capabilities(sizeof(MediumFormatCapabilities_T)*8);
     230
     231    for (ULONG i = 0; i < capabilities.size(); ++i)
     232    {
     233        ULONG temp = m.capabilities;
     234        temp &= 1<<i;
     235        capabilities [i] = (MediumFormatCapabilities_T)temp;
     236    }
     237
     238    capabilities.detachTo(ComSafeArrayOutArg(aCaps));
    237239
    238240    return S_OK;
  • trunk/src/VBox/Main/src-server/SnapshotImpl.cpp

    r44406 r44503  
    25362536                    throw rc;
    25372537                ULONG uTargetCaps = 0;
    2538                 rc = pTargetFormat->COMGETTER(Capabilities)(&uTargetCaps);
    2539                 if (FAILED(rc))
    2540                     throw rc;
     2538                com::SafeArray <MediumFormatCapabilities_T> mediumFormatCap;
     2539                rc = pTargetFormat->COMGETTER(Capabilities)(ComSafeArrayAsOutParam(mediumFormatCap));
     2540
     2541                if (FAILED(rc)) throw rc;
     2542                else
     2543                {
     2544                    for (ULONG j = 0; j < mediumFormatCap.size(); j++)
     2545                        uTargetCaps |= mediumFormatCap[j];
     2546                }
    25412547
    25422548                if (uTargetCaps & MediumFormatCapabilities_File)
Note: See TracChangeset for help on using the changeset viewer.

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