Index: ppapi/thunk/ppb_hello_thunk.cc |
diff --git a/ppapi/thunk/ppb_hello_thunk.cc b/ppapi/thunk/ppb_hello_thunk.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c1cc8f7d9c4f38d98d419fa6169a45fa2f354ac0 |
--- /dev/null |
+++ b/ppapi/thunk/ppb_hello_thunk.cc |
@@ -0,0 +1,76 @@ |
+// 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. |
+ |
+#include "ppapi/c/dev/ppb_hello_dev.h" |
+ |
+#include <stdio.h> |
+ |
+#include "base/logging.h" |
+#include "ppapi/c/pp_errors.h" |
+#include "ppapi/thunk/common.h" |
+#include "ppapi/thunk/enter.h" |
+#include "ppapi/thunk/thunk.h" |
+#include "ppapi/thunk/ppb_hello_api.h" |
+#include "ppapi/thunk/resource_creation_api.h" |
+ |
+namespace ppapi { |
+namespace thunk { |
+ |
+namespace { |
+ |
+PP_Resource Create(PP_Instance instance) { |
+ LOG(ERROR) << "Create"; |
+ EnterFunction<ResourceCreationAPI> enter(instance, true); |
+ if (enter.failed()) |
+ return 0; |
+ return enter.functions()->CreateHello(instance); |
+} |
+ |
+PP_Bool IsHello(PP_Resource resource) { |
+ LOG(ERROR) << "IsHello"; |
+ EnterResource<PPB_Hello_API> enter(resource, false); |
+ return PP_FromBool(enter.succeeded()); |
+} |
+ |
+int32_t SayHello(PP_Resource hello) { |
+ LOG(ERROR) << "SayHello"; |
+ EnterResource<PPB_Hello_API> enter(hello, true); |
+ if (enter.failed()) { |
+ LOG(ERROR) << " enter failed"; |
+ return PP_ERROR_BADRESOURCE; |
+ } |
+ enter.object()->SayHello(); |
+ return PP_OK; |
+} |
+ |
+void WhoAreYou(PP_Resource hello, char* name, uint32_t size, |
+ PP_CompletionCallback callback) { |
+ LOG(ERROR) << "WhoAreYou"; |
+ EnterResource<PPB_Hello_API> enter(hello, true); |
+ if (enter.failed()) { |
+ LOG(ERROR) << " enter failed"; |
+ snprintf(name, size, "enter failed"); |
+ return; |
+ } |
+ enter.object()->WhoAreYou(name, size, |
+ pp::CompletionCallback( |
+ callback.func, callback.user_data, callback.flags)); |
+} |
+ |
+const PPB_Hello_Dev g_ppb_hello_thunk = { |
+ &Create, |
+ &IsHello, |
+ &SayHello, |
+ &WhoAreYou |
+}; |
+ |
+} // namespace |
+ |
+const PPB_Hello_Dev* GetPPB_Hello_Dev_Thunk() { |
+ LOG(ERROR) << "GetPPB_Hello_Dev_Thunk"; |
+ return &g_ppb_hello_thunk; |
+} |
+ |
+} // namespace thunk |
+} // namespace ppapi |