// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PPAPI_CPP_FILE_SYSTEM_H_
#define PPAPI_CPP_FILE_SYSTEM_H_
#include "ppapi/c/pp_file_info.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_time.h"
#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/resource.h"
/// @file
/// This file defines the API to create a file system associated with a file.
namespace pp {
class CompletionCallback;
/// The FileSystem
class identifies the file system type
/// associated with a file.
class FileSystem : public Resource {
public:
/// Constructs an is_null() filesystem resource. If you use this constructor,
/// you will have to assign it to a "real" FileSystem object before you can
/// use it.
FileSystem();
/// This constructor creates a file system object of the given type.
///
/// @param[in] instance The instance with which this resource will be
/// associated.
///
/// @param[in] type A file system type as defined by
/// PP_FileSystemType
enum.
FileSystem(const InstanceHandle& instance, PP_FileSystemType type);
/// Open() opens the file system. A file system must be opened before running
/// any other operation on it.
///
/// @param[in] expected_size The expected size of the file system.
/// @param[in] cc A PP_CompletionCallback
to be called upon
/// completion of Open().
///
/// @return An int32_t containing an error code from pp_errors.h
.
int32_t Open(int64_t expected_size, const CompletionCallback& cc);
};
} // namespace pp
#endif // PPAPI_CPP_FILE_SYSTEM_H_