Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: ppapi/cpp/dev/filesystem_provider.cc

Issue 1093383002: [WIP] Provided file system from NACL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved several modules to chromeos folder. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/cpp/dev/filesystem_provider.h ('k') | ppapi/host/resource_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/cpp/dev/filesystem_provider.cc
diff --git a/ppapi/cpp/dev/filesystem_provider.cc b/ppapi/cpp/dev/filesystem_provider.cc
new file mode 100644
index 0000000000000000000000000000000000000000..83a4c09fceec39bd40b852e207a82d62385749fd
--- /dev/null
+++ b/ppapi/cpp/dev/filesystem_provider.cc
@@ -0,0 +1,162 @@
+// Copyright 2015 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.
+
+#include "ppapi/cpp/dev/filesystem_provider.h"
+
+#include "ppapi/c/dev/ppb_filesystemprovider_dev.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/instance_handle.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+
+
+
+namespace pp{
+
+namespace {
+template <> const char* interface_name<PPB_FilesystemProvider_Dev_0_1>() {
+ return PPB_FILESYSTEMPROVIDER_DEV_INTERFACE_0_1;
+}
+} // namespace
+
+Filesystem_Provider_Dev::Filesystem_Provider_Dev(
+ pp::Instance* instance)
+ :associated_instance_(instance) {
+ if (has_interface<PPB_FilesystemProvider_Dev_0_1>()) {
+ PassRefFromConstructor(
+ get_interface<PPB_FilesystemProvider_Dev_0_1>()->Create(
+ associated_instance_.pp_instance() ) );
+ }
+}
+
+Filesystem_Provider_Dev::~Filesystem_Provider_Dev() {
+}
+
+bool Filesystem_Provider_Dev::IsAvailable() {
+ return has_interface<PPB_FilesystemProvider_Dev_0_1>();
+}
+
+int32_t Filesystem_Provider_Dev::Mount(
+ const std::string& filesystem_id,
+ const std::string& display_name,
+ bool writable, int32_t opened_files_limit,
+ const CompletionCallback& cc ) {
+ if ( has_interface<PPB_FilesystemProvider_Dev_0_1>() ) {
+ return get_interface<PPB_FilesystemProvider_Dev_0_1>()->Mount(
+ pp_resource(), pp::Var(filesystem_id).pp_var(),
+ pp::Var(display_name).pp_var(),
+ PP_FromBool(writable), opened_files_limit,
+ cc.pp_completion_callback() );
+ }
+
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev :: Unmount(
+ const std::string& filesystem_id,
+ const CompletionCallback& cc ) {
+ if( has_interface<PPB_FilesystemProvider_Dev_0_1>() ){
+ return get_interface<PPB_FilesystemProvider_Dev_0_1>()->Unmount(
+ pp_resource(), pp::Var(filesystem_id).pp_var(),
+ cc.pp_completion_callback() );
+ }
+ return PP_ERROR_NOINTERFACE ;
+}
+
+
+int32_t Filesystem_Provider_Dev::Notify(const VarDictionary& options_notify) {
+ if ( has_interface<PPB_FilesystemProvider_Dev_0_1>() ) {
+ return get_interface< PPB_FilesystemProvider_Dev_0_1 >()->Notify(
+ pp_resource(),options_notify.pp_var());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev::SendSuccessResponse(
+ const PP_OperationType_Dev operation_type,
+ int32_t request_id) {
+ if ( has_interface<PPB_FilesystemProvider_Dev_0_1>()) {
+ return get_interface<PPB_FilesystemProvider_Dev_0_1>(
+ )->SendSuccessResponse(
+ pp_resource(), operation_type, request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev::SendErrorResponse(
+ const PP_OperationType_Dev& operation_type,
+ int32_t error,
+ int32_t request_id) {
+ if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ){
+ return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
+ )->SendErrorResponse(
+ pp_resource(), operation_type, error,request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev :: SendMetadataSuccessResponse(
+ const VarDictionary& metadata,
+ int32_t request_id ) {
+ if ( has_interface< PPB_FilesystemProvider_Dev_0_1>() ) {
+ return get_interface< PPB_FilesystemProvider_Dev_0_1 > (
+ )->SendMetadataSuccessResponse(
+ pp_resource(), metadata.pp_var(), request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+
+int32_t Filesystem_Provider_Dev :: SendReadDirectorySuccessResponse(
+ const VarArray& entries,
+ bool has_more,
+ int32_t request_id ) {
+ if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ) {
+ return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
+ )->SendReadDirectorySuccessResponse(
+ pp_resource(),
+ entries.pp_var(),
+ PP_FromBool( has_more ),request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev::SendReadFileSuccessResponse(
+ uint32_t data_size,
+ const char* data, bool has_more,
+ int32_t request_id ) {
+ if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
+ return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
+ )->SendReadFileSuccessResponse(
+ pp_resource(),
+ data_size,
+ data,
+ PP_FromBool(has_more),
+ request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t Filesystem_Provider_Dev::GetNextRequest(
+ const CompletionCallbackWithOutput<PP_FilesystemRequest>& cc) {
+ if( has_interface<PPB_FilesystemProvider_Dev_0_1>() ){
+ return get_interface<PPB_FilesystemProvider_Dev_0_1>()->GetNextRequest(
+ pp_resource(), cc.output(), cc.pp_completion_callback() );
+ }
+ return PP_ERROR_NOINTERFACE ;
+}
+
+int32_t Filesystem_Provider_Dev::ReleaseRequestBuffer(int32_t request_id) {
+ if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
+ return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
+ )->ReleaseRequestBuffer(
+ pp_resource(),
+ request_id );
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+} //namespace pp
« no previous file with comments | « ppapi/cpp/dev/filesystem_provider.h ('k') | ppapi/host/resource_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698