15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_VIEW_MANAGER_CLIENT_FACTORY_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_VIEW_MANAGER_CLIENT_FACTORY_H_
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "mojo/public/cpp/application/interface_factory.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h"
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace mojo {
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ViewManagerDelegate;
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass Shell;
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Add an instance of this class to an incoming connection to allow it to
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// instantiate ViewManagerClient implementations in response to
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// ViewManagerClient requests.
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ViewManagerClientFactory : public InterfaceFactory<ViewManagerClient> {
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public:
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ViewManagerClientFactory(Shell* shell, ViewManagerDelegate* delegate);
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual ~ViewManagerClientFactory();
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // InterfaceFactory<ViewManagerClient> implementation.
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void Create(ApplicationConnection* connection,
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                      InterfaceRequest<ViewManagerClient> request)
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      MOJO_OVERRIDE;
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private:
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  Shell* shell_;
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  ViewManagerDelegate* delegate_;
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace mojo
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_VIEW_MANAGER_CLIENT_FACTORY_H_
37