summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/pepper_file_messages.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/pepper_file_messages.h')
-rw-r--r--ppapi/proxy/pepper_file_messages.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/ppapi/proxy/pepper_file_messages.h b/ppapi/proxy/pepper_file_messages.h
new file mode 100644
index 0000000..b8ec98c
--- /dev/null
+++ b/ppapi/proxy/pepper_file_messages.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2012 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.
+
+// Multiply-included message file, no traditional include guard.
+#include "ipc/ipc_message_macros.h"
+#include "ipc/ipc_param_traits.h"
+#include "ipc/ipc_platform_file.h"
+#include "ppapi/shared_impl/dir_contents.h"
+#include "ppapi/shared_impl/file_path.h"
+
+// Singly-included section since need custom serialization.
+#ifndef PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
+#define PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
+
+namespace IPC {
+
+template <>
+struct ParamTraits<ppapi::PepperFilePath> {
+ typedef ppapi::PepperFilePath param_type;
+ static void Write(Message* m, const param_type& p);
+ static bool Read(const Message* m, PickleIterator* iter, param_type* p);
+ static void Log(const param_type& p, std::string* l);
+};
+
+} // namespace IPC
+
+#endif // PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
+
+#define IPC_MESSAGE_START PepperFileMsgStart
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::DirEntry)
+ IPC_STRUCT_TRAITS_MEMBER(name)
+ IPC_STRUCT_TRAITS_MEMBER(is_dir)
+IPC_STRUCT_TRAITS_END()
+
+// Trusted Pepper Filesystem messages from the renderer to the browser.
+
+// Open the file.
+IPC_SYNC_MESSAGE_CONTROL2_2(PepperFileMsg_OpenFile,
+ ppapi::PepperFilePath /* path */,
+ int /* flags */,
+ base::PlatformFileError /* error_code */,
+ IPC::PlatformFileForTransit /* result */)
+
+// Rename the file.
+IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_RenameFile,
+ ppapi::PepperFilePath /* from_path */,
+ ppapi::PepperFilePath /* to_path */,
+ base::PlatformFileError /* error_code */)
+
+// Delete the file.
+IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_DeleteFileOrDir,
+ ppapi::PepperFilePath /* path */,
+ bool /* recursive */,
+ base::PlatformFileError /* error_code */)
+
+// Create the directory.
+IPC_SYNC_MESSAGE_CONTROL1_1(PepperFileMsg_CreateDir,
+ ppapi::PepperFilePath /* path */,
+ base::PlatformFileError /* error_code */)
+
+// Query the file's info.
+IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_QueryFile,
+ ppapi::PepperFilePath /* path */,
+ base::PlatformFileInfo, /* info */
+ base::PlatformFileError /* error_code */)
+
+// Get the directory's contents.
+IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_GetDirContents,
+ ppapi::PepperFilePath /* path */,
+ ppapi::DirContents, /* contents */
+ base::PlatformFileError /* error_code */)
+