- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / thunk / ppb_x509_certificate_private_thunk.cc
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
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
26 PP_Bool IsX509CertificatePrivate(PP_Resource resource) {
27   EnterX509CertificatePrivate enter(resource, false);
28   return PP_FromBool(enter.succeeded());
29 }
30
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
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*
58 GetPPB_X509Certificate_Private_0_1_Thunk() {
59   return &g_ppb_x509_certificate_thunk;
60 }
61
62 }  // namespace thunk
63 }  // namespace ppapi