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_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_ 6 #define PPAPI_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_ 7 8 #include <vector> 9 10 #include "base/basictypes.h" 11 #include "base/compiler_specific.h" 12 #include "ppapi/shared_impl/resource.h" 13 #include "ppapi/thunk/ppb_resource_array_api.h" 14 15 namespace ppapi { 16 17 class PPAPI_SHARED_EXPORT PPB_ResourceArray_Shared 18 : public Resource, 19 public thunk::PPB_ResourceArray_API { 20 public: 21 PPB_ResourceArray_Shared(ResourceObjectType type, 22 PP_Instance instance, 23 const PP_Resource elements[], 24 uint32_t size); 25 virtual ~PPB_ResourceArray_Shared(); 26 27 // Resource overrides. 28 virtual PPB_ResourceArray_API* AsPPB_ResourceArray_API() OVERRIDE; 29 30 // PPB_ResourceArray_API implementation. 31 virtual uint32_t GetSize() OVERRIDE; 32 virtual PP_Resource GetAt(uint32_t index) OVERRIDE; 33 34 private: 35 std::vector<PP_Resource> resources_; 36 37 DISALLOW_IMPLICIT_CONSTRUCTORS(PPB_ResourceArray_Shared); 38 }; 39 40 } // namespace ppapi 41 42 #endif // PPAPI_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_ 43