1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ppapi/c/private/ppb_x509_certificate_private.h"
6 #include "ppapi/thunk/enter.h"
7 #include "ppapi/thunk/ppb_x509_certificate_private_api.h"
8 #include "ppapi/thunk/resource_creation_api.h"
9 #include "ppapi/thunk/thunk.h"
10
11 namespace ppapi {
12 namespace thunk {
13
14 namespace {
15
16 typedef EnterResource<PPB_X509Certificate_Private_API>
17 EnterX509CertificatePrivate;
18
Create(PP_Instance instance)19 PP_Resource Create(PP_Instance instance) {
20 EnterResourceCreation enter(instance);
21 if (enter.failed())
22 return 0;
23 return enter.functions()->CreateX509CertificatePrivate(instance);
24 }
25
IsX509CertificatePrivate(PP_Resource resource)26 PP_Bool IsX509CertificatePrivate(PP_Resource resource) {
27 EnterX509CertificatePrivate enter(resource, false);
28 return PP_FromBool(enter.succeeded());
29 }
30
Initialize(PP_Resource certificate,const char * bytes,uint32_t length)31 PP_Bool Initialize(PP_Resource certificate,
32 const char *bytes,
33 uint32_t length) {
34 EnterX509CertificatePrivate enter(certificate, true);
35 if (enter.failed())
36 return PP_FALSE;
37 return enter.object()->Initialize(bytes, length);
38 }
39
GetField(PP_Resource certificate,PP_X509Certificate_Private_Field field)40 PP_Var GetField(PP_Resource certificate,
41 PP_X509Certificate_Private_Field field) {
42 EnterX509CertificatePrivate enter(certificate, true);
43 if (enter.failed())
44 return PP_MakeUndefined();
45 return enter.object()->GetField(field);
46 }
47
48 const PPB_X509Certificate_Private g_ppb_x509_certificate_thunk = {
49 &Create,
50 &IsX509CertificatePrivate,
51 &Initialize,
52 &GetField
53 };
54
55 } // namespace
56
57 const PPB_X509Certificate_Private_0_1*
GetPPB_X509Certificate_Private_0_1_Thunk()58 GetPPB_X509Certificate_Private_0_1_Thunk() {
59 return &g_ppb_x509_certificate_thunk;
60 }
61
62 } // namespace thunk
63 } // namespace ppapi
64