| OLD | NEW | 
|   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |   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 |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ |   5 #ifndef PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ | 
|   6 #define PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ |   6 #define PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ | 
|   7  |   7  | 
|   8 #include <vector> |   8 #include <vector> | 
|   9  |   9  | 
|  10 #include "base/basictypes.h" |  10 #include "base/basictypes.h" | 
|  11 #include "base/memory/scoped_ptr.h" |  11 #include "base/memory/scoped_ptr.h" | 
|  12 #include "base/memory/shared_memory.h" |  12 #include "base/memory/shared_memory.h" | 
|  13 #include "ppapi/c/pp_instance.h" |  13 #include "ppapi/c/pp_instance.h" | 
|  14 #include "ppapi/c/pp_stdint.h" |  14 #include "ppapi/c/pp_stdint.h" | 
|  15 #include "ppapi/shared_impl/var.h" |  15 #include "ppapi/shared_impl/var.h" | 
|  16  |  16  | 
|  17 namespace ppapi { |  17 namespace ppapi { | 
|  18  |  18  | 
|  19 // Represents a plugin-side ArrayBufferVar. In the plugin process, it's |  19 // Represents a plugin-side ArrayBufferVar. In the plugin process, it's | 
|  20 // owned as a vector. |  20 // owned as a vector. | 
|  21 class PluginArrayBufferVar : public ArrayBufferVar { |  21 class PluginArrayBufferVar : public ArrayBufferVar { | 
|  22  public: |  22  public: | 
|  23   explicit PluginArrayBufferVar(uint32 size_in_bytes); |  23   explicit PluginArrayBufferVar(uint32 size_in_bytes); | 
|  24   PluginArrayBufferVar(uint32 size_in_bytes, |  24   PluginArrayBufferVar(uint32 size_in_bytes, | 
|  25                        base::SharedMemoryHandle plugin_handle); |  25                        base::SharedMemoryHandle plugin_handle); | 
|  26   virtual ~PluginArrayBufferVar(); |  26   ~PluginArrayBufferVar() override; | 
|  27  |  27  | 
|  28   // ArrayBufferVar implementation. |  28   // ArrayBufferVar implementation. | 
|  29   virtual void* Map() override; |  29   void* Map() override; | 
|  30   virtual void Unmap() override; |  30   void Unmap() override; | 
|  31   virtual uint32 ByteLength() override; |  31   uint32 ByteLength() override; | 
|  32   virtual bool CopyToNewShmem( |  32   bool CopyToNewShmem( | 
|  33       PP_Instance instance, |  33       PP_Instance instance, | 
|  34       int* host_handle, |  34       int* host_handle, | 
|  35       base::SharedMemoryHandle* plugin_handle) override; |  35       base::SharedMemoryHandle* plugin_handle) override; | 
|  36  |  36  | 
|  37  private: |  37  private: | 
|  38   // Non-shared memory |  38   // Non-shared memory | 
|  39   std::vector<uint8> buffer_; |  39   std::vector<uint8> buffer_; | 
|  40  |  40  | 
|  41   // Shared memory |  41   // Shared memory | 
|  42   base::SharedMemoryHandle plugin_handle_; |  42   base::SharedMemoryHandle plugin_handle_; | 
|  43   scoped_ptr<base::SharedMemory> shmem_; |  43   scoped_ptr<base::SharedMemory> shmem_; | 
|  44   uint32 size_in_bytes_; |  44   uint32 size_in_bytes_; | 
|  45  |  45  | 
|  46   DISALLOW_COPY_AND_ASSIGN(PluginArrayBufferVar); |  46   DISALLOW_COPY_AND_ASSIGN(PluginArrayBufferVar); | 
|  47 }; |  47 }; | 
|  48  |  48  | 
|  49 }  // namespace ppapi |  49 }  // namespace ppapi | 
|  50  |  50  | 
|  51 #endif  // PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ |  51 #endif  // PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_ | 
| OLD | NEW |