Home | History | Annotate | Download | only in host
      1 // Copyright (c) 2012 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 PPAPI_HOST_HOST_FACTORY_H_
      6 #define PPAPI_HOST_HOST_FACTORY_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 #include "ppapi/c/pp_instance.h"
     10 
     11 namespace IPC {
     12 class Message;
     13 }
     14 
     15 namespace ppapi {
     16 
     17 namespace proxy {
     18 class ResourceMessageCallParams;
     19 }
     20 
     21 namespace host {
     22 
     23 class PpapiHost;
     24 class ResourceHost;
     25 
     26 // A host factory creates ResourceHosts for incoming create messages from
     27 // the plugin. This allows us to implement the hosts at the chrome/content
     28 // layer without the ppapi layer knowing about the details.
     29 class HostFactory {
     30  public:
     31   virtual ~HostFactory() {}
     32 
     33   virtual scoped_ptr<ResourceHost> CreateResourceHost(
     34       PpapiHost* host,
     35       const proxy::ResourceMessageCallParams& params,
     36       PP_Instance instance,
     37       const IPC::Message& message) = 0;
     38 };
     39 
     40 }  // namespace host
     41 }  // namespace ppapi
     42 
     43 #endif  // PPAPI_HOST_HOST_FACTORY_H_
     44