12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// From ../test_thunk/simple.idl modified Fri Nov 16 11:26:06 2012. 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/../test_thunk/simple.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/pp_errors.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/shared_impl/tracked_callback.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/thunk/enter.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/thunk/ppb_instance_api.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/thunk/resource_creation_api.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/thunk/simple_api.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/thunk/thunk.h" 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ppapi { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace thunk { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PP_Resource Create(PP_Instance instance) { 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::Create()"; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterResourceCreation enter(instance); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (enter.failed()) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enter.functions()->CreateSimple(instance); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PP_Bool IsSimple(PP_Resource resource) { 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::IsSimple()"; 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterResource<PPB_Simple_API> enter(resource, false); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PP_FromBool(enter.succeeded()); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void PostMessage(PP_Instance instance, PP_Var message) { 3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::PostMessage()"; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterInstance enter(instance); 3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (enter.failed()) 3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return; 4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) enter.functions()->PostMessage(instance, message); 4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)uint32_t DoUint32Instance_0_5(PP_Instance instance) { 4490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::DoUint32Instance()"; 4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EnterInstance enter(instance); 4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (enter.failed()) 4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return 0; 4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return enter.functions()->DoUint32Instance0_5(instance); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)uint32_t DoUint32Instance(PP_Instance instance, PP_Resource resource) { 5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::DoUint32Instance()"; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterInstance enter(instance); 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (enter.failed()) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return enter.functions()->DoUint32Instance(instance, resource); 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)uint32_t DoUint32Resource(PP_Resource instance) { 6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::DoUint32Resource()"; 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterResource<PPB_Simple_API> enter(instance, true); 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (enter.failed()) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enter.object()->DoUint32Resource(); 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)uint32_t DoUint32ResourceNoErrors(PP_Resource instance) { 6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::DoUint32ResourceNoErrors()"; 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterResource<PPB_Simple_API> enter(instance, false); 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (enter.failed()) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enter.object()->DoUint32ResourceNoErrors(); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int32_t OnFailure12(PP_Instance instance) { 7690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) VLOG(4) << "PPB_Simple::OnFailure12()"; 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterInstance enter(instance); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (enter.failed()) 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 12; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return enter.functions()->OnFailure12(instance); 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const PPB_Simple_0_5 g_ppb_simple_thunk_0_5 = { 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &Create, 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &IsSimple, 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &PostMessage, 8790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &DoUint32Instance_0_5, 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &DoUint32Resource, 8990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &DoUint32ResourceNoErrors 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const PPB_Simple_1_0 g_ppb_simple_thunk_1_0 = { 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &Create, 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &IsSimple, 9590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &DoUint32Instance_0_5, 9690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &DoUint32Resource, 9790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &DoUint32ResourceNoErrors, 9890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &OnFailure12 9990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}; 10090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 10190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const PPB_Simple_1_5 g_ppb_simple_thunk_1_5 = { 10290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &Create, 10390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &IsSimple, 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &DoUint32Instance, 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &DoUint32Resource, 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &DoUint32ResourceNoErrors, 10790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) &OnFailure12 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const PPB_Simple_0_5* GetPPB_Simple_0_5_Thunk() { 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return &g_ppb_simple_thunk_0_5; 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const PPB_Simple_1_0* GetPPB_Simple_1_0_Thunk() { 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return &g_ppb_simple_thunk_1_0; 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const PPB_Simple_1_5* GetPPB_Simple_1_5_Thunk() { 12190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return &g_ppb_simple_thunk_1_5; 12290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 12390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace thunk 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace ppapi 126