Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: ppapi/shared_impl/resource.h

Issue 11359063: Refactor the way singleton-style resources are exposed via PPB_Instance (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_SHARED_IMPL_RESOURCE_H_ 5 #ifndef PPAPI_SHARED_IMPL_RESOURCE_H_
6 #define PPAPI_SHARED_IMPL_RESOURCE_H_ 6 #define PPAPI_SHARED_IMPL_RESOURCE_H_
7 7
8 #include <stddef.h> // For NULL. 8 #include <stddef.h> // For NULL.
9 9
10 #include <string> 10 #include <string>
(...skipping 22 matching lines...) Expand all
33 F(PPB_FileIO_API) \ 33 F(PPB_FileIO_API) \
34 F(PPB_FileRef_API) \ 34 F(PPB_FileRef_API) \
35 F(PPB_FileSystem_API) \ 35 F(PPB_FileSystem_API) \
36 F(PPB_Find_API) \ 36 F(PPB_Find_API) \
37 F(PPB_Flash_Clipboard_API) \ 37 F(PPB_Flash_Clipboard_API) \
38 F(PPB_Flash_DeviceID_API) \ 38 F(PPB_Flash_DeviceID_API) \
39 F(PPB_Flash_FontFile_API) \ 39 F(PPB_Flash_FontFile_API) \
40 F(PPB_Flash_Functions_API) \ 40 F(PPB_Flash_Functions_API) \
41 F(PPB_Flash_Menu_API) \ 41 F(PPB_Flash_Menu_API) \
42 F(PPB_Flash_MessageLoop_API) \ 42 F(PPB_Flash_MessageLoop_API) \
43 F(PPB_Gamepad_API) \
43 F(PPB_Graphics2D_API) \ 44 F(PPB_Graphics2D_API) \
44 F(PPB_Graphics3D_API) \ 45 F(PPB_Graphics3D_API) \
45 F(PPB_HostResolver_Private_API) \ 46 F(PPB_HostResolver_Private_API) \
46 F(PPB_ImageData_API) \ 47 F(PPB_ImageData_API) \
47 F(PPB_InputEvent_API) \ 48 F(PPB_InputEvent_API) \
48 F(PPB_LayerCompositor_API) \ 49 F(PPB_LayerCompositor_API) \
49 F(PPB_MessageLoop_API) \ 50 F(PPB_MessageLoop_API) \
50 F(PPB_NetworkList_Private_API) \ 51 F(PPB_NetworkList_Private_API) \
51 F(PPB_NetworkMonitor_Private_API) \ 52 F(PPB_NetworkMonitor_Private_API) \
52 F(PPB_PDFFont_API) \ 53 F(PPB_PDFFont_API) \
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 90
90 // Resources have slightly different registration behaviors when the're an 91 // Resources have slightly different registration behaviors when the're an
91 // in-process ("impl") resource in the host (renderer) process, or when they're 92 // in-process ("impl") resource in the host (renderer) process, or when they're
92 // a proxied resource in the plugin process. This enum differentiates those 93 // a proxied resource in the plugin process. This enum differentiates those
93 // cases. 94 // cases.
94 enum ResourceObjectType { 95 enum ResourceObjectType {
95 OBJECT_IS_IMPL, 96 OBJECT_IS_IMPL,
96 OBJECT_IS_PROXY 97 OBJECT_IS_PROXY
97 }; 98 };
98 99
100 // These IDs are used to access singleton resource objects using
101 // PPB_Instance_API.GetSingletonResource.
102 enum SingletonResourceID {
103 FLASH_SINGLETON_ID,
104 FLASH_CLIPBOARD_SINGLETON_ID,
105 GAMEPAD_SINGLETON_ID,
106 };
107
99 class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> { 108 class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> {
100 public: 109 public:
101 // Constructor for impl and non-proxied, instance-only objects. 110 // Constructor for impl and non-proxied, instance-only objects.
102 // 111 //
103 // For constructing "impl" (non-proxied) objects, this just takes the 112 // For constructing "impl" (non-proxied) objects, this just takes the
104 // associated instance, and generates a new resource ID. The host resource 113 // associated instance, and generates a new resource ID. The host resource
105 // will be the same as the newly-generated resource ID. For all objects in 114 // will be the same as the newly-generated resource ID. For all objects in
106 // the renderer (host) process, you'll use this constructor and call it with 115 // the renderer (host) process, you'll use this constructor and call it with
107 // OBJECT_IS_IMPL. 116 // OBJECT_IS_IMPL.
108 // 117 //
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 #define DEFINE_RESOURCE_CAST(RESOURCE) \ 227 #define DEFINE_RESOURCE_CAST(RESOURCE) \
219 template<> inline thunk::RESOURCE* Resource::GetAs() { \ 228 template<> inline thunk::RESOURCE* Resource::GetAs() { \
220 return As##RESOURCE(); \ 229 return As##RESOURCE(); \
221 } 230 }
222 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST) 231 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST)
223 #undef DEFINE_RESOURCE_CAST 232 #undef DEFINE_RESOURCE_CAST
224 233
225 } // namespace ppapi 234 } // namespace ppapi
226 235
227 #endif // PPAPI_SHARED_IMPL_RESOURCE_H_ 236 #endif // PPAPI_SHARED_IMPL_RESOURCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698