Index: native_client_sdk/src/examples/hello_world_stdio/hello_world.c |
diff --git a/native_client_sdk/src/examples/hello_world_stdio/hello_world.c b/native_client_sdk/src/examples/hello_world_stdio/hello_world.c |
index 2771be0ae8c6c86f401d5117ddc98cd8874372e6..0d2faf14b5de91858d687f128bf742e387c2628d 100644 |
--- a/native_client_sdk/src/examples/hello_world_stdio/hello_world.c |
+++ b/native_client_sdk/src/examples/hello_world_stdio/hello_world.c |
@@ -1,7 +1,11 @@ |
+/* Copyright (c) 2012 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. |
+ */ |
+ |
#include <stdio.h> |
#include <string.h> |
- |
#include "ppapi/c/ppb_var.h" |
#include "ppapi/c/ppb_messaging.h" |
#include "ppapi/c/ppb_console.h" |
@@ -10,49 +14,12 @@ |
// Have the Module object provided by ppapi_main create a basic |
-// PPAPI instance with default arguments to setting up |
-// stdio file handles, processing keyboard, etc... |
-// PPAPI Instance with default arguments. |
+// PPAPI instance with default arguments which mounts the dev |
+// file system providing /dev/null, /dev/tty, and /devl/console3 |
+// for null STDIN, STDOUT directed to PostMessage and STDERR |
+// directed to the JavaScript Console with LogLevel 'ERROR' |
PPAPI_MAIN_WITH_DEFAULT_ARGS |
-static PPB_Messaging* ppb_messaging_interface = NULL; |
-static PPB_Var* ppb_var_interface = NULL; |
-static PPB_Console* ppb_console_interface = NULL; |
- |
- |
-/** |
- * Creates new string PP_Var from C string. The resulting object will be a |
- * refcounted string object. It will be AddRef()ed for the caller. When the |
- * caller is done with it, it should be Release()d. |
- * @param[in] str C string to be converted to PP_Var |
- * @return PP_Var containing string. |
- */ |
-static struct PP_Var CStrToVar(const char* str) { |
- if (ppb_var_interface != NULL) { |
- return ppb_var_interface->VarFromUtf8(str, strlen(str)); |
- } |
- return PP_MakeUndefined(); |
-} |
- |
-// |
-// Post a message back to JavaScript |
-// |
-static void SendMessage(const char *str) { |
- PP_Instance instance = PPAPI_GetInstanceId(); |
- if (ppb_messaging_interface) |
- ppb_messaging_interface->PostMessage(instance, CStrToVar(str)); |
-} |
- |
-// |
-// Send a message to the JavaScript Console |
-// |
-static void LogMessage(const char *str) { |
- PP_Instance instance = PPAPI_GetInstanceId(); |
- if (ppb_console_interface) |
- ppb_console_interface->Log(instance, PP_LOGLEVEL_LOG, |
- CStrToVar(str)); |
-} |
- |
// |
// The "main" entry point called by PPAPIInstance once initialization |
// takes place. This is called off the main thread, which is hidden |
@@ -64,15 +31,20 @@ static void LogMessage(const char *str) { |
// Where the embed tag for this module uses KEY=VALUE |
// |
int ppapi_main(int argc, const char *argv[]) { |
- ppb_messaging_interface = |
- (PPB_Messaging*) PPAPI_GetInterface(PPB_MESSAGING_INTERFACE); |
- ppb_var_interface = |
- (PPB_Var*) PPAPI_GetInterface(PPB_VAR_INTERFACE); |
- ppb_console_interface = |
- (PPB_Console*) PPAPI_GetInterface(PPB_CONSOLE_INTERFACE); |
+ int index = 1; |
- SendMessage("Hello World STDIO.\n"); |
- LogMessage("Hello World STDERR.\n"); |
+ // Use PostMessage to send "Hello World" to JavaScript. |
+ printf("Hello World STDIO.\n"); |
+ // Use PPAPI Console interface to send "Hello World" to the |
+ // JavaScript Console. |
+ fprintf(stderr, "Hello World STDERR.\n"); |
+ |
+ // Print the arguments we received from the web page |
+ printf("NAME: %s\n", argv[0]); |
+ while (index + 2 < argc) { |
+ printf(" ARGS: %s=%s\n", argv[index+0], argv[index+1]); |
+ index += 2; |
+ } |
return 0; |
} |