| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "mojo/shell/public/cpp/lib/connection_impl.h" | 5 #include "mojo/shell/public/cpp/lib/connection_impl.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "mojo/shell/public/cpp/connection.h" | 13 #include "mojo/shell/public/cpp/connection.h" |
| 14 #include "mojo/shell/public/cpp/interface_binder.h" | 14 #include "mojo/shell/public/cpp/interface_binder.h" |
| 15 | 15 |
| 16 namespace mojo { | 16 namespace mojo { |
| 17 namespace internal { | 17 namespace internal { |
| 18 | 18 |
| 19 //////////////////////////////////////////////////////////////////////////////// | 19 //////////////////////////////////////////////////////////////////////////////// |
| 20 // ConnectionImpl, public: | 20 // ConnectionImpl, public: |
| 21 | 21 |
| 22 ConnectionImpl::ConnectionImpl( | 22 ConnectionImpl::ConnectionImpl( |
| 23 const std::string& connection_name, | 23 const std::string& connection_name, |
| 24 const std::string& remote_name, | 24 const std::string& remote_name, |
| 25 uint32_t remote_id, | 25 uint32_t remote_id, |
| 26 uint32_t remote_user_id, | 26 const std::string& remote_user_id, |
| 27 shell::mojom::InterfaceProviderPtr remote_interfaces, | 27 shell::mojom::InterfaceProviderPtr remote_interfaces, |
| 28 shell::mojom::InterfaceProviderRequest local_interfaces, | 28 shell::mojom::InterfaceProviderRequest local_interfaces, |
| 29 const std::set<std::string>& allowed_interfaces) | 29 const std::set<std::string>& allowed_interfaces) |
| 30 : connection_name_(connection_name), | 30 : connection_name_(connection_name), |
| 31 remote_name_(remote_name), | 31 remote_name_(remote_name), |
| 32 remote_id_(remote_id), | 32 remote_id_(remote_id), |
| 33 remote_ids_valid_( | 33 remote_ids_valid_( |
| 34 remote_id != shell::mojom::Connector::kInvalidApplicationID), | 34 remote_id != shell::mojom::Connector::kInvalidApplicationID), |
| 35 remote_user_id_(remote_user_id), | 35 remote_user_id_(remote_user_id), |
| 36 local_registry_(std::move(local_interfaces), this), | 36 local_registry_(std::move(local_interfaces), this), |
| (...skipping 21 matching lines...) Expand all Loading... |
| 58 // ConnectionImpl, Connection implementation: | 58 // ConnectionImpl, Connection implementation: |
| 59 | 59 |
| 60 const std::string& ConnectionImpl::GetConnectionName() { | 60 const std::string& ConnectionImpl::GetConnectionName() { |
| 61 return connection_name_; | 61 return connection_name_; |
| 62 } | 62 } |
| 63 | 63 |
| 64 const std::string& ConnectionImpl::GetRemoteApplicationName() { | 64 const std::string& ConnectionImpl::GetRemoteApplicationName() { |
| 65 return remote_name_; | 65 return remote_name_; |
| 66 } | 66 } |
| 67 | 67 |
| 68 uint32_t ConnectionImpl::GetRemoteUserID() const { | 68 const std::string& ConnectionImpl::GetRemoteUserID() const { |
| 69 return remote_user_id_; | 69 return remote_user_id_; |
| 70 } | 70 } |
| 71 | 71 |
| 72 void ConnectionImpl::SetRemoteInterfaceProviderConnectionErrorHandler( | 72 void ConnectionImpl::SetRemoteInterfaceProviderConnectionErrorHandler( |
| 73 const Closure& handler) { | 73 const Closure& handler) { |
| 74 remote_interfaces_.set_connection_error_handler(handler); | 74 remote_interfaces_.set_connection_error_handler(handler); |
| 75 } | 75 } |
| 76 | 76 |
| 77 bool ConnectionImpl::GetRemoteApplicationID(uint32_t* remote_id) const { | 77 bool ConnectionImpl::GetRemoteApplicationID(uint32_t* remote_id) const { |
| 78 if (!remote_ids_valid_) | 78 if (!remote_ids_valid_) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 102 return &local_registry_; | 102 return &local_registry_; |
| 103 } | 103 } |
| 104 | 104 |
| 105 base::WeakPtr<Connection> ConnectionImpl::GetWeakPtr() { | 105 base::WeakPtr<Connection> ConnectionImpl::GetWeakPtr() { |
| 106 return weak_factory_.GetWeakPtr(); | 106 return weak_factory_.GetWeakPtr(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 //////////////////////////////////////////////////////////////////////////////// | 109 //////////////////////////////////////////////////////////////////////////////// |
| 110 // ConnectionImpl, private: | 110 // ConnectionImpl, private: |
| 111 | 111 |
| 112 void ConnectionImpl::OnGotInstanceID(uint32_t target_application_id, | 112 void ConnectionImpl::OnGotInstanceID(const std::string& target_user_id, |
| 113 uint32_t target_user_id) { | 113 uint32_t target_application_id) { |
| 114 DCHECK(!remote_ids_valid_); | 114 DCHECK(!remote_ids_valid_); |
| 115 remote_ids_valid_ = true; | 115 remote_ids_valid_ = true; |
| 116 | 116 |
| 117 remote_id_ = target_application_id; | 117 remote_id_ = target_application_id; |
| 118 remote_user_id_= target_user_id; | 118 remote_user_id_= target_user_id; |
| 119 std::vector<Closure> callbacks; | 119 std::vector<Closure> callbacks; |
| 120 callbacks.swap(remote_id_callbacks_); | 120 callbacks.swap(remote_id_callbacks_); |
| 121 for (auto callback : callbacks) | 121 for (auto callback : callbacks) |
| 122 callback.Run(); | 122 callback.Run(); |
| 123 } | 123 } |
| 124 | 124 |
| 125 } // namespace internal | 125 } // namespace internal |
| 126 } // namespace mojo | 126 } // namespace mojo |
| OLD | NEW |