fake_var_manager.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com// Copyright 2014 The Chromium Authors. All rights reserved. 2902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com// Use of this source code is governed by a BSD-style license that can be 3902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com// found in the LICENSE file. 4902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#ifndef TESTS_NACL_IO_TEST_FAKE_VAR_MANAGER_H_ 6902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#define TESTS_NACL_IO_TEST_FAKE_VAR_MANAGER_H_ 7902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <map> 9902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <ppapi/c/pp_var.h> 10902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <string> 11902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include <vector> 12902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 13902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "sdk_util/macros.h" 14902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 15902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comstruct FakeVarData { 168a1cdaece7e1d009befb84f21bb82370025bf4d6robertphillips@google.com uint64_t id; 1797cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com uint64_t type; 18902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com int32_t ref_count; 1932bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com std::string string_value; 2032bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com std::vector<PP_Var> array_value; 2186681b37bd20204e47a492119b345c01d00bc939fmalita@google.com struct { 22902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void* ptr; 2380a4a60f96c33ccd850f9b0eb4b69ab08c198196chudy@google.com uint32_t length; 24f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com } buffer_value; 25902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com}; 26902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 27902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comclass FakeVarManager { 28902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com public: 29f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com FakeVarManager(); 30f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com ~FakeVarManager(); 31f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com 32f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com void AddRef(PP_Var var); 33f4741c1322944e194ca34a8f5cf8188fe2c0efe2robertphillips@google.com void Release(PP_Var var); 3432bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com FakeVarData* CreateVarData(); 3532bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com FakeVarData* GetVarData(PP_Var var); 36f84ad8f7fc0194389a8099da2c5e8fff9f092890skia.committer@gmail.com std::string Describe(const FakeVarData& resource); 3732bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com 3832bbcf828d66ad244fa25b468bc3a229e531491frobertphillips@google.com bool debug; 39902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com private: 40902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void DestroyVarData(FakeVarData* var); 41902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 42902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com typedef uint64_t Id; 43902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com typedef std::map<Id, FakeVarData> VarMap; 44902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 45902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Id next_id_; 46902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com VarMap var_map_; 47902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 48902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com DISALLOW_COPY_AND_ASSIGN(FakeVarManager); 490b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com}; 500b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com 510b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com#endif // TESTS_NACL_IO_TEST_FAKE_VAR_MANAGER_H_ 52a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com