genode/repos/ports/src/virtualbox/frontend/GenodeImpl.h

288 lines
8.0 KiB
C++

#ifndef ____H_GENODEIMPL
#define ____H_GENODEIMPL
#include <VBox/vmm/vmapi.h>
#include <VBox/com/com.h>
#include <VBox/com/string.h>
#include <VBox/com/Guid.h>
#include <VBox/com/defs.h>
#include <VBox/com/AutoLock.h>
#include <VBox/com/EventQueue.h>
class Progress;
typedef Progress IProgress;
class VirtualBoxErrorInfo;
typedef VirtualBoxErrorInfo IVirtualBoxErrorInfo;
class IUnknown;
#include <VBox/com/ErrorInfo.h>
#include <VBox/vmm/pdmifs.h>
#include <VBox/settings.h>
#include <iprt/uuid.h>
#include <iprt/fs.h>
#include <iprt/file.h>
#include <iprt/semaphore.h>
class Console;
#include "AutoCaller.h"
#include "VMMDev.h"
#include <map>
#include <list>
#include <vector>
#define TRUNKTYPE_WHATEVER "whatever"
#define TRUNKTYPE_NETFLT "netflt"
#define INTNET_MAX_NETWORK_NAME 128
#define VBOX_SHARED_CLIPBOARD_HOST_FN_SET_HEADLESS 2
enum INTNETTRUNKTYPE
{
kIntNetTrunkType_WhateverNone,
kIntNetTrunkType_NetFlt,
};
class IHostNetworkInterface;
class IFramebufferOverlay;
class IInternalSessionControl;
class IHostUSBDevice;
class IHostUSBDeviceFilter;
class IHostVideoInputDevice;
class IVetoEvent;
class AdditionsFacility;
class AudioAdapter;
class BandwidthControl;
class BandwidthGroup;
class BIOSSettings;
class ConsoleMouseInterface;
class Display;
class DHCPServer;
class EmulatedUSB;
class EventSource;
class Framebuffer;
class Guest;
class GuestDirectory;
class GuestFile;
class GuestFsObjInfo;
class GuestOSType;
class GuestProcess;
class GuestSession;
class Host;
class Keyboard;
class Machine;
class MachineDebugger;
class Medium;
class MediumAttachment;
class MediumFormat;
class MediumLockList;
class Mouse;
class NATEngine;
class NATNetwork;
class NetworkAdapter;
class OUSBDevice;
class ParallelPort;
class PCIDeviceAttachment;
class SerialPort;
class Session;
class SessionMachine;
class SharedFolder;
class Snapshot;
class StorageController;
class SystemProperties;
class Token;
class USBController;
class USBDeviceFilter;
class USBDeviceFilters;
class VBoxEvent;
class VBoxEventDesc;
class VBoxVetoEvent;
class VirtualBox;
class VRDEServer;
class VRDEServerInfo;
class VirtualBoxErrorInfo {
public:
HRESULT init(HRESULT aResultCode, const GUID &aIID,
const char *pcszComponent, const com::Utf8Str &strText,
IVirtualBoxErrorInfo *aNext = NULL);
HRESULT FinalConstruct() { return S_OK; }
};
class IStateChangedEvent
{
public:
void get_State(MachineState_T*);
};
typedef AdditionsFacility IAdditionsFacility;
class IAppliance;
typedef AudioAdapter IAudioAdapter;
typedef Console IConsole;
typedef BandwidthControl IBandwidthControl;
typedef BandwidthGroup IBandwidthGroup;
typedef BIOSSettings IBIOSSettings;
typedef Display IDisplay;
typedef DHCPServer IDHCPServer;
typedef EmulatedUSB IEmulatedUSB;
typedef VBoxEvent IEvent;
typedef VBoxVetoEvent IExtraDataCanChangeEvent;
typedef EventSource IEventSource;
typedef Framebuffer IFramebuffer;
class IExtPackManager;
typedef Guest IGuest;
typedef GuestDirectory IGuestDirectory;
typedef GuestFile IGuestFile;
typedef GuestFsObjInfo IGuestFsObjInfo;
typedef GuestProcess IGuestProcess;
typedef GuestSession IGuestSession;
typedef GuestOSType IGuestOSType;
typedef Host IHost;
typedef Keyboard IKeyboard;
typedef Machine IMachine;
typedef MachineDebugger IMachineDebugger;
typedef Medium IMedium;
typedef MediumAttachment IMediumAttachment;
typedef Mouse IMouse;
typedef NetworkAdapter INetworkAdapter;
typedef NATEngine INATEngine;
typedef NATNetwork INATNetwork;
typedef ParallelPort IParallelPort;
class IPerformanceCollector;
typedef SerialPort ISerialPort;
typedef Session ISession;
typedef SharedFolder ISharedFolder;
typedef Snapshot ISnapshot;
typedef StorageController IStorageController;
typedef SystemProperties ISystemProperties;
typedef Token IToken;
typedef USBController IUSBController;
typedef OUSBDevice IUSBDevice;
typedef USBDeviceFilter IUSBDeviceFilter;
typedef USBDeviceFilters IUSBDeviceFilters;
typedef VirtualBox IVirtualBox;
typedef VRDEServer IVRDEServer;
typedef VRDEServerInfo IVRDEServerInfo;
typedef PCIDeviceAttachment IPCIDeviceAttachment;
typedef SessionMachine IInternalMachineControl;
class IVirtualSystemDescription;
class IEventListener {
public:
HRESULT HandleEvent(IEvent * aEvent);
/*
{
VBoxEventType_T aType = VBoxEventType_Invalid;
aEvent->COMGETTER(Type)(&aType);
return mListener->HandleEvent(aType, aEvent);
}
*/
};
template <typename X>
class DummyClass {
public:
void AddRef() { }
void Release() { }
void fireNATRedirectEvent(const ComObjPtr<EventSource>&, BSTR, ULONG&, bool&, short unsigned int*&, NATProtocol_T&, short unsigned int*&, uint16_t&, short unsigned int*&, uint16_t&);
void fireNATNetworkChangedEvent(const ComObjPtr<EventSource>&, short unsigned int*&);
void fireNATNetworkStartStopEvent(const ComObjPtr<EventSource>&, short unsigned int*&, BOOL&);
void fireNATNetworkSettingEvent(const ComObjPtr<EventSource>&, short unsigned int*&, BOOL&, short unsigned int*&, short unsigned int*&, BOOL&, BOOL&);
void fireNATNetworkPortForwardEvent(const ComObjPtr<EventSource>&, short unsigned int*&, BOOL&, BOOL&, short unsigned int*&, NATProtocol_T&, short unsigned int*&, LONG&, short unsigned int*&, LONG&);
void fireHostNameResolutionConfigurationChangeEvent(const ComObjPtr<EventSource>&);
void fireHostPCIDevicePlugEvent(ComPtr<EventSource>&, BSTR, bool, bool, ComObjPtr<PCIDeviceAttachment>&, void *);
void fireStateChangedEvent(const ComObjPtr<EventSource>&, MachineState_T);
void fireRuntimeErrorEvent(const ComObjPtr<EventSource>&, BOOL, IN_BSTR, IN_BSTR);
};
#define ATL_NO_VTABLE
#define DECLARE_CLASSFACTORY()
#define VBOX_SCRIPTABLE_IMPL(X) public DummyClass<X>
#define DECLARE_NOT_AGGREGATABLE(X)
#define DECLARE_REGISTRY_RESOURCEID(X)
#define DECLARE_PROTECT_FINAL_CONSTRUCT(Y)
#define DECLARE_CLASSFACTORY_SINGLETON(X)
#define BEGIN_COM_MAP(X)
#define VBOX_DEFAULT_INTERFACE_ENTRIES(X)
#define COM_INTERFACE_ENTRY(X)
#define COM_INTERFACE_ENTRY2(X,Y)
#define END_COM_MAP()
#define DECLARE_EMPTY_CTOR_DTOR(X) public: X(); ~X();
#define DEFINE_EMPTY_CTOR_DTOR(X) X::X() {} X::~X() {}
#define STDMETHODIMP HRESULT
#define STDMETHOD(X) virtual HRESULT X
#define Q_OBJECT
#include "BusAssignmentManager.h"
#include "MediumFormatImpl.h"
typedef MediumFormat IMediumFormat;
typedef struct sdfkkd { } VRDEUSBDEVICEDESC;
typedef struct sdfsdf3 { } VBOXGUESTCTRLHOSTCBCTX, *PVBOXGUESTCTRLHOSTCBCTX;
typedef struct sdffsd2 { } VBOXGUESTCTRLHOSTCALLBACK, *PVBOXGUESTCTRLHOSTCALLBACK;
typedef struct IFsObjInfo { } IFsObjInfo;
#include "AdditionsFacilityImpl.h"
#include "BIOSSettingsImpl.h"
#include "EventImpl.h"
#include "FramebufferImpl.h"
#include "PCIDeviceAttachmentImpl.h"
#include "GuestImpl.h"
#include "GuestDirectoryImpl.h"
#include "GuestFsObjInfoImpl.h"
#include "GuestProcessImpl.h"
#include "GuestSessionImpl.h"
#include "NetworkServiceRunner.h"
#include "SnapshotImpl.h"
#include "ParallelPortImpl.h"
#include "MediumAttachmentImpl.h"
#include "StorageControllerImpl.h"
#include "USBControllerImpl.h"
#include "SerialPortImpl.h"
#include "NATEngineImpl.h"
#include "NetworkAdapterImpl.h"
#include "ProgressImpl.h"
#include "VRDEServerImpl.h"
#include "GuestOSTypeImpl.h"
#include "DHCPServerImpl.h"
#include "SystemPropertiesImpl.h"
#include "KeyboardImpl.h"
#include "DisplayImpl.h"
#include "NATNetworkImpl.h"
#include "VRDEServerImpl.h"
#include "MediumImpl.h"
#include "SessionImpl.h"
#include "HostImpl.h"
#include "USBDeviceImpl.h"
class VRDEServerInfo { };
class EmulatedUSB { };
class ConsoleVRDPServer
{
public:
void SendResize (void) {}
void SendUpdate (unsigned uScreenId, void *pvUpdate, uint32_t cbUpdate) const;
void SendUpdateBitmap (unsigned uScreenId, uint32_t x, uint32_t y, uint32_t w, uint32_t h) const;
void Stop();
};
#endif // !____H_GENODEIMPL