Home | History | Annotate | Download | only in cpp
      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/cpp/file_system.h"
      6 
      7 #include "ppapi/c/pp_errors.h"
      8 #include "ppapi/c/ppb_file_system.h"
      9 #include "ppapi/cpp/completion_callback.h"
     10 #include "ppapi/cpp/file_ref.h"
     11 #include "ppapi/cpp/instance_handle.h"
     12 #include "ppapi/cpp/module.h"
     13 #include "ppapi/cpp/module_impl.h"
     14 
     15 namespace pp {
     16 
     17 namespace {
     18 
     19 template <> const char* interface_name<PPB_FileSystem_1_0>() {
     20   return PPB_FILESYSTEM_INTERFACE_1_0;
     21 }
     22 
     23 }  // namespace
     24 
     25 FileSystem::FileSystem() {
     26 }
     27 
     28 FileSystem::FileSystem(const FileSystem& other) : Resource(other) {
     29 }
     30 
     31 FileSystem::FileSystem(PassRef, PP_Resource resource)
     32     : Resource(PASS_REF, resource) {
     33 }
     34 
     35 FileSystem::FileSystem(const InstanceHandle& instance,
     36                        PP_FileSystemType type) {
     37   if (!has_interface<PPB_FileSystem_1_0>())
     38     return;
     39   PassRefFromConstructor(get_interface<PPB_FileSystem_1_0>()->Create(
     40       instance.pp_instance(), type));
     41 }
     42 
     43 int32_t FileSystem::Open(int64_t expected_size,
     44                          const CompletionCallback& cc) {
     45   if (!has_interface<PPB_FileSystem_1_0>())
     46     return cc.MayForce(PP_ERROR_NOINTERFACE);
     47   return get_interface<PPB_FileSystem_1_0>()->Open(
     48       pp_resource(), expected_size, cc.pp_completion_callback());
     49 }
     50 
     51 }  // namespace pp
     52