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.
5 // Multiply-included message file, no traditional include guard.
6 #include "ipc/ipc_message_macros.h"
7 #include "ipc/ipc_param_traits.h"
8 #include "ipc/ipc_platform_file.h"
9 #include "ppapi/proxy/ppapi_proxy_export.h"
10 #include "ppapi/shared_impl/dir_contents.h"
11 #include "ppapi/shared_impl/file_path.h"
13 // Singly-included section since need custom serialization.
14 #ifndef PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
15 #define PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
20 struct ParamTraits
<ppapi::PepperFilePath
> {
21 typedef ppapi::PepperFilePath param_type
;
22 static void Write(Message
* m
, const param_type
& p
);
23 static bool Read(const Message
* m
, PickleIterator
* iter
, param_type
* p
);
24 static void Log(const param_type
& p
, std::string
* l
);
29 #endif // PPAPI_SHARED_IMPL_PEPPER_FILE_MESSAGES_H_
31 #undef IPC_MESSAGE_EXPORT
32 #define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT
34 #define IPC_MESSAGE_START PepperFileMsgStart
36 IPC_STRUCT_TRAITS_BEGIN(ppapi::DirEntry
)
37 IPC_STRUCT_TRAITS_MEMBER(name
)
38 IPC_STRUCT_TRAITS_MEMBER(is_dir
)
39 IPC_STRUCT_TRAITS_END()
41 // Trusted Pepper Filesystem messages from the renderer to the browser.
44 IPC_SYNC_MESSAGE_CONTROL2_2(PepperFileMsg_OpenFile
,
45 ppapi::PepperFilePath
/* path */,
47 base::PlatformFileError
/* error_code */,
48 IPC::PlatformFileForTransit
/* result */)
51 IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_RenameFile
,
52 ppapi::PepperFilePath
/* from_path */,
53 ppapi::PepperFilePath
/* to_path */,
54 base::PlatformFileError
/* error_code */)
57 IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_DeleteFileOrDir
,
58 ppapi::PepperFilePath
/* path */,
60 base::PlatformFileError
/* error_code */)
62 // Create the directory.
63 IPC_SYNC_MESSAGE_CONTROL1_1(PepperFileMsg_CreateDir
,
64 ppapi::PepperFilePath
/* path */,
65 base::PlatformFileError
/* error_code */)
67 // Query the file's info.
68 IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_QueryFile
,
69 ppapi::PepperFilePath
/* path */,
70 base::PlatformFileInfo
, /* info */
71 base::PlatformFileError
/* error_code */)
73 // Get the directory's contents.
74 IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_GetDirContents
,
75 ppapi::PepperFilePath
/* path */,
76 ppapi::DirContents
, /* contents */
77 base::PlatformFileError
/* error_code */)
79 // Create a temporary file.
80 IPC_SYNC_MESSAGE_CONTROL0_2(PepperFileMsg_CreateTemporaryFile
,
81 base::PlatformFileError
/* error_code */,
82 IPC::PlatformFileForTransit
/* file */)