diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2014-03-26 19:21:20 +0000 |
---|---|---|
committer | <> | 2014-05-08 15:03:54 +0000 |
commit | fb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch) | |
tree | c2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/VBox/Main/include/SessionImpl.h | |
parent | 58ed4748338f9466599adfc8a9171280ed99e23f (diff) | |
download | VirtualBox-master.tar.gz |
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
Diffstat (limited to 'src/VBox/Main/include/SessionImpl.h')
-rw-r--r-- | src/VBox/Main/include/SessionImpl.h | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/src/VBox/Main/include/SessionImpl.h b/src/VBox/Main/include/SessionImpl.h index dd93411a..f6a3db13 100644 --- a/src/VBox/Main/include/SessionImpl.h +++ b/src/VBox/Main/include/SessionImpl.h @@ -1,10 +1,9 @@ /** @file - * * VBox Client Session COM Class definition */ /* - * Copyright (C) 2006-2012 Oracle Corporation + * Copyright (C) 2006-2013 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -25,14 +24,6 @@ # include "win/resource.h" #endif -/** @def VBOX_WITH_SYS_V_IPC_SESSION_WATCHER - * Use SYS V IPC for watching a session. - * This is defined in the Makefile since it's also used by MachineImpl.h/cpp. - */ -#ifdef DOXYGEN_RUNNING -# define VBOX_WITH_SYS_V_IPC_SESSION_WATCHER -#endif - #ifdef RT_OS_WINDOWS [threading(free)] #endif @@ -80,7 +71,11 @@ public: // IInternalSessionControl methods STDMETHOD(GetPID)(ULONG *aPid); STDMETHOD(GetRemoteConsole)(IConsole **aConsole); - STDMETHOD(AssignMachine)(IMachine *aMachine, LockType_T aLockType); +#ifndef VBOX_WITH_GENERIC_SESSION_WATCHER + STDMETHOD(AssignMachine)(IMachine *aMachine, LockType_T aLockType, IN_BSTR aTokenId); +#else /* VBOX_WITH_GENERIC_SESSION_WATCHER */ + STDMETHOD(AssignMachine)(IMachine *aMachine, LockType_T aLockType, IToken *aToken); +#endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ STDMETHOD(AssignRemoteMachine)(IMachine *aMachine, IConsole *aConsole); STDMETHOD(UpdateMachineState)(MachineState_T aMachineState); STDMETHOD(Uninitialize)(); @@ -92,6 +87,7 @@ public: STDMETHOD(OnCPUChange)(ULONG aCPU, BOOL aRemove); STDMETHOD(OnCPUExecutionCapChange)(ULONG aExecutionCap); STDMETHOD(OnVRDEServerChange)(BOOL aRestart); + STDMETHOD(OnVideoCaptureChange)(); STDMETHOD(OnUSBControllerChange)(); STDMETHOD(OnSharedFolderChange)(BOOL aGlobal); STDMETHOD(OnClipboardModeChange)(ClipboardMode_T aClipboardMode); @@ -100,7 +96,7 @@ public: STDMETHOD(OnUSBDeviceDetach)(IN_BSTR aId, IVirtualBoxErrorInfo *aError); STDMETHOD(OnShowWindow)(BOOL aCheck, BOOL *aCanShow, LONG64 *aWinId); STDMETHOD(OnBandwidthGroupChange)(IBandwidthGroup *aBandwidthGroup); - STDMETHOD(OnStorageDeviceChange)(IMediumAttachment *aMediumAttachment, BOOL aRemove); + STDMETHOD(OnStorageDeviceChange)(IMediumAttachment *aMediumAttachment, BOOL aRemove, BOOL aSilent); STDMETHOD(AccessGuestProperty)(IN_BSTR aName, IN_BSTR aValue, IN_BSTR aFlags, BOOL aIsSetter, BSTR *aRetValue, LONG64 *aRetTimestamp, BSTR *aRetFlags); STDMETHOD(EnumerateGuestProperties)(IN_BSTR aPatterns, @@ -110,43 +106,34 @@ public: ComSafeArrayOut(BSTR, aFlags)); STDMETHOD(OnlineMergeMedium)(IMediumAttachment *aMediumAttachment, ULONG aSourceIdx, ULONG aTargetIdx, - IMedium *aSource, IMedium *aTarget, - BOOL aMergeForward, IMedium *aParentForTarget, - ComSafeArrayIn(IMedium *, aChildrenToReparent), IProgress *aProgress); STDMETHOD(EnableVMMStatistics)(BOOL aEnable); + STDMETHOD(PauseWithReason)(Reason_T aReason); + STDMETHOD(ResumeWithReason)(Reason_T aReason); + STDMETHOD(SaveStateWithReason)(Reason_T aReason, IProgress **aProgress); private: HRESULT unlockMachine(bool aFinalRelease, bool aFromServer); - HRESULT grabIPCSemaphore(); - void releaseIPCSemaphore(); SessionState_T mState; SessionType_T mType; ComPtr<IInternalMachineControl> mControl; +#ifndef VBOX_COM_INPROC_API_CLIENT ComObjPtr<Console> mConsole; +#endif ComPtr<IMachine> mRemoteMachine; ComPtr<IConsole> mRemoteConsole; ComPtr<IVirtualBox> mVirtualBox; - /* interprocess semaphore handle (id) for the opened machine */ -#if defined(RT_OS_WINDOWS) - HANDLE mIPCSem; - HANDLE mIPCThreadSem; -#elif defined(RT_OS_OS2) - RTTHREAD mIPCThread; - RTSEMEVENT mIPCThreadSem; -#elif defined(VBOX_WITH_SYS_V_IPC_SESSION_WATCHER) - int mIPCSem; -#else -# error "Port me!" -#endif + class ClientTokenHolder; + + ClientTokenHolder *mClientTokenHolder; }; -#endif // ____H_SESSIONIMPL +#endif // !____H_SESSIONIMPL /* vi: set tabstop=4 shiftwidth=4 expandtab: */ |