OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #ifndef MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
| 6 #define MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
| 7 |
| 8 #include <string> |
| 9 |
| 10 #include "base/callback.h" |
| 11 #include "mojo/application/public/interfaces/service_provider.mojom.h" |
| 12 #include "mojo/application/public/interfaces/shell.mojom.h" |
| 13 #include "mojo/public/cpp/bindings/interface_request.h" |
| 14 #include "mojo/services/network/public/interfaces/url_loader.mojom.h" |
| 15 #include "mojo/shell/capability_filter.h" |
| 16 #include "mojo/shell/identity.h" |
| 17 #include "url/gurl.h" |
| 18 |
| 19 namespace mojo { |
| 20 namespace shell { |
| 21 |
| 22 class ApplicationInstance; |
| 23 |
| 24 // This class represents a request for the application manager to connect to an |
| 25 // application. |
| 26 class ConnectToApplicationParams { |
| 27 public: |
| 28 ConnectToApplicationParams(); |
| 29 ~ConnectToApplicationParams(); |
| 30 |
| 31 // Sets both |originator_identity_| and |originator_filter_|. If |originator| |
| 32 // is null, both fields are reset. |
| 33 void SetOriginatorInfo(ApplicationInstance* originator); |
| 34 |
| 35 // Sets both |app_url_| and |app_url_request_|. |
| 36 void SetURLInfo(const GURL& app_url); |
| 37 // Sets both |app_url_| and |app_url_request_|. |
| 38 void SetURLInfo(URLRequestPtr app_url_request); |
| 39 |
| 40 void set_originator_identity(const Identity& value) { |
| 41 originator_identity_ = value; |
| 42 } |
| 43 const Identity& originator_identity() const { return originator_identity_; } |
| 44 |
| 45 void set_originator_filter(const CapabilityFilter& value) { |
| 46 originator_filter_ = value; |
| 47 } |
| 48 const CapabilityFilter& originator_filter() const { |
| 49 return originator_filter_; |
| 50 } |
| 51 |
| 52 const GURL& app_url() const { return app_url_; } |
| 53 |
| 54 const URLRequest* app_url_request() const { return app_url_request_.get(); } |
| 55 // NOTE: This doesn't reset |app_url_|. |
| 56 URLRequestPtr TakeAppURLRequest() { return app_url_request_.Pass(); } |
| 57 |
| 58 void set_qualifier(const std::string& value) { qualifier_ = value; } |
| 59 const std::string& qualifier() const { return qualifier_; } |
| 60 |
| 61 void set_services(InterfaceRequest<ServiceProvider> value) { |
| 62 services_ = value.Pass(); |
| 63 } |
| 64 InterfaceRequest<ServiceProvider> TakeServices() { return services_.Pass(); } |
| 65 |
| 66 void set_exposed_services(ServiceProviderPtr value) { |
| 67 exposed_services_ = value.Pass(); |
| 68 } |
| 69 ServiceProviderPtr TakeExposedServices() { return exposed_services_.Pass(); } |
| 70 |
| 71 void set_filter(const CapabilityFilter& value) { filter_ = value; } |
| 72 const CapabilityFilter& filter() const { return filter_; } |
| 73 |
| 74 void set_on_application_end(const base::Closure& value) { |
| 75 on_application_end_ = value; |
| 76 } |
| 77 const base::Closure& on_application_end() const { |
| 78 return on_application_end_; |
| 79 } |
| 80 |
| 81 void set_connect_callback(const Shell::ConnectToApplicationCallback& value) { |
| 82 connect_callback_ = value; |
| 83 } |
| 84 const Shell::ConnectToApplicationCallback& connect_callback() const { |
| 85 return connect_callback_; |
| 86 } |
| 87 |
| 88 private: |
| 89 // It may be null (i.e., is_null() returns true) which indicates that there is |
| 90 // no originator (e.g., for the first application or in tests). |
| 91 Identity originator_identity_; |
| 92 // Should be ignored if |originator_identity_| is null. |
| 93 CapabilityFilter originator_filter_; |
| 94 // The URL of the application that is being connected to. |
| 95 GURL app_url_; |
| 96 // The URL request to fetch the application. It may contain more information |
| 97 // than |app_url_| (e.g., headers, request body). When it is taken, |app_url_| |
| 98 // remains unchanged. |
| 99 URLRequestPtr app_url_request_; |
| 100 // Please see the comments in identity.h for the exact meaning of qualifier. |
| 101 std::string qualifier_; |
| 102 InterfaceRequest<ServiceProvider> services_; |
| 103 ServiceProviderPtr exposed_services_; |
| 104 CapabilityFilter filter_; |
| 105 base::Closure on_application_end_; |
| 106 Shell::ConnectToApplicationCallback connect_callback_; |
| 107 |
| 108 DISALLOW_COPY_AND_ASSIGN(ConnectToApplicationParams); |
| 109 }; |
| 110 |
| 111 } // namespace shell |
| 112 } // namespace mojo |
| 113 |
| 114 #endif // MOJO_SHELL_CONNECT_TO_APPLICATION_PARAMS_H_ |
OLD | NEW |