/** * Post a message to JavaScript. * @param[in] format A printf format string. * @param[in] ... The printf arguments. */ int pp_post_message(const char* category, const char* format, ...) { va_list args; struct PP_Var dict_var = g_ppb_var_dictionary->Create(); struct PP_Var cat_key = CStrToVar("category"); struct PP_Var cat_value = CStrToVar(category); PP_Bool result = g_ppb_var_dictionary->Set(dict_var, cat_key, cat_value); g_ppb_var->Release(cat_key); g_ppb_var->Release(cat_value); if (!result) { g_ppb_var->Release(dict_var); return 1; } struct PP_Var msg_key = CStrToVar("msg"); va_start(args, format); struct PP_Var msg_value = VprintfToVar(format, args); va_end(args); result = g_ppb_var_dictionary->Set(dict_var, msg_key, msg_value); g_ppb_var->Release(msg_key); g_ppb_var->Release(msg_value); if (!result) { g_ppb_var->Release(dict_var); return 2; } g_ppb_messaging->PostMessage(g_instance, dict_var); g_ppb_var->Release(dict_var); return 0; }
void PostMessage(const char* format, ...) { va_list args; va_start(args, format); #ifdef __PNACL struct PP_Var var; var = VprintfToVar(format, args); g_ppb_messaging->PostMessage(g_instance, var); g_ppb_var->Release(var); #else printf(format,args); #endif va_end(args); }