Home | History | Annotate | Download | only in application
      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.
      4 
      5 #ifndef MOJO_PUBLIC_CPP_APPLICATION_INTERFACE_FACTORY_H_
      6 #define MOJO_PUBLIC_CPP_APPLICATION_INTERFACE_FACTORY_H_
      7 
      8 #include "mojo/public/cpp/bindings/interface_impl.h"
      9 #include "mojo/public/cpp/bindings/interface_request.h"
     10 
     11 namespace mojo {
     12 
     13 class ApplicationConnection;
     14 template <typename Interface> class InterfaceRequest;
     15 
     16 // Implement this class to provide implementations of a given interface and
     17 // bind them to incoming requests. The implementation of this class is
     18 // responsible for managing the lifetime of the implementations of the
     19 // interface.
     20 template <typename Interface>
     21 class InterfaceFactory {
     22  public:
     23   virtual ~InterfaceFactory() {}
     24   virtual void Create(ApplicationConnection* connection,
     25                       InterfaceRequest<Interface> request) = 0;
     26 };
     27 
     28 }  // namespace mojo
     29 
     30 #endif  // MOJO_PUBLIC_CPP_APPLICATION_INTERFACE_FACTORY_H_
     31