VirtualBox

source: vbox/trunk/src/VBox/Main/include/VRDPServerImpl.h@ 12126

Last change on this file since 12126 was 12126, checked in by vboxsync, 16 years ago

Drop existing RDP connection and allow the new client to connect, configurable, default off.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.2 KB
Line 
1/* $Id: VRDPServerImpl.h 12126 2008-09-05 12:28:36Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation
6 */
7
8/*
9 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
20 * Clara, CA 95054 USA or visit http://www.sun.com if you need
21 * additional information or have any questions.
22 */
23
24#ifndef ____H_VRDPSERVER
25#define ____H_VRDPSERVER
26
27#include "VirtualBoxBase.h"
28
29#include <VBox/VRDPAuth.h>
30
31class Machine;
32
33class ATL_NO_VTABLE VRDPServer :
34 public VirtualBoxBaseNEXT,
35 public VirtualBoxSupportErrorInfoImpl <VRDPServer, IVRDPServer>,
36 public VirtualBoxSupportTranslation <VRDPServer>,
37 public IVRDPServer
38{
39public:
40
41 struct Data
42 {
43 bool operator== (const Data &that) const
44 {
45 return this == &that ||
46 (mEnabled == that.mEnabled &&
47 mVRDPPort == that.mVRDPPort &&
48 mVRDPAddress == that.mVRDPAddress &&
49 mAuthType == that.mAuthType &&
50 mAuthTimeout == that.mAuthTimeout &&
51 mAllowMultiConnection == that.mAllowMultiConnection &&
52 mReuseSingleConnection == that.mReuseSingleConnection);
53 }
54
55 BOOL mEnabled;
56 ULONG mVRDPPort;
57 Bstr mVRDPAddress;
58 VRDPAuthType_T mAuthType;
59 ULONG mAuthTimeout;
60 BOOL mAllowMultiConnection;
61 BOOL mReuseSingleConnection;
62 };
63
64 VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT (VRDPServer)
65
66 DECLARE_NOT_AGGREGATABLE(VRDPServer)
67
68 DECLARE_PROTECT_FINAL_CONSTRUCT()
69
70 BEGIN_COM_MAP(VRDPServer)
71 COM_INTERFACE_ENTRY(ISupportErrorInfo)
72 COM_INTERFACE_ENTRY(IVRDPServer)
73 END_COM_MAP()
74
75 NS_DECL_ISUPPORTS
76
77 DECLARE_EMPTY_CTOR_DTOR (VRDPServer)
78
79 HRESULT FinalConstruct();
80 void FinalRelease();
81
82 // public initializer/uninitializer for internal purposes only
83 HRESULT init(Machine *aParent);
84 HRESULT init(Machine *aParent, VRDPServer *aThat);
85 HRESULT initCopy (Machine *aParent, VRDPServer *aThat);
86 void uninit();
87
88 // IVRDPServer properties
89 STDMETHOD(COMGETTER(Enabled)) (BOOL *aEnabled);
90 STDMETHOD(COMSETTER(Enabled)) (BOOL aEnable);
91 STDMETHOD(COMGETTER(Port)) (ULONG *aPort);
92 STDMETHOD(COMSETTER(Port)) (ULONG aPort);
93 STDMETHOD(COMGETTER(NetAddress)) (BSTR *aAddress);
94 STDMETHOD(COMSETTER(NetAddress)) (INPTR BSTR aAddress);
95 STDMETHOD(COMGETTER(AuthType)) (VRDPAuthType_T *aType);
96 STDMETHOD(COMSETTER(AuthType)) (VRDPAuthType_T aType);
97 STDMETHOD(COMGETTER(AuthTimeout)) (ULONG *aTimeout);
98 STDMETHOD(COMSETTER(AuthTimeout)) (ULONG aTimeout);
99 STDMETHOD(COMGETTER(AllowMultiConnection)) (BOOL *aAllowMultiConnection);
100 STDMETHOD(COMSETTER(AllowMultiConnection)) (BOOL aAllowMultiConnection);
101 STDMETHOD(COMGETTER(ReuseSingleConnection)) (BOOL *aReuseSingleConnection);
102 STDMETHOD(COMSETTER(ReuseSingleConnection)) (BOOL aReuseSingleConnection);
103
104 // IVRDPServer methods
105
106 // public methods only for internal purposes
107
108 HRESULT loadSettings (const settings::Key &aMachineNode);
109 HRESULT saveSettings (settings::Key &aMachineNode);
110
111 bool isModified() { AutoWriteLock alock (this); return mData.isBackedUp(); }
112 bool isReallyModified() { AutoWriteLock alock (this); return mData.hasActualChanges(); }
113 bool rollback();
114 void commit();
115 void copyFrom (VRDPServer *aThat);
116
117 // public methods for internal purposes only
118 // (ensure there is a caller and a read lock before calling them!)
119
120 const Backupable <Data> &data() const { return mData; }
121
122 // for VirtualBoxSupportErrorInfoImpl
123 static const wchar_t *getComponentName() { return L"VRDPServer"; }
124
125private:
126
127 const ComObjPtr <Machine, ComWeakRef> mParent;
128 const ComObjPtr <VRDPServer> mPeer;
129
130 Backupable <Data> mData;
131};
132
133#endif // ____H_VRDPSERVER
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette