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 #ifndef PPAPI_CPP_FILE_SYSTEM_H_
      6 #define PPAPI_CPP_FILE_SYSTEM_H_
      7 
      8 #include "ppapi/c/pp_file_info.h"
      9 #include "ppapi/c/pp_instance.h"
     10 #include "ppapi/c/pp_stdint.h"
     11 #include "ppapi/c/pp_time.h"
     12 #include "ppapi/cpp/instance.h"
     13 #include "ppapi/cpp/resource.h"
     14 
     15 /// @file
     16 /// This file defines the API to create a file system associated with a file.
     17 
     18 namespace pp {
     19 
     20 class CompletionCallback;
     21 
     22 /// The <code>FileSystem</code> class identifies the file system type
     23 /// associated with a file.
     24 class FileSystem : public Resource {
     25  public:
     26   /// Constructs an is_null() filesystem resource. If you use this constructor,
     27   /// you will have to assign it to a "real" FileSystem object before you can
     28   /// use it.
     29   FileSystem();
     30 
     31   /// The copy constructor for <code>FileSystem</code>.
     32   ///
     33   /// @param[in] other A reference to a <code>FileSystem</code>.
     34   FileSystem(const FileSystem& other);
     35 
     36   /// A constructor used when you have received a PP_Resource as a return
     37   /// value that has already been reference counted.
     38   ///
     39   /// @param[in] resource A PP_Resource corresponding to a PPB_FileSystem.
     40   FileSystem(PassRef, PP_Resource resource);
     41 
     42   /// This constructor creates a file system object of the given type.
     43   ///
     44   /// @param[in] instance The instance with which this resource will be
     45   /// associated.
     46   ///
     47   /// @param[in] type A file system type as defined by
     48   /// <code>PP_FileSystemType</code> enum.
     49   FileSystem(const InstanceHandle& instance, PP_FileSystemType type);
     50 
     51   /// Open() opens the file system. A file system must be opened before running
     52   /// any other operation on it.
     53   ///
     54   /// @param[in] expected_size The expected size of the file system. Note that
     55   /// this does not request quota; to do that, you must either invoke
     56   /// requestQuota from JavaScript:
     57   /// http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-requesting-quota
     58   /// or set the unlimitedStorage permission for Chrome Web Store apps:
     59   /// http://code.google.com/chrome/extensions/manifest.html#permissions
     60   ///
     61   /// @param[in] cc A <code>PP_CompletionCallback</code> to be called upon
     62   /// completion of Open().
     63   ///
     64   /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
     65   int32_t Open(int64_t expected_size, const CompletionCallback& cc);
     66 };
     67 
     68 }  // namespace pp
     69 
     70 #endif  // PPAPI_CPP_FILE_SYSTEM_H_
     71