MachineImpl.h revision 68b7971bd3dc7072763235a81c6015b4863751a1
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * VirtualBox COM class declaration
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * available from http://www.virtualbox.org. This file is free software;
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * you can redistribute it and/or modify it under the terms of the GNU
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * General Public License (GPL) as published by the Free Software
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync * additional information or have any questions.
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync#include "StorageControllerImpl.h" // required for MachineImpl.h to compile on Windows
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync#endif /* VBOX_WITH_RESOURCE_USAGE_API */
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync// generated header
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync////////////////////////////////////////////////////////////////////////////////
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync// helper declarations
14ea49401f3c8c61422aefbda43809e275f60c6cvboxsync////////////////////////////////////////////////////////////////////////////////
struct Snapshot;
struct Hardware;
struct Storage;
struct StorageController;
struct MachineRegistryEntry;
struct Data
struct Session
Data();
~Data();
struct SSData
struct UserData
UserData();
~UserData();
struct HWData
struct GuestProperty {
HWData();
~HWData();
struct MediaData
MediaData();
~MediaData();
enum StateDependency
&mRegistered);
void release()
void add()
&mRegistered);
void FinalRelease();
// public initializer/uninitializer for internal purposes only
void uninit();
void uninitDataAndChildObjects();
STDMETHOD(COMGETTER(StorageControllers))(ComSafeArrayOut(IStorageController *, aStorageControllers));
STDMETHOD(PassthroughDevice)(IN_BSTR aControllerName, LONG aControllerPort, LONG aDevice, BOOL aPassthrough);
STDMETHOD(EnumerateGuestProperties)(IN_BSTR aPattern, ComSafeArrayOut(BSTR, aNames), ComSafeArrayOut(BSTR, aValues), ComSafeArrayOut(ULONG64, aTimestamps), ComSafeArrayOut(BSTR, aFlags));
STDMETHOD(GetMediumAttachmentsOfController)(IN_BSTR aName, ComSafeArrayOut(IMediumAttachment *, aAttachments));
STDMETHOD(GetMediumAttachment)(IN_BSTR aConstrollerName, LONG aControllerPort, LONG aDevice, IMediumAttachment **aAttachment);
STDMETHOD(AddStorageController)(IN_BSTR aName, StorageBus_T aConnectionType, IStorageController **controller);
STDMETHOD(ReadSavedThumbnailToArray)(BOOL aBGR, ULONG *aWidth, ULONG *aHeight, ComSafeArrayOut(BYTE, aData));
STDMETHOD(ReadSavedScreenshotPNGToArray)(ULONG *aWidth, ULONG *aHeight, ComSafeArrayOut(BYTE, aData));
virtual HRESULT onNetworkAdapterChange(INetworkAdapter * /* networkAdapter */, BOOL /* changeAdapter */) { return S_OK; }
virtual HRESULT onMediumChange(IMediumAttachment * /* mediumAttachment */, BOOL /* force */) { return S_OK; }
#if defined(RT_OS_WINDOWS)
bool aAllowClosing = false);
bool isSessionSpawning();
bool checkForSpawnFailure();
bool aSetError = false)
void releaseStateDependency();
void ensureNoStateDependencies();
bool aSetError = false);
bool aRegistered,
bool aRegistered,
bool aSetError = false);
bool aSetError = false);
bool aSetError = false);
bool aOnline);
bool isModified();
void commit();
#ifdef VBOX_WITH_RESOURCE_USAGE_API
void FinalRelease();
// public initializer/uninitializer for internal purposes only
bool checkForDeath();
struct SnapshotData
struct Uninit
struct SnapshotTask;
struct DeleteSnapshotTask;
struct RestoreSnapshotTask;
void unlockMedia();
#if defined(RT_OS_WINDOWS)
int mIPCSem;
# ifdef VBOX_WITH_NEW_SYS_V_KEYGEN
void FinalRelease();
// public initializer/uninitializer for internal purposes only
void uninit();
return mPeer;
return this;