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_MESSAGE_FILTER_HOST_H_
6#define PPAPI_HOST_MESSAGE_FILTER_HOST_H_
7
8#include "base/compiler_specific.h"
9#include "base/memory/ref_counted.h"
10#include "ppapi/host/ppapi_host_export.h"
11#include "ppapi/host/resource_host.h"
12
13namespace ppapi {
14namespace host {
15
16class PpapiHost;
17class ResourceMessageFilter;
18
19// This class is a generic ResourceHost that is composed of a single
20// ResourceMessageFilter. There are cases where ResourceHosts only serve the
21// purpose of passing messages onto a message filter to be handled on another
22// thread. This class can be used as the host in those cases.
23class PPAPI_HOST_EXPORT MessageFilterHost : public ResourceHost {
24 public:
25  MessageFilterHost(PpapiHost* host,
26                    PP_Instance instance,
27                    PP_Resource resource,
28                    const scoped_refptr<ResourceMessageFilter>& message_filter);
29  virtual ~MessageFilterHost();
30
31 private:
32  DISALLOW_COPY_AND_ASSIGN(MessageFilterHost);
33};
34
35}  // namespace host
36}  // namespace ppapi
37
38#endif  // PPAPI_HOST_MESSAGE_FILTER_HOST_H_
39