plugin_array_buffer_var.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
6#define PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
7
8#include <vector>
9
10#include "base/basictypes.h"
11#include "ppapi/c/pp_stdint.h"
12#include "ppapi/shared_impl/var.h"
13
14namespace ppapi {
15
16// Represents a plugin-side ArrayBufferVar. In the plugin process, it's
17// owned as a vector.
18class PluginArrayBufferVar : public ArrayBufferVar {
19 public:
20  explicit PluginArrayBufferVar(uint32 size_in_bytes);
21  virtual ~PluginArrayBufferVar();
22
23  // ArrayBufferVar implementation.
24  virtual void* Map() OVERRIDE;
25  virtual void Unmap() OVERRIDE;
26  virtual uint32 ByteLength() OVERRIDE;
27
28 private:
29  // TODO(dmichael): Use shared memory for this.
30  std::vector<uint8> buffer_;
31
32  DISALLOW_COPY_AND_ASSIGN(PluginArrayBufferVar);
33};
34
35}  // namespace ppapi
36
37#endif  // PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
38