diff options
-rw-r--r-- | ppapi/cpp/trusted/file_io_trusted.cc | 54 | ||||
-rw-r--r-- | ppapi/cpp/trusted/file_io_trusted.h | 36 | ||||
-rw-r--r-- | ppapi/ppapi_sources.gypi | 2 |
3 files changed, 92 insertions, 0 deletions
diff --git a/ppapi/cpp/trusted/file_io_trusted.cc b/ppapi/cpp/trusted/file_io_trusted.cc new file mode 100644 index 0000000..a3123ca --- /dev/null +++ b/ppapi/cpp/trusted/file_io_trusted.cc @@ -0,0 +1,54 @@ +// 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. + +#include "ppapi/cpp/trusted/file_io_trusted.h" + +#include "ppapi/c/pp_errors.h" +#include "ppapi/c/trusted/ppb_file_io_trusted.h" +#include "ppapi/cpp/completion_callback.h" +#include "ppapi/cpp/file_io.h" +#include "ppapi/cpp/module_impl.h" + +namespace pp { + +namespace { + +template <> const char* interface_name<PPB_FileIOTrusted>() { + return PPB_FILEIOTRUSTED_INTERFACE_0_4; +} + +} // namespace + +FileIO_Trusted::FileIO_Trusted() { +} + +int32_t FileIO_Trusted::GetOSFileDescriptor(const FileIO& file_io) { + const int32_t kInvalidOSFileDescriptor = -1; + if (!has_interface<PPB_FileIOTrusted>()) + return kInvalidOSFileDescriptor; + return get_interface<PPB_FileIOTrusted>()->GetOSFileDescriptor( + file_io.pp_resource()); +} + +int32_t FileIO_Trusted::WillWrite(const FileIO& file_io, + int64_t offset, + int32_t bytes_to_write, + const CompletionCallback& callback) { + if (!has_interface<PPB_FileIOTrusted>()) + return callback.MayForce(PP_ERROR_NOINTERFACE); + return get_interface<PPB_FileIOTrusted>()->WillWrite( + file_io.pp_resource(), offset, bytes_to_write, + callback.pp_completion_callback()); +} + +int32_t FileIO_Trusted::WillSetLength(const FileIO& file_io, + int64_t length, + const CompletionCallback& callback) { + if (!has_interface<PPB_FileIOTrusted>()) + return callback.MayForce(PP_ERROR_NOINTERFACE); + return get_interface<PPB_FileIOTrusted>()->WillSetLength( + file_io.pp_resource(), length, callback.pp_completion_callback()); +} + +} // namespace pp diff --git a/ppapi/cpp/trusted/file_io_trusted.h b/ppapi/cpp/trusted/file_io_trusted.h new file mode 100644 index 0000000..3ba2140 --- /dev/null +++ b/ppapi/cpp/trusted/file_io_trusted.h @@ -0,0 +1,36 @@ +// 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_TRUSTED_FILE_IO_TRUSTED_H_ +#define PPAPI_CPP_TRUSTED_FILE_IO_TRUSTED_H_ + +#include <string> + +#include "ppapi/c/pp_stdint.h" + +namespace pp { + +class FileIO; +class CompletionCallback; + +class FileIO_Trusted { + public: + /// Creates a FileIO_Trusted object. + FileIO_Trusted(); + + int32_t GetOSFileDescriptor(const FileIO& file_io); + + int32_t WillWrite(const FileIO& file_io, + int64_t offset, + int32_t bytes_to_write, + const CompletionCallback& callback); + + int32_t WillSetLength(const FileIO& file_io, + int64_t length, + const CompletionCallback& callback); +}; + +} // namespace pp + +#endif // PPAPI_CPP_TRUSTED_FILE_IO_TRUSTED_H_ diff --git a/ppapi/ppapi_sources.gypi b/ppapi/ppapi_sources.gypi index 94f10fb..5312209 100644 --- a/ppapi/ppapi_sources.gypi +++ b/ppapi/ppapi_sources.gypi @@ -243,6 +243,8 @@ # Trusted interfaces. 'cpp/trusted/file_chooser_trusted.cc', 'cpp/trusted/file_chooser_trusted.h', + 'cpp/trusted/file_io_trusted.cc', + 'cpp/trusted/file_io_trusted.h', ], # # Common Testing source for trusted and untrusted (NaCl) pugins. |