summaryrefslogtreecommitdiff
path: root/src/VBox/Main/include/SessionImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Main/include/SessionImpl.h')
-rw-r--r--src/VBox/Main/include/SessionImpl.h47
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: */