| 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_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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 F(PPB_Gamepad_API) \ | 47 F(PPB_Gamepad_API) \ |
| 48 F(PPB_Graphics2D_API) \ | 48 F(PPB_Graphics2D_API) \ |
| 49 F(PPB_Graphics3D_API) \ | 49 F(PPB_Graphics3D_API) \ |
| 50 F(PPB_HostResolver_Private_API) \ | 50 F(PPB_HostResolver_Private_API) \ |
| 51 F(PPB_ImageData_API) \ | 51 F(PPB_ImageData_API) \ |
| 52 F(PPB_InputEvent_API) \ | 52 F(PPB_InputEvent_API) \ |
| 53 F(PPB_LayerCompositor_API) \ | 53 F(PPB_LayerCompositor_API) \ |
| 54 F(PPB_MessageLoop_API) \ | 54 F(PPB_MessageLoop_API) \ |
| 55 F(PPB_NetworkList_API) \ | 55 F(PPB_NetworkList_API) \ |
| 56 F(PPB_NetworkMonitor_Private_API) \ | 56 F(PPB_NetworkMonitor_Private_API) \ |
| 57 F(PPB_NetworkProxy_API) \ |
| 57 F(PPB_PDF_API) \ | 58 F(PPB_PDF_API) \ |
| 58 F(PPB_Printing_API) \ | 59 F(PPB_Printing_API) \ |
| 59 F(PPB_ResourceArray_API) \ | 60 F(PPB_ResourceArray_API) \ |
| 60 F(PPB_Scrollbar_API) \ | 61 F(PPB_Scrollbar_API) \ |
| 61 F(PPB_Talk_Private_API) \ | 62 F(PPB_Talk_Private_API) \ |
| 62 F(PPB_TrueTypeFont_API) \ | 63 F(PPB_TrueTypeFont_API) \ |
| 63 F(PPB_TrueTypeFont_Singleton_API) \ | 64 F(PPB_TrueTypeFont_Singleton_API) \ |
| 64 F(PPB_TCPServerSocket_Private_API) \ | 65 F(PPB_TCPServerSocket_Private_API) \ |
| 65 F(PPB_TCPSocket_Private_API) \ | 66 F(PPB_TCPSocket_Private_API) \ |
| 66 F(PPB_UDPSocket_Private_API) \ | 67 F(PPB_UDPSocket_Private_API) \ |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 virtual void NotifyInstanceWasDeleted(); | 184 virtual void NotifyInstanceWasDeleted(); |
| 184 | 185 |
| 185 // Dynamic casting for this object. Returns the pointer to the given type if | 186 // Dynamic casting for this object. Returns the pointer to the given type if |
| 186 // it's supported. Derived classes override the functions they support to | 187 // it's supported. Derived classes override the functions they support to |
| 187 // return the interface. | 188 // return the interface. |
| 188 #define DEFINE_TYPE_GETTER(RESOURCE) \ | 189 #define DEFINE_TYPE_GETTER(RESOURCE) \ |
| 189 virtual thunk::RESOURCE* As##RESOURCE(); | 190 virtual thunk::RESOURCE* As##RESOURCE(); |
| 190 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER) | 191 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER) |
| 191 #undef DEFINE_TYPE_GETTER | 192 #undef DEFINE_TYPE_GETTER |
| 192 | 193 |
| 193 // Template-based dynamic casting. See specializations below. | 194 // Template-based dynamic casting. See specializations below. This is |
| 194 template <typename T> T* GetAs() { return NULL; } | 195 // unimplemented for the default case. This way, for anything that's not a |
| 196 // resource (or if a developer forgets to add the resource to the list in |
| 197 // this file), the result is a linker error. |
| 198 template <typename T> T* GetAs(); |
| 195 | 199 |
| 196 // Called when a PpapiPluginMsg_ResourceReply reply is received for a | 200 // Called when a PpapiPluginMsg_ResourceReply reply is received for a |
| 197 // previous CallRenderer. The message is the nested reply message, which may | 201 // previous CallRenderer. The message is the nested reply message, which may |
| 198 // be an empty message (depending on what the host sends). | 202 // be an empty message (depending on what the host sends). |
| 199 // | 203 // |
| 200 // The default implementation will assert (if you send a request, you should | 204 // The default implementation will assert (if you send a request, you should |
| 201 // override this function). | 205 // override this function). |
| 202 // | 206 // |
| 203 // (This function would make more conceptual sense on PluginResource but we | 207 // (This function would make more conceptual sense on PluginResource but we |
| 204 // need to call this function from general code that doesn't know how to | 208 // need to call this function from general code that doesn't know how to |
| (...skipping 30 matching lines...) Expand all Loading... |
| 235 #define DEFINE_RESOURCE_CAST(RESOURCE) \ | 239 #define DEFINE_RESOURCE_CAST(RESOURCE) \ |
| 236 template<> inline thunk::RESOURCE* Resource::GetAs() { \ | 240 template<> inline thunk::RESOURCE* Resource::GetAs() { \ |
| 237 return As##RESOURCE(); \ | 241 return As##RESOURCE(); \ |
| 238 } | 242 } |
| 239 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST) | 243 FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST) |
| 240 #undef DEFINE_RESOURCE_CAST | 244 #undef DEFINE_RESOURCE_CAST |
| 241 | 245 |
| 242 } // namespace ppapi | 246 } // namespace ppapi |
| 243 | 247 |
| 244 #endif // PPAPI_SHARED_IMPL_RESOURCE_H_ | 248 #endif // PPAPI_SHARED_IMPL_RESOURCE_H_ |
| OLD | NEW |