1b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// found in the LICENSE file.
4b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
5b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/c/pp_completion_callback.h"
6b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/c/pp_errors.h"
7b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
8b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/shared_impl/tracked_callback.h"
9b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/thunk/enter.h"
10b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/thunk/ppb_instance_api.h"
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/thunk/ppb_isolated_file_system_private_api.h"
12b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/thunk/resource_creation_api.h"
13b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ppapi/thunk/thunk.h"
14b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
15b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace ppapi {
16b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace thunk {
17b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
18b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace {
19b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
20b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)int32_t Open(PP_Instance instance,
21b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)             PP_Resource* file_system,
22b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)             struct PP_CompletionCallback callback) {
23b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  VLOG(4) << "PPB_Ext_CrxFileSystem_Private::Open()";
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  EnterInstanceAPI<PPB_IsolatedFileSystem_Private_API> enter(instance,
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                                                             callback);
26b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  if (enter.failed())
27b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    return enter.retval();
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  return enter.SetResult(enter.functions()->Open(
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      instance,
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX,
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      file_system,
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      enter.callback()));
33b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
34b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
35b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)const PPB_Ext_CrxFileSystem_Private_0_1
36b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    g_ppb_ext_crxfilesystem_private_thunk_0_1 = {
37b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  &Open
38b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
40b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace
41b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
42b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)const PPB_Ext_CrxFileSystem_Private_0_1*
43b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    GetPPB_Ext_CrxFileSystem_Private_0_1_Thunk() {
44b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  return &g_ppb_ext_crxfilesystem_private_thunk_0_1;
45b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
46b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
47b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace thunk
48b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace ppapi
49