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