interface_factory.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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 11namespace mojo { 12 13class ApplicationConnection; 14template <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. 20template <typename Interface> 21class 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