12cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// Copyright 2014 The Chromium Authors. All rights reserved.
22cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// Use of this source code is governed by a BSD-style license that can be
32cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// found in the LICENSE file.
42cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
52cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#ifndef TESTS_NACL_IO_TEST_FAKE_VAR_ARRAY_BUFFER_INTERFACE_H_
62cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#define TESTS_NACL_IO_TEST_FAKE_VAR_ARRAY_BUFFER_INTERFACE_H_
72cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
82cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "nacl_io/pepper_interface.h"
92cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "sdk_util/macros.h"
102cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
112cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorclass FakeVarManager;
122cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
132cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorclass FakeVarArrayBufferInterface : public nacl_io::VarArrayBufferInterface {
142cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor public:
152cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  explicit FakeVarArrayBufferInterface(FakeVarManager* manager);
162cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
172cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  virtual struct PP_Var Create(uint32_t size_in_bytes);
182cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  virtual PP_Bool ByteLength(struct PP_Var var, uint32_t* byte_length);
190b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor  virtual void* Map(struct PP_Var var);
200b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor  virtual void Unmap(struct PP_Var var);
212cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
227c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner private:
237c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner  FakeVarManager* manager_;
2414f79002e58556798e86168c63e48d533287eda5Douglas Gregor
2514f79002e58556798e86168c63e48d533287eda5Douglas Gregor  DISALLOW_COPY_AND_ASSIGN(FakeVarArrayBufferInterface);
26bd94500d3aa60092fb0f1e90f53fb0d03fa502a8Douglas Gregor};
272bec0410d268779f601bd509e0302a500af7ac6aDouglas Gregor
2817fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor#endif  // TESTS_NACL_IO_TEST_FAKE_VAR_ARRAY_BUFFER_INTERFACE_H_
2917fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor