| Index: services/service_manager/public/cpp/connector.h
|
| diff --git a/services/service_manager/public/cpp/connector.h b/services/service_manager/public/cpp/connector.h
|
| index 5251b26feea9cc5ffc318fb3eac2fc408cc066db..a0571c3a180256abe2b67675f6d9229de8c141a8 100644
|
| --- a/services/service_manager/public/cpp/connector.h
|
| +++ b/services/service_manager/public/cpp/connector.h
|
| @@ -36,73 +36,38 @@ class Connector {
|
| public:
|
| virtual ~Connector() {}
|
|
|
| - class ConnectParams {
|
| - public:
|
| - explicit ConnectParams(const Identity& target);
|
| - explicit ConnectParams(const std::string& name);
|
| - ~ConnectParams();
|
| -
|
| - const Identity& target() { return target_; }
|
| - void set_target(const Identity& target) { target_ = target; }
|
| - void set_client_process_connection(
|
| - mojom::ServicePtr service,
|
| - mojom::PIDReceiverRequest pid_receiver_request) {
|
| - service_ = std::move(service);
|
| - pid_receiver_request_ = std::move(pid_receiver_request);
|
| - }
|
| - void TakeClientProcessConnection(
|
| - mojom::ServicePtr* service,
|
| - mojom::PIDReceiverRequest* pid_receiver_request) {
|
| - *service = std::move(service_);
|
| - *pid_receiver_request = std::move(pid_receiver_request_);
|
| - }
|
| - InterfaceProvider* remote_interfaces() { return remote_interfaces_; }
|
| - void set_remote_interfaces(InterfaceProvider* remote_interfaces) {
|
| - remote_interfaces_ = remote_interfaces;
|
| - }
|
| -
|
| - private:
|
| - Identity target_;
|
| - mojom::ServicePtr service_;
|
| - mojom::PIDReceiverRequest pid_receiver_request_;
|
| - InterfaceProvider* remote_interfaces_ = nullptr;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ConnectParams);
|
| - };
|
| -
|
| // Creates a new Connector instance and fills in |*request| with a request
|
| // for the other end the Connector's interface.
|
| static std::unique_ptr<Connector> Create(mojom::ConnectorRequest* request);
|
|
|
| - // Requests a new connection to an application. Returns a pointer to the
|
| - // connection if the connection is permitted by this application's delegate,
|
| - // or nullptr otherwise. Caller takes ownership.
|
| - // Once this method is called, this object is bound to the thread on which the
|
| - // call took place. To pass to another thread, call Clone() and pass the
|
| - // result.
|
| + // Registers an instance of a service in a process started by the client (or
|
| + // someone else). Must be called before Connect() may be called to |identity|.
|
| + virtual void RegisterService(
|
| + const Identity& identity,
|
| + mojom::ServicePtr service,
|
| + mojom::PIDReceiverRequest pid_receiver_request) = 0;
|
| +
|
| + // Requests a new connection to a service. Returns a pointer to the
|
| + // connection if the connection is permitted by that service, nullptr
|
| + // otherwise. Once this method is called, this object is bound to the thread
|
| + // on which the call took place. To pass to another thread, call Clone() and
|
| + // pass the result.
|
| virtual std::unique_ptr<Connection> Connect(const std::string& name) = 0;
|
| - virtual std::unique_ptr<Connection> Connect(ConnectParams* params) = 0;
|
| + virtual std::unique_ptr<Connection> Connect(const Identity& target) = 0;
|
|
|
| - // Connect to application identified by |request->name| and connect to the
|
| - // service implementation of the interface identified by |Interface|.
|
| + // Connect to |target| & request to bind |Interface|. Does not retain a
|
| + // connection to |target|.
|
| template <typename Interface>
|
| - void ConnectToInterface(ConnectParams* params,
|
| + void ConnectToInterface(const Identity& target,
|
| mojo::InterfacePtr<Interface>* ptr) {
|
| - std::unique_ptr<Connection> connection = Connect(params);
|
| + std::unique_ptr<Connection> connection = Connect(target);
|
| if (connection)
|
| connection->GetInterface(ptr);
|
| }
|
| template <typename Interface>
|
| - void ConnectToInterface(const Identity& target,
|
| - mojo::InterfacePtr<Interface>* ptr) {
|
| - ConnectParams params(target);
|
| - return ConnectToInterface(¶ms, ptr);
|
| - }
|
| - template <typename Interface>
|
| void ConnectToInterface(const std::string& name,
|
| mojo::InterfacePtr<Interface>* ptr) {
|
| - ConnectParams params(name);
|
| - return ConnectToInterface(¶ms, ptr);
|
| + return ConnectToInterface(Identity(name, mojom::kInheritUserID), ptr);
|
| }
|
|
|
| // Creates a new instance of this class which may be passed to another thread.
|
|
|