blob: e1bedf9e44dcb7919234c2edb871ad579b153462 [file] [log] [blame]
[email protected]43a40202010-11-12 16:25:011// Copyright (c) 2010 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_PPB_BUFFER_PROXY_H_
6#define PPAPI_PPB_BUFFER_PROXY_H_
7
8#include "ppapi/c/pp_module.h"
9#include "ppapi/proxy/interface_proxy.h"
10
11struct PPB_Buffer_Dev;
12
13namespace pp {
14namespace proxy {
15
16class PPB_Buffer_Proxy : public InterfaceProxy {
17 public:
18 PPB_Buffer_Proxy(Dispatcher* dispatcher, const void* target_interface);
19 virtual ~PPB_Buffer_Proxy();
20
21 const PPB_Buffer_Dev* ppb_buffer_target() const {
22 return static_cast<const PPB_Buffer_Dev*>(target_interface());
23 }
24
25 // InterfaceProxy implementation.
26 virtual const void* GetSourceInterface() const;
27 virtual InterfaceID GetInterfaceId() const;
28 virtual void OnMessageReceived(const IPC::Message& msg);
29
30 private:
31 // Message handlers.
32 void OnMsgCreate(PP_Module module,
33 int32_t size,
34 PP_Resource* result_resource,
35 uint64_t* result_shm_handle);
36};
37
38} // namespace proxy
39} // namespace pp
40
41#endif // PPAPI_PPB_BUFFER_PROXY_H_