Index: remoting/client/ios/session/remoting_client_session_delegate.mm |
diff --git a/remoting/client/ios/session/remoting_client_session_delegate.mm b/remoting/client/ios/session/remoting_client_session_delegate.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..97401ba27968bdb28cdf8f5aad8d136acb8283fd |
--- /dev/null |
+++ b/remoting/client/ios/session/remoting_client_session_delegate.mm |
@@ -0,0 +1,79 @@ |
+// Copyright 2017 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. |
+ |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
+#import "remoting/client/ios/session/remoting_client_session_delegate.h" |
+ |
+#include "base/strings/sys_string_conversions.h" |
+#include "remoting/client/chromoting_client_runtime.h" |
+ |
+using base::SysUTF8ToNSString; |
+ |
+namespace remoting { |
+ |
+RemotingClientSessonDelegate::RemotingClientSessonDelegate( |
+ RemotingClient* client) |
+ : client_(client), weak_factory_(this) { |
+ runtime_ = ChromotingClientRuntime::GetInstance(); |
+} |
+ |
+RemotingClientSessonDelegate::~RemotingClientSessonDelegate() { |
+ client_ = nil; |
+} |
+ |
+void RemotingClientSessonDelegate::OnConnectionState( |
+ protocol::ConnectionToHost::State state, |
+ protocol::ErrorCode error) { |
+ DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ [client_ onConnectionState:state error:error]; |
+} |
+ |
+void RemotingClientSessonDelegate::CommitPairingCredentials( |
+ const std::string& host, |
+ const std::string& id, |
+ const std::string& secret) { |
+ DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ [client_ commitPairingCredentialsForHost:SysUTF8ToNSString(host) |
+ id:SysUTF8ToNSString(id) |
+ secret:SysUTF8ToNSString(secret)]; |
+} |
+ |
+void RemotingClientSessonDelegate::FetchThirdPartyToken( |
+ const std::string& token_url, |
+ const std::string& client_id, |
+ const std::string& scope) { |
+ DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ [client_ fetchThirdPartyTokenForUrl:SysUTF8ToNSString(token_url) |
+ clientId:SysUTF8ToNSString(client_id) |
+ scope:SysUTF8ToNSString(scope)]; |
+} |
+ |
+void RemotingClientSessonDelegate::SetCapabilities( |
+ const std::string& capabilities) { |
+ DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ [client_ setCapabilities:SysUTF8ToNSString(capabilities)]; |
+} |
+ |
+void RemotingClientSessonDelegate::HandleExtensionMessage( |
+ const std::string& type, |
+ const std::string& message) { |
+ DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ [client_ handleExtensionMessageOfType:SysUTF8ToNSString(type) |
+ message:SysUTF8ToNSString(message)]; |
+} |
+ |
+base::WeakPtr<RemotingClientSessonDelegate> |
+RemotingClientSessonDelegate::GetWeakPtr() { |
+ return weak_factory_.GetWeakPtr(); |
+} |
+ |
+} // namespace remoting |