VirtualBox

儲存庫 vbox 的更動 18214


忽略:
時間撮記:
2009-3-24 下午06:30:04 (16 年 以前)
作者:
vboxsync
訊息:

OVF: added AddDescription; return the created VirtualSystemDescription after an export call; write the EULA section to the OVF

位置:
trunk/src/VBox
檔案:
修改 6 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageImport.cpp

    r18108 r18214  
    605605        {
    606606            ComPtr<IMachine> pMachine = *itM;
    607             CHECK_ERROR_BREAK(pMachine, Export(pAppliance));
     607            ComPtr<IVirtualSystemDescription> pVSD;
     608            CHECK_ERROR_BREAK(pMachine, Export(pAppliance, pVSD.asOutParam()));
    608609        }
    609610
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxExportApplianceWzd.cpp

    r18132 r18214  
    256256            {
    257257                /* Add the export description to our appliance object */
    258                 m.Export (aAppliance);
     258                CVirtualSystemDescription vsd = m.Export (aAppliance);
    259259                fResult = m.isOk();
    260260                if (!fResult)
  • trunk/src/VBox/Main/ApplianceImpl.cpp

    r18197 r18214  
    26572657            }
    26582658
     2659            // license
     2660            std::list<VirtualSystemDescriptionEntry*> llLicense = vsdescThis->findByType(VirtualSystemDescriptionType_License);
     2661            if (llLicense.size())
     2662            {
     2663                /* <EulaSection>
     2664                   <Info ovf:msgid="6">License agreement for the Virtual System.</Info>
     2665                   <License ovf:msgid="1">License terms can go in here.</License>
     2666                   </EulaSection> */
     2667                xml::ElementNode *pelmAnnotationSection = pelmVirtualSystem->createChild("EulaSection");
     2668                pelmAnnotationSection->createChild("Info")->addContent("License agreement for the Virtual System.");
     2669                pelmAnnotationSection->createChild("License")->addContent(llLicense.front()->strVbox);
     2670            }
     2671
    26592672            // operating system
    26602673            std::list<VirtualSystemDescriptionEntry*> llOS = vsdescThis->findByType(VirtualSystemDescriptionType_OS);
     
    35173530
    35183531/**
     3532 * Public method implementation.
     3533 * @return
     3534 */
     3535STDMETHODIMP VirtualSystemDescription::AddDescription(VirtualSystemDescriptionType_T aType,
     3536                                                      IN_BSTR aVboxValue,
     3537                                                      IN_BSTR aExtraConfigValue)
     3538{
     3539    CheckComArgNotNull(aVboxValue);
     3540    CheckComArgNotNull(aExtraConfigValue);
     3541
     3542    AutoCaller autoCaller(this);
     3543    CheckComRCReturnRC(autoCaller.rc());
     3544
     3545    AutoWriteLock alock(this);
     3546
     3547    addEntry(aType, "", aVboxValue, aVboxValue, aExtraConfigValue);
     3548
     3549    return S_OK;
     3550}
     3551
     3552/**
    35193553 * Internal method; adds a new description item to the member list.
    35203554 * @param aType Type of description for the new item.
     
    36083642*/
    36093643
    3610 STDMETHODIMP Machine::Export(IAppliance *appliance)
     3644STDMETHODIMP Machine::Export(IAppliance *aAppliance, IVirtualSystemDescription **aDescription)
    36113645{
    36123646    HRESULT rc = S_OK;
    36133647
    3614     if (!appliance)
     3648    if (!aAppliance)
    36153649        return E_POINTER;
    36163650
     
    39563990
    39573991        // finally, add the virtual system to the appliance
    3958         Appliance *pAppliance = static_cast<Appliance*>(appliance);
     3992        Appliance *pAppliance = static_cast<Appliance*>(aAppliance);
    39593993        AutoCaller autoCaller(pAppliance);
    39603994        if (FAILED(rc)) throw rc;
     3995
     3996        /* We return the new description to the caller */
     3997        ComPtr<IVirtualSystemDescription> copy(pNewDesc);
     3998        copy.queryInterfaceTo(aDescription);
    39613999
    39624000        AutoWriteLock alock(pAppliance);
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r18208 r18214  
    32973297  <interface
    32983298     name="IVirtualSystemDescription" extends="$unknown"
    3299      uuid="c2e9f5b5-522c-47e5-be55-0d20b46a95d9"
     3299     uuid="d7525e6c-531a-4c51-8e04-41235083a3d8"
    33003300     wsmap="managed"
    33013301     >
     
    35043504      </param>
    35053505    </method>
     3506
     3507    <method name="addDescription">
     3508      <desc>
     3509      This method adds an additional description entry to the stack of already
     3510      available descriptions for this virtual system. This is handy for writing
     3511      values which aren't directly supported by VirtualBox. One example would
     3512      be the License type of <link to="VirtualSystemDescriptionType" />.
     3513      </desc>
     3514
     3515      <param name="aType" type="VirtualSystemDescriptionType" dir="in">
     3516        <desc></desc>
     3517      </param>
     3518
     3519      <param name="aVboxValue" type="wstring" dir="in">
     3520        <desc></desc>
     3521      </param>
     3522
     3523      <param name="aExtraConfigValue" type="wstring" dir="in">
     3524        <desc></desc>
     3525      </param>
     3526    </method>
    35063527  </interface>
    35073528
     
    39413962  <interface
    39423963     name="IMachine" extends="$unknown"
    3943      uuid="dcf6a64c-1466-4b5a-b822-9db04133dc74"
     3964     uuid="13420cbb-175a-4456-85d0-301126dfdec7"
    39443965     wsmap="managed"
    39453966     >
     
    50545075        </desc>
    50555076
    5056         <param name="appliance" type="IAppliance" dir="in">
     5077        <param name="aAppliance" type="IAppliance" dir="in">
    50575078            <desc>Appliance to export this machine to.</desc>
     5079        </param>
     5080        <param name="aDescription" type="IVirtualSystemDescription" dir="return">
     5081            <desc>VirtualSystemDescription object which is created for this machine.</desc>
    50585082        </param>
    50595083    </method >
  • trunk/src/VBox/Main/include/ApplianceImpl.h

    r18201 r18214  
    177177                              ComSafeArrayIn(IN_BSTR, aExtraConfigValues));
    178178
     179    STDMETHOD(AddDescription)(VirtualSystemDescriptionType_T aType,
     180                              IN_BSTR aVboxValue,
     181                              IN_BSTR aExtraConfigValue);
     182
    179183    /* public methods only for internal purposes */
    180184
  • trunk/src/VBox/Main/include/MachineImpl.h

    r17911 r18214  
    554554    STDMETHOD(DiscardSettings)();
    555555    STDMETHOD(DeleteSettings)();
    556     STDMETHOD(Export)(IAppliance *appliance);
     556    STDMETHOD(Export)(IAppliance *aAppliance, IVirtualSystemDescription **aDescription);
    557557    STDMETHOD(GetSnapshot) (IN_GUID aId, ISnapshot **aSnapshot);
    558558    STDMETHOD(FindSnapshot) (IN_BSTR aName, ISnapshot **aSnapshot);
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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