summaryrefslogtreecommitdiffstats
path: root/remoting/host/win/rdp_client.h
diff options
context:
space:
mode:
authoralexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-23 19:07:44 +0000
committeralexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-23 19:07:44 +0000
commit4447016b31992cea934c3f83fb5d0ddd4147f56e (patch)
treedd986da8e5ac0fae1fd34f9a0227d126c160fb30 /remoting/host/win/rdp_client.h
parent98b5eef7d47215a318634daa9cbc411dae2ecf71 (diff)
downloadchromium_src-4447016b31992cea934c3f83fb5d0ddd4147f56e.zip
chromium_src-4447016b31992cea934c3f83fb5d0ddd4147f56e.tar.gz
chromium_src-4447016b31992cea934c3f83fb5d0ddd4147f56e.tar.bz2
Introducing RdpConsole class that uses the MS RDP ActiveX control to create a Windows session.
BUG=137696,177832 TEST=remoting_unittests.RdpConsoleTest Review URL: https://chromiumcodereview.appspot.com/12320045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184323 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/win/rdp_client.h')
-rw-r--r--remoting/host/win/rdp_client.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/remoting/host/win/rdp_client.h b/remoting/host/win/rdp_client.h
new file mode 100644
index 0000000..4987397
--- /dev/null
+++ b/remoting/host/win/rdp_client.h
@@ -0,0 +1,54 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_HOST_WIN_RDP_CLIENT_H_
+#define REMOTING_HOST_WIN_RDP_CLIENT_H_
+
+#include "base/basictypes.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/threading/non_thread_safe.h"
+
+namespace base {
+class SingleThreadTaskRunner;
+} // namespace
+
+namespace net {
+class IPEndPoint;
+} // namespace
+
+namespace remoting {
+
+// Establishes a loopback RDP connection to spawn a new Windows session.
+class RdpClient : public base::NonThreadSafe {
+ public:
+ class EventHandler {
+ public:
+ virtual ~EventHandler() {}
+
+ // Notifies the event handler that an RDP connection has been established
+ // successfully.
+ virtual void OnRdpConnected(const net::IPEndPoint& client_endpoint) = 0;
+
+ // Notifies that the RDP connection has been closed.
+ virtual void OnRdpClosed() = 0;
+ };
+
+ RdpClient(
+ scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
+ EventHandler* event_handler);
+ virtual ~RdpClient();
+
+ private:
+ // The actual implementation resides in Core class.
+ class Core;
+ scoped_refptr<Core> core_;
+
+ DISALLOW_COPY_AND_ASSIGN(RdpClient);
+};
+
+} // namespace remoting
+
+#endif // REMOTING_HOST_WIN_RDP_CLIENT_H_