Update broken references to image assets
[chromium-blink-merge.git] / mojo / application / public / cpp / lib / interface_factory_connector.h
blob8d13bc241a4d20e692bcede358b794692a81e082
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
3 // found in the LICENSE file.
5 #ifndef MOJO_APPLICATION_PUBLIC_CPP_LIB_INTERFACE_FACTORY_CONNECTOR_H_
6 #define MOJO_APPLICATION_PUBLIC_CPP_LIB_INTERFACE_FACTORY_CONNECTOR_H_
8 #include "mojo/application/public/cpp/interface_factory.h"
9 #include "mojo/application/public/cpp/service_connector.h"
10 #include "mojo/public/cpp/bindings/interface_request.h"
12 namespace mojo {
13 namespace internal {
15 template <typename Interface>
16 class InterfaceFactoryConnector : public ServiceConnector {
17 public:
18 explicit InterfaceFactoryConnector(InterfaceFactory<Interface>* factory)
19 : factory_(factory) {}
20 ~InterfaceFactoryConnector() override {}
22 void ConnectToService(ApplicationConnection* application_connection,
23 const std::string& interface_name,
24 ScopedMessagePipeHandle client_handle) override {
25 factory_->Create(application_connection,
26 MakeRequest<Interface>(client_handle.Pass()));
29 private:
30 InterfaceFactory<Interface>* factory_;
31 MOJO_DISALLOW_COPY_AND_ASSIGN(InterfaceFactoryConnector);
34 } // namespace internal
35 } // namespace mojo
37 #endif // MOJO_APPLICATION_PUBLIC_CPP_LIB_INTERFACE_FACTORY_CONNECTOR_H_