settings.h revision cccc6ee5f7156cfcdf13acca545cf65124d9ed44
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * Settings file data structures.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * These structures are created by the settings file loader and filled with values
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * copied from the raw XML data. This was all new with VirtualBox 3.1 and allows us
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * to finally make the XML reader version-independent and read VirtualBox XML files
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * from earlier and even newer (future) versions without requiring complicated,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * tedious and error-prone XSLT conversions.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * It is this file that defines all structures that map VirtualBox global and
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * machine settings to XML files. These structures are used by the rest of Main,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * even though this header file does not require anything else in Main.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * Note: Headers in Main code have been tweaked to only declare the structures
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * defined here so that this header need only be included from code files that
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * actually use these structures.
904810c4c6668233349b025cc58013cb7c11c701vboxsync * Copyright (C) 2007-2013 Oracle Corporation
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * available from http://www.virtualbox.org. This file is free software;
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * you can redistribute it and/or modify it under the terms of the GNU
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * General Public License (GPL) as published by the Free Software
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * The contents of this file may alternatively be used under the terms
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * of the Common Development and Distribution License Version 1.0
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * VirtualBox OSE distribution, in which case the provisions of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * CDDL are applicable instead of those of the GPL.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * You may elect to license modified versions of this file under the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * terms and conditions of either the GPL or the CDDL or both.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync// Structures shared between Machine XML and VirtualBox.xml
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * USB device filter definition. This struct is used both in MainConfigFile
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * (for global USB filters) and MachineConfigFile (for machine filters).
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * your settings might never get saved.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync USBDeviceFilterAction_T action; // only used with host USB filters
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync com::Utf8Str strRemote; // irrelevant for host USB objects
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync uint32_t ulMaskedInterfaces; // irrelevant for host USB objects
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsynctypedef std::map<com::Utf8Str, com::Utf8Str> StringsMap;
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync// ExtraDataItem (used by both VirtualBox.xml and machines XML)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<USBDeviceFilter> USBDeviceFiltersList;
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * your settings might never get saved.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync // the following are for hard disks only:
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync bool fAutoReset; // optional, only for diffs, default is false
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync * A media registry. Starting with VirtualBox 3.3, this can appear in both the
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync * VirtualBox.xml file as well as machine XML files with settings version 1.11
b099c6398b85f527d7343cb1da573e1e95f9fd10vboxsync * or higher, so these lists are now in ConfigFileBase.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * Common base class for both MainConfigFile and MachineConfigFile
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * which contains some common logic for both.
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync /* Note: this copy constructor doesn't create a full copy of other, cause
1d9143584d5616e94efe0ff5ce57e04708529775vboxsync * the file based stuff (xml doc) could not be copied. */
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync void readExtraData(const xml::ElementNode &elmExtraData,
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync void readUSBDeviceFilters(const xml::ElementNode &elmDeviceFilters,
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync typedef enum {Error, HardDisk, DVDImage, FloppyImage} MediaType;
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void readMedium(MediaType t, const xml::ElementNode &elmMedium, MediaList &llMedia);
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void readMediaRegistry(const xml::ElementNode &elmMediaRegistry, MediaRegistry &mr);
c09430453634ebc72695a69d12366a8fb57132e3vboxsync void readNATForwardRuleList(const xml::ElementNode &elmParent, NATRuleList &llRules);
64836f6a22eea42b83b0ec64abcb3aa7ccc27f25vboxsync void buildExtraData(xml::ElementNode &elmParent, const StringsMap &me);
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void buildUSBDeviceFilters(xml::ElementNode &elmParent,
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void buildMediaRegistry(xml::ElementNode &elmParent,
c09430453634ebc72695a69d12366a8fb57132e3vboxsync void buildNATForwardRuleList(xml::ElementNode &elmParent, const NATRuleList &natRuleList);
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync////////////////////////////////////////////////////////////////////////////////
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync////////////////////////////////////////////////////////////////////////////////
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<MachineRegistryEntry> MachinesRegistry;
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * Nat Networking settings (NAT service).
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync void readMachineRegistry(const xml::ElementNode &elmMachineRegistry);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync void readDHCPServers(const xml::ElementNode &elmDHCPServers);
c09430453634ebc72695a69d12366a8fb57132e3vboxsync void readNATNetworks(const xml::ElementNode &elmNATNetworks);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync// Machine XML structures
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync fDNSPassDomain(true), /* historically this value is true */
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
b604fbf16eda38d14b4999c245f032bfaa5aa85avboxsync enmPromiscModePolicy(NetworkAdapterPromiscModePolicy_Deny),
b604fbf16eda38d14b4999c245f032bfaa5aa85avboxsync NetworkAdapterPromiscModePolicy_T enmPromiscModePolicy;
13d1fd6f43e9a245a4f2b4fc6845bdaa5d0f4134vboxsync com::Utf8Str strBandwidthGroup; // requires settings version 1.13 (VirtualBox 4.2)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<NetworkAdapter> NetworkAdaptersList;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync return (this == &a)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<GuestProperty> GuestPropertiesList;
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::map<uint32_t, DeviceType_T> BootOrderMap;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync return ( (this == &c)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
63b785c3291332a86a9bc473e68f08121368898bvboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
63b785c3291332a86a9bc473e68f08121368898bvboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
63b785c3291332a86a9bc473e68f08121368898bvboxsync * your settings might never get saved.
63b785c3291332a86a9bc473e68f08121368898bvboxsynctypedef std::list<BandwidthGroup> BandwidthGroupList;
2dad255b092a5659ea0274b9385e2019ad040ea7vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
2dad255b092a5659ea0274b9385e2019ad040ea7vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
2dad255b092a5659ea0274b9385e2019ad040ea7vboxsync * your settings might never get saved.
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsync * your settings might never get saved.
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync bool operator==(const HostPCIDeviceAttachment &a) const
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsynctypedef std::list<HostPCIDeviceAttachment> HostPCIDeviceAttachmentList;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * Representation of Machine hardware; this is used in the MachineConfigFile.hardwareMachine
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync com::Utf8Str strVersion; // hardware version, optional
3455d9b135d41903504b9be3f4eeaa038f6ee03avboxsync typedef enum LongModeType { LongMode_Enabled, LongMode_Disabled, LongMode_Legacy } LongModeType;
7a5aa60c341d7f14da337f31a3ed1afcee98bc8avboxsync bool fCpuHotPlug; // requires settings version 1.10 (VirtualBox 3.2)
7a5aa60c341d7f14da337f31a3ed1afcee98bc8avboxsync CpuList llCpus; // requires settings version 1.10 (VirtualBox 3.2)
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync bool fHPETEnabled; // requires settings version 1.10 (VirtualBox 3.2)
657b2c9f6d33f08001e5fa6f6e0572dcf0391013vboxsync uint32_t ulCpuExecutionCap; // requires settings version 1.11 (VirtualBox 3.3)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync BootOrderMap mapBootOrder; // item 0 has highest priority
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync fAccelerate2DVideo; // requires settings version 1.8 (VirtualBox 3.1)
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync uint32_t ulVideoCaptureHorzRes; // requires settings version 1.12 (VirtualBox 4.3)
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync uint32_t ulVideoCaptureVertRes; // requires settings version 1.12 (VirtualBox 4.3)
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync uint32_t ulVideoCaptureRate; // requires settings version 1.12 (VirtualBox 4.3)
cccc6ee5f7156cfcdf13acca545cf65124d9ed44vboxsync uint32_t ulVideoCaptureFps; // requires settings version 1.12 (VirtualBox 4.3)
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync bool fVideoCaptureEnabled; // requires settings version 1.12 (VirtualBox 4.3)
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync com::Utf8Str strVideoCaptureFile; // requires settings version 1.12 (VirtualBox 4.3)
b35e3948f1287430503b6b432945b8cf4bfd3a23vboxsync FirmwareType_T firmwareType; // requires settings version 1.9 (VirtualBox 3.1)
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync PointingHIDType_T pointingHIDType; // requires settings version 1.10 (VirtualBox 3.2)
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync KeyboardHIDType_T keyboardHIDType; // requires settings version 1.10 (VirtualBox 3.2)
d70f332ce412cf75187ceda26709e58e4edc69ecvboxsync ChipsetType_T chipsetType; // requires settings version 1.11 (VirtualBox 4.0)
7708252d252a55417a6a817041e4356797e34255vboxsync bool fEmulatedUSBCardReader; // 1.12 (VirtualBox 4.1)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync // technically these two have no business in the hardware section, but for some
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync // clever reason <Hardware> is where they are in the XML....
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync IOSettings ioSettings; // requires settings version 1.10 (VirtualBox 3.2)
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync HostPCIDeviceAttachmentList pciAttachments; // requires settings version 1.12 (VirtualBox 4.1)
904810c4c6668233349b025cc58013cb7c11c701vboxsync com::Utf8Str strDefaultFrontend; // requires settings version 1.14 (VirtualBox 4.3)
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync * A device attached to a storage controller. This can either be a
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync * hard disk or a DVD drive or a floppy drive and also specifies
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync * which medium is "in" the drive; as a result, this is a combination
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync * of the Main IMedium and IMediumAttachment interfaces.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync DeviceType_T deviceType; // only HardDisk, DVD or Floppy are allowed
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync // DVDs can be in pass-through mode:
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync // Whether guest-triggered eject of DVDs will keep the medium in the
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync // VM config or not:
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync // Whether the medium is non-rotational:
f82834355e5789e35df7c244b68109be1ca6a358vboxsync // Whether the medium supports discarding unused blocks:
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync // if an image file is attached to the device (ISO, RAW, or hard disk image such as VDI),
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync // this is its UUID; it depends on deviceType which media registry this then needs to
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync // be looked up in. If no image file (only permitted for DVDs and floppies), then the UUID is NULL
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync // for DVDs and floppies, the attachment can also be a host device:
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync com::Utf8Str strHostDriveSrc; // if != NULL, value of <HostDrive>/@src
63b785c3291332a86a9bc473e68f08121368898bvboxsync // Bandwidth group the device is attached to.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<AttachedDevice> AttachedDevicesList;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
89de31eab6e960abcacfb70916598ae1c2e7f737vboxsync StorageBus_T storageBus; // _SATA, _SCSI, _IDE, _SAS
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync // only for when controllerType == StorageControllerType_IntelAhci:
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<StorageController> StorageControllersList;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * We wrap the storage controllers list into an extra struct so we can
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * use an undefined struct without needing std::list<> in all the headers.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
a9315925c69e4c3bb342bb317ca5b6d29e1ee467vboxsync * Settings that has to do with debugging.
a9315925c69e4c3bb342bb317ca5b6d29e1ee467vboxsync && fAllowTracingToAccessVM == rOther.fAllowTracingToAccessVM
555dbc9bf9eb371f18bea759bd47c952fee90a5dvboxsync * Settings that has to do with autostart.
555dbc9bf9eb371f18bea759bd47c952fee90a5dvboxsync return fAutostartEnabled == rOther.fAutostartEnabled
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync com::Utf8Str strStateFile; // for online snapshots only
861809c36a5178c28e231b90288d3461e358553fvboxsync enmFaultToleranceState(FaultToleranceState_Inactive),
2e6a98507125b65b3bbdee58d5856aa59e8c33c9vboxsync && (fDirectoryIncludesUUID == c.fDirectoryIncludesUUID)
e48239695d41f806ff02d8a60b97dc20d4822d7avboxsync && (strTeleporterAddress == c.strTeleporterAddress)
e48239695d41f806ff02d8a60b97dc20d4822d7avboxsync && (strTeleporterPassword == c.strTeleporterPassword)
861809c36a5178c28e231b90288d3461e358553fvboxsync && (enmFaultToleranceState == c.enmFaultToleranceState)
26ae7f0cac38c33d90eb69a15baef5fbdf7ca376vboxsync && (uFaultToleranceInterval == c.uFaultToleranceInterval)
861809c36a5178c28e231b90288d3461e358553fvboxsync && (strFaultToleranceAddress == c.strFaultToleranceAddress)
2da39c8916d8c980fc544cdbae725ca57ee5949cvboxsync && (strFaultTolerancePassword == c.strFaultTolerancePassword)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * MachineConfigFile represents an XML machine configuration. All the machine settings
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * that go out to the XML (or are read from it) are in here.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by Machine::saveSettings(), or otherwise your settings
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync bool fCurrentStateModified; // optional, default is true
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync RTTIMESPEC timeLastStateChange; // optional, defaults to now
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync SnapshotsList llFirstSnapshot; // first snapshot or empty list if there's none
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync MachineConfigFile(const com::Utf8Str *pstrFilename);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void importMachineXML(const xml::ElementNode &elmMachine);
6a801286d1ede5d68a7490a9cd2a6ba0634ff18avboxsync std::list<xml::ElementNode*> *pllElementsWithUuidAttributes);
5f3798b1abe94e5828f28821c234d9e86d77e4a3vboxsync static bool isAudioDriverAllowedOnThisHost(AudioDriverType_T drv);
5f3798b1abe94e5828f28821c234d9e86d77e4a3vboxsync static AudioDriverType_T getHostDefaultAudioDriver();
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readNetworkAdapters(const xml::ElementNode &elmHardware, NetworkAdaptersList &ll);
13770a1ab6adae6f0f7792bd79881e049e410d45vboxsync void readAttachedNetworkMode(const xml::ElementNode &pelmMode, bool fEnabled, NetworkAdapter &nic);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readCpuIdTree(const xml::ElementNode &elmCpuid, CpuIdLeafsList &ll);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readCpuTree(const xml::ElementNode &elmCpu, CpuList &ll);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readSerialPorts(const xml::ElementNode &elmUART, SerialPortsList &ll);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readParallelPorts(const xml::ElementNode &elmLPT, ParallelPortsList &ll);
5f3798b1abe94e5828f28821c234d9e86d77e4a3vboxsync void readAudioAdapter(const xml::ElementNode &elmAudioAdapter, AudioAdapter &aa);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readGuestProperties(const xml::ElementNode &elmGuestProperties, Hardware &hw);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readStorageControllerAttributes(const xml::ElementNode &elmStorageController, StorageController &sctl);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readHardware(const xml::ElementNode &elmHardware, Hardware &hw, Storage &strg);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readHardDiskAttachments_pre1_7(const xml::ElementNode &elmHardDiskAttachments, Storage &strg);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readStorageControllers(const xml::ElementNode &elmStorageControllers, Storage &strg);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readDVDAndFloppies_pre1_9(const xml::ElementNode &elmHardware, Storage &strg);
128c985cbcd15f78b4f54364533dee56100dd2a9vboxsync void readTeleporter(const xml::ElementNode *pElmTeleporter, MachineUserData *pUserData);
555dbc9bf9eb371f18bea759bd47c952fee90a5dvboxsync void readDebugging(const xml::ElementNode *pElmDbg, Debugging *pDbg);
555dbc9bf9eb371f18bea759bd47c952fee90a5dvboxsync void readAutostart(const xml::ElementNode *pElmAutostart, Autostart *pAutostart);
1147e980f6ab0b7ff1d08c13ad1c03eea30d102dvboxsync void readGroups(const xml::ElementNode *elmGroups, StringsList *pllGroups);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readSnapshot(const xml::ElementNode &elmSnapshot, Snapshot &snap);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void readMachine(const xml::ElementNode &elmMachine);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void buildHardwareXML(xml::ElementNode &elmParent, const Hardware &hw, const Storage &strg);
aa0553becec2abc2e781f839ba1d399c31c2c07fvboxsync void buildNetworkXML(NetworkAttachmentType_T mode, xml::ElementNode &elmParent, bool fEnabled, const NetworkAdapter &nic);
6a801286d1ede5d68a7490a9cd2a6ba0634ff18avboxsync void buildStorageControllersXML(xml::ElementNode &elmParent,
6a801286d1ede5d68a7490a9cd2a6ba0634ff18avboxsync std::list<xml::ElementNode*> *pllElementsWithUuidAttributes);
a9315925c69e4c3bb342bb317ca5b6d29e1ee467vboxsync void buildDebuggingXML(xml::ElementNode *pElmParent, const Debugging *pDbg);
555dbc9bf9eb371f18bea759bd47c952fee90a5dvboxsync void buildAutostartXML(xml::ElementNode *pElmParent, const Autostart *pAutostart);
1147e980f6ab0b7ff1d08c13ad1c03eea30d102dvboxsync void buildGroupsXML(xml::ElementNode *pElmParent, const StringsList *pllGroups);
f7c0f913c4c22ee18059ff97055442566d0f14a1vboxsync void buildSnapshotXML(xml::ElementNode &elmParent, const Snapshot &snap);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync} // namespace settings
d46ee884c41b808b239563b1978468aae12e33a2vboxsync#endif /* ___VBox_settings_h */