// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef TESTS_PPAPI_GETURL_MODULE_H_ #define TESTS_PPAPI_GETURL_MODULE_H_ #include #include "ppapi/c/pp_module.h" #include "ppapi/c/pp_resource.h" #include "ppapi/c/ppb.h" #include "ppapi/c/ppb_core.h" #include "ppapi/c/ppb_messaging.h" #include "ppapi/c/ppb_var.h" #include "ppapi/c/ppp.h" // ppapi_geturl example is deliberately using C PPAPI interface. // C++ PPAPI layer has pp::Module wrapper class. class Module { public: static Module* Create(PP_Module module_id, PPB_GetInterface get_browser_interface); static Module* Get(); static void Free(); const void* GetPluginInterface(const char* interface_name); const void* GetBrowserInterface(const char* interface_name); PP_Module module_id() { return module_id_; } const PPB_Core* ppb_core_interface() const { return ppb_core_interface_; } const PPB_Messaging* ppb_messaging_interface() const { return ppb_messaging_interface_; } const PPB_Var* ppb_var_interface() const { return ppb_var_interface_; } static char* VarToCStr(const PP_Var& var); static std::string VarToStr(const PP_Var& var); static PP_Var StrToVar(const char* str); static PP_Var StrToVar(const std::string& str); static std::string ErrorCodeToStr(int32_t error_code); // Constructs a parameterized message string then uses messaging.PostMessage // to send this message back to the browser. The receiving message handler // is defined in ppapi_geturl.html void ReportResult(PP_Instance pp_instance, const char* url, bool as_file, const char* text, bool success); private: PP_Module module_id_; PPB_GetInterface get_browser_interface_; const PPB_Core* ppb_core_interface_; const PPB_Messaging* ppb_messaging_interface_; const PPB_Var* ppb_var_interface_; Module(PP_Module module_id, PPB_GetInterface get_browser_interface); ~Module() { } Module(const Module&); void operator=(const Module&); }; #endif // TESTS_PPAPI_GETURL_MODULE_H_