// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef PPAPI_HOST_HOST_FACTORY_H_
#define PPAPI_HOST_HOST_FACTORY_H_

#include "base/memory/scoped_ptr.h"
#include "ppapi/c/pp_instance.h"

namespace IPC {
class Message;
}

namespace ppapi {

namespace proxy {
class ResourceMessageCallParams;
}

namespace host {

class PpapiHost;
class ResourceHost;

// A host factory creates ResourceHosts for incoming create messages from
// the plugin. This allows us to implement the hosts at the chrome/content
// layer without the ppapi layer knowing about the details.
class HostFactory {
 public:
  virtual ~HostFactory() {}

  virtual scoped_ptr<ResourceHost> CreateResourceHost(
      PpapiHost* host,
      const proxy::ResourceMessageCallParams& params,
      PP_Instance instance,
      const IPC::Message& message) = 0;
};

}  // namespace host
}  // namespace ppapi

#endif  // PPAPI_HOST_HOST_FACTORY_H_
