ApplianceImpl.h revision d440eb388d1459ffc6f581ff0c786ef3f048dc39
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * VirtualBox COM class implementation
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * available from http://www.virtualbox.org. This file is free software;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * you can redistribute it and/or modify it under the terms of the GNU
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * General Public License (GPL) as published by the Free Software
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync * additional information or have any questions.
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync public VirtualBoxSupportErrorInfoImpl <Appliance, IAppliance>,
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync // public initializer/uninitializer for internal purposes only
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT init(VirtualBox *aVirtualBox, IN_BSTR &path);
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync // for VirtualBoxSupportErrorInfoImpl
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync static const wchar_t *getComponentName() { return L"Appliance"; }
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync /* IAppliance properties */
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync STDMETHOD(COMGETTER(Disks))(ComSafeArrayOut(BSTR, aDisks));
8b98c71a5a01d215eafbc3605cb7a66cc91ea774vboxsync STDMETHOD(COMGETTER(VirtualSystemDescriptions))(ComSafeArrayOut(IVirtualSystemDescription*, aVirtualSystemDescriptions));
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync /* IAppliance methods */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync /* void interpret (); */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync /* public methods only for internal purposes */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync /* private instance data */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync /** weak VirtualBox parent */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync const ComObjPtr <VirtualBox, ComWeakRef> mVirtualBox;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync struct Data; // obscure, defined in AppliannceImpl.cpp
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT LoopThruSections(const char *pcszPath, const xml::Node *pReferencesElem, const xml::Node *pCurElem);
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT HandleDiskSection(const char *pcszPath, const xml::Node *pReferencesElem, const xml::Node *pSectionElem);
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT HandleNetworkSection(const char *pcszPath, const xml::Node *pSectionElem);
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT HandleVirtualSystemContent(const char *pcszPath, const xml::Node *pContentElem);
6754e49069315bd28137abb0f9241e3aeb99a97evboxsync HRESULT searchUniqueVMName (std::string& aName) const;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync HRESULT searchUniqueDiskImageFilePath(std::string& aName) const;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync VirtualSystemDescriptionType_T type; /* Of which type is this value */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync std::string strRef; /* Reference value to the internal implementation */
6754e49069315bd28137abb0f9241e3aeb99a97evboxsync std::string strOriginalValue; /* The original OVF value */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync std::string strAutoValue; /* The value which VBox suggest */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync std::string strFinalValue; /* The value the user select */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync std::string strConfiguration; /* Additional configuration data for this type */
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync public VirtualBoxSupportErrorInfoImpl <VirtualSystemDescription, IVirtualSystemDescription>,
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync public VirtualBoxSupportTranslation <VirtualSystemDescription>,
6754e49069315bd28137abb0f9241e3aeb99a97evboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT (VirtualSystemDescription)
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync // public initializer/uninitializer for internal purposes only
void uninit();
void addEntry(VirtualSystemDescriptionType_T aType, std::string aRef, std::string aOrigValue, std::string aAutoValue, std::string aConfig = "");
struct Data;
Data *m;