Home | History | Annotate | Download | only in thunk
      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
     64