| 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 #ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ | 5 #ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ |
| 6 #define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ | 6 #define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 // both must be non-null. If both are null, the connection will create its own | 49 // both must be non-null. If both are null, the connection will create its own |
| 50 // Connector and request to pass to the Service Manager on initialization. | 50 // Connector and request to pass to the Service Manager on initialization. |
| 51 ServiceContext(service_manager::Service* service, | 51 ServiceContext(service_manager::Service* service, |
| 52 mojom::ServiceRequest request, | 52 mojom::ServiceRequest request, |
| 53 std::unique_ptr<Connector> connector = nullptr, | 53 std::unique_ptr<Connector> connector = nullptr, |
| 54 mojom::ConnectorRequest connector_request = nullptr); | 54 mojom::ConnectorRequest connector_request = nullptr); |
| 55 | 55 |
| 56 ~ServiceContext() override; | 56 ~ServiceContext() override; |
| 57 | 57 |
| 58 Connector* connector() { return connector_.get(); } | 58 Connector* connector() { return connector_.get(); } |
| 59 const Identity& identity() { return identity_; } | 59 const Identity& identity() { return local_info_.identity; } |
| 60 | 60 |
| 61 // Specify a function to be called when the connection to the service manager | 61 // Specify a function to be called when the connection to the service manager |
| 62 // is lost. | 62 // is lost. |
| 63 // Note that if connection has already been lost, then |closure| is called | 63 // Note that if connection has already been lost, then |closure| is called |
| 64 // immediately. | 64 // immediately. |
| 65 void SetConnectionLostClosure(const base::Closure& closure); | 65 void SetConnectionLostClosure(const base::Closure& closure); |
| 66 | 66 |
| 67 private: | 67 private: |
| 68 // mojom::Service: | 68 // mojom::Service: |
| 69 void OnStart(const ServiceInfo& info, | 69 void OnStart(const ServiceInfo& info, |
| 70 const OnStartCallback& callback) override; | 70 const OnStartCallback& callback) override; |
| 71 void OnConnect(const ServiceInfo& source_info, | 71 void OnConnect(const ServiceInfo& source_info, |
| 72 mojom::InterfaceProviderRequest interfaces, | 72 mojom::InterfaceProviderRequest interfaces) override; |
| 73 const InterfaceSet& allowed_interfaces, | |
| 74 const CapabilitySet& allowed_capabilities) override; | |
| 75 | 73 |
| 76 void OnConnectionError(); | 74 void OnConnectionError(); |
| 77 | 75 |
| 78 // A callback called when OnStart() is run. | 76 // A callback called when OnStart() is run. |
| 79 base::Closure initialize_handler_; | 77 base::Closure initialize_handler_; |
| 80 | 78 |
| 81 // We track the lifetime of incoming connection registries as it more | 79 // We track the lifetime of incoming connection registries as it more |
| 82 // convenient for the client. | 80 // convenient for the client. |
| 83 std::vector<std::unique_ptr<InterfaceRegistry>> incoming_connections_; | 81 std::vector<std::unique_ptr<InterfaceRegistry>> incoming_connections_; |
| 84 | 82 |
| 85 // A pending Connector request which will eventually be passed to the Service | 83 // A pending Connector request which will eventually be passed to the Service |
| 86 // Manager. | 84 // Manager. |
| 87 mojom::ConnectorRequest pending_connector_request_; | 85 mojom::ConnectorRequest pending_connector_request_; |
| 88 | 86 |
| 89 service_manager::Service* service_; | 87 service_manager::Service* service_; |
| 90 mojo::Binding<mojom::Service> binding_; | 88 mojo::Binding<mojom::Service> binding_; |
| 91 std::unique_ptr<Connector> connector_; | 89 std::unique_ptr<Connector> connector_; |
| 92 service_manager::Identity identity_; | 90 service_manager::ServiceInfo local_info_; |
| 93 bool should_run_connection_lost_closure_ = false; | 91 bool should_run_connection_lost_closure_ = false; |
| 94 | 92 |
| 95 base::Closure connection_lost_closure_; | 93 base::Closure connection_lost_closure_; |
| 96 | 94 |
| 97 DISALLOW_COPY_AND_ASSIGN(ServiceContext); | 95 DISALLOW_COPY_AND_ASSIGN(ServiceContext); |
| 98 }; | 96 }; |
| 99 | 97 |
| 100 } // namespace service_manager | 98 } // namespace service_manager |
| 101 | 99 |
| 102 #endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ | 100 #endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_SERVICE_CONTEXT_H_ |
| OLD | NEW |