#ifndef TESTS_PPAPI_GETURL_MODULE_H_
#define TESTS_PPAPI_GETURL_MODULE_H_
#include <string>
#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"
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);
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