Index: remoting/host/security_key/remote_security_key_ipc_server.cc |
diff --git a/remoting/host/security_key/remote_security_key_ipc_server.cc b/remoting/host/security_key/remote_security_key_ipc_server.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..592328ffe1977ddab0c22d3d68d86a2521bbb56d |
--- /dev/null |
+++ b/remoting/host/security_key/remote_security_key_ipc_server.cc |
@@ -0,0 +1,54 @@ |
+// Copyright 2016 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. |
+ |
+#include "remoting/host/security_key/remote_security_key_ipc_server.h" |
+ |
+#include <cstdint> |
+#include <memory> |
+#include <string> |
+ |
+#include "base/callback.h" |
+#include "base/memory/ptr_util.h" |
+#include "base/threading/thread_checker.h" |
+#include "base/timer/timer.h" |
+#include "ipc/ipc_channel.h" |
+#include "ipc/ipc_message.h" |
+#include "ipc/ipc_message_macros.h" |
+#include "remoting/base/logging.h" |
+#include "remoting/host/chromoting_messages.h" |
+#include "remoting/host/security_key/remote_security_key_ipc_server_impl.h" |
+ |
+namespace { |
+ |
+// Not thread safe, tests which set this value must do so on the same thread. |
+static remoting::RemoteSecurityKeyIpcServerFactory* g_factory = nullptr; |
+ |
+} // namespace |
+ |
+namespace remoting { |
+ |
+void RemoteSecurityKeyIpcServer::SetFactoryForTest( |
+ RemoteSecurityKeyIpcServerFactory* factory) { |
+ g_factory = factory; |
+} |
+ |
+std::unique_ptr<RemoteSecurityKeyIpcServer> RemoteSecurityKeyIpcServer::Create( |
+ int connection_id, |
+ uint32_t peer_session_id, |
+ base::TimeDelta initial_connect_timeout, |
+ const GnubbyAuthHandler::SendMessageCallback& message_callback, |
+ const base::Closure& done_callback) { |
+ std::unique_ptr<RemoteSecurityKeyIpcServer> ipc_server = |
+ g_factory |
+ ? g_factory->Create(connection_id, peer_session_id, |
+ initial_connect_timeout, message_callback, |
+ done_callback) |
+ : base::WrapUnique(new RemoteSecurityKeyIpcServerImpl( |
+ connection_id, peer_session_id, initial_connect_timeout, |
+ message_callback, done_callback)); |
+ |
+ return ipc_server; |
+} |
+ |
+} // namespace remoting |