OLD | NEW |
1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 #ifndef PPAPI_C_PPB_FILE_REF_H_ | 5 #ifndef PPAPI_C_PPB_FILE_REF_H_ |
6 #define PPAPI_C_PPB_FILE_REF_H_ | 6 #define PPAPI_C_PPB_FILE_REF_H_ |
7 | 7 |
8 #include "ppapi/c/pp_bool.h" | 8 #include "ppapi/c/pp_bool.h" |
9 #include "ppapi/c/pp_file_info.h" | 9 #include "ppapi/c/pp_file_info.h" |
10 #include "ppapi/c/pp_instance.h" | 10 #include "ppapi/c/pp_instance.h" |
11 #include "ppapi/c/pp_resource.h" | 11 #include "ppapi/c/pp_resource.h" |
12 #include "ppapi/c/pp_var.h" | 12 #include "ppapi/c/pp_var.h" |
13 | 13 |
| 14 /** |
| 15 * @file |
| 16 * This file defines the API to create a file reference or "weak pointer" to a |
| 17 * file in a file system. |
| 18 */ |
| 19 |
14 struct PP_CompletionCallback; | 20 struct PP_CompletionCallback; |
15 | 21 |
16 #define PPB_FILEREF_INTERFACE_0_9 "PPB_FileRef;0.9" | 22 #define PPB_FILEREF_INTERFACE_0_9 "PPB_FileRef;0.9" |
17 #define PPB_FILEREF_INTERFACE PPB_FILEREF_INTERFACE_0_9 | 23 #define PPB_FILEREF_INTERFACE PPB_FILEREF_INTERFACE_0_9 |
18 | 24 |
19 // A FileRef is a "weak pointer" to a file in a file system. It contains a | 25 /** |
20 // PP_FileSystemType identifier and a file path string. | 26 * @addtogroup Structs |
| 27 * @{ |
| 28 */ |
| 29 /** |
| 30 * The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in |
| 31 * a file system. This struct contains a <code>PP_FileSystemType</code> |
| 32 * identifier and a file path string. |
| 33 */ |
21 struct PPB_FileRef { | 34 struct PPB_FileRef { |
22 // Creates a weak pointer to a file in the given filesystem. File paths are | 35 /** |
23 // POSIX style. Returns 0 if the path is malformed. | 36 * Create() creates a weak pointer to a file in the given file system. File |
| 37 * paths are POSIX style. |
| 38 * |
| 39 * @param[in] resource A <code>PP_Resource</code> corresponding to a file |
| 40 * system. |
| 41 * @param[in] path A path to the file. |
| 42 * |
| 43 * @return A <code>PP_Resource</code> corresponding to a file reference if |
| 44 * successful or 0 if the path is malformed. |
| 45 */ |
24 PP_Resource (*Create)(PP_Resource file_system, const char* path); | 46 PP_Resource (*Create)(PP_Resource file_system, const char* path); |
25 | 47 /** |
26 // Returns PP_TRUE if the given resource is a FileRef. Returns PP_FALSE if the | 48 * IsFileRef() determines if the provided resource is a file reference. |
27 // resource is invalid or some type other than a FileRef. | 49 * |
| 50 * @param[in] resource A <code>PP_Resource</code> corresponding to a file |
| 51 * reference. |
| 52 * |
| 53 * @return <code>PP_TRUE</code> if the resource is a |
| 54 * <code>PPB_FileRef</code>, <code>PP_FALSE</code> if the resource is |
| 55 * invalid or some type other than <code>PPB_FileRef</code>. |
| 56 */ |
28 PP_Bool (*IsFileRef)(PP_Resource resource); | 57 PP_Bool (*IsFileRef)(PP_Resource resource); |
29 | 58 |
30 // Returns the file system identifier of this file, or | 59 /** |
31 // PP_FILESYSTEMTYPE_INVALID if the file ref is invalid. | 60 * GetFileSystemType() returns the type of the file system. |
| 61 * |
| 62 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 63 * reference. |
| 64 * |
| 65 * @return A <code>PP_FileSystemType</code> with the file system type if |
| 66 * valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource |
| 67 * is not a valid file reference. |
| 68 */ |
32 PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref); | 69 PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref); |
33 | 70 |
34 // Returns the name of the file. The value returned by this function does not | 71 /** |
35 // include any path component (such as the name of the parent directory, for | 72 * GetName() returns the name of the file. |
36 // example). It is just the name of the file. To get the full file path, use | 73 * |
37 // the GetPath() function. | 74 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 75 * reference. |
| 76 * |
| 77 * @return A <code>PP_Var</code> containing the name of the file. The value |
| 78 * returned by this function does not include any path components (such as |
| 79 * the name of the parent directory, for example). It is just the name of the |
| 80 * file. Use GetPath() to get the full file path. |
| 81 */ |
38 struct PP_Var (*GetName)(PP_Resource file_ref); | 82 struct PP_Var (*GetName)(PP_Resource file_ref); |
39 | 83 |
40 // Returns the absolute path of the file. This method fails if the file | 84 /** |
41 // system type is PP_FileSystemType_External. | 85 * GetPath() returns the absolute path of the file. |
| 86 * |
| 87 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 88 * reference. |
| 89 * |
| 90 * @return A <code>PP_Var</code> containing the absolute path of the file. |
| 91 * This function fails if the file system type is |
| 92 * <code>PP_FileSystemType_External</code>. |
| 93 */ |
42 struct PP_Var (*GetPath)(PP_Resource file_ref); | 94 struct PP_Var (*GetPath)(PP_Resource file_ref); |
43 | 95 |
44 // Returns the parent directory of this file. If file_ref points to the root | 96 /** |
45 // of the filesystem, then the root is returned. This method fails if the | 97 * GetParent() returns the parent directory of this file. If |
46 // file system type is PP_FileSystemType_External. | 98 * <code>file_ref</code> points to the root of the filesystem, then the root |
| 99 * is returned. |
| 100 * |
| 101 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 102 * reference. |
| 103 * |
| 104 * @return A <code>PP_Resource</code> containing the parent directory of the |
| 105 * file. This function fails if the file system type is |
| 106 * <code>PP_FileSystemType_External</code>. |
| 107 */ |
47 PP_Resource (*GetParent)(PP_Resource file_ref); | 108 PP_Resource (*GetParent)(PP_Resource file_ref); |
48 | 109 |
49 // Makes a new directory in the filesystem as well as any parent directories | 110 /** |
50 // if the make_ancestors parameter is PP_TRUE. It is not valid to make a | 111 * MakeDirectory() makes a new directory in the file system as well as any |
51 // directory in the external filesystem. Fails if the directory already | 112 * parent directories if the <code>make_ancestors</code> argument is |
52 // exists or if ancestor directories do not exist and make_ancestors was not | 113 * <code>PP_TRUE</code>. It is not valid to make a directory in the external |
53 // passed as PP_TRUE. | 114 * file system. |
| 115 * |
| 116 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 117 * reference. |
| 118 * @param[in] make_ancestors A <code>PP_Bool</code> set to |
| 119 * <code>PP_TRUE</code> to make ancestor directories or <code>PP_FALSE</code> |
| 120 * if ancestor directories are not needed. |
| 121 * |
| 122 * @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 123 * Fails if the directory already exists or if ancestor directories do not |
| 124 * exist and <code>make_ancestors</code> was not passed as |
| 125 * <code>PP_TRUE</code>. |
| 126 */ |
54 int32_t (*MakeDirectory)(PP_Resource directory_ref, | 127 int32_t (*MakeDirectory)(PP_Resource directory_ref, |
55 PP_Bool make_ancestors, | 128 PP_Bool make_ancestors, |
56 struct PP_CompletionCallback callback); | 129 struct PP_CompletionCallback callback); |
57 | 130 |
58 // Updates timestamps for a file. You must have write access to the file if | 131 /** |
59 // it exists in the external filesystem. | 132 * Touch() Updates time stamps for a file. You must have write access to the |
| 133 * file if it exists in the external filesystem. |
| 134 * |
| 135 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 136 * reference. |
| 137 * @param[in] last_access_time The last time the file was accessed. |
| 138 * @param[in] last_modified_time The last time the file was modified. |
| 139 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon |
| 140 * completion of Touch(). |
| 141 * |
| 142 * @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 143 */ |
60 int32_t (*Touch)(PP_Resource file_ref, | 144 int32_t (*Touch)(PP_Resource file_ref, |
61 PP_Time last_access_time, | 145 PP_Time last_access_time, |
62 PP_Time last_modified_time, | 146 PP_Time last_modified_time, |
63 struct PP_CompletionCallback callback); | 147 struct PP_CompletionCallback callback); |
64 | 148 |
65 // Delete a file or directory. If file_ref refers to a directory, then the | 149 /** |
66 // directory must be empty. It is an error to delete a file or directory | 150 * Delete() deletes a file or directory. If <code>file_ref</code> refers to |
67 // that is in use. It is not valid to delete a file in the external | 151 * a directory, then the directory must be empty. It is an error to delete a |
68 // filesystem. | 152 * file or directory that is in use. It is not valid to delete a file in |
| 153 * the external file system. |
| 154 * |
| 155 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 156 * reference. |
| 157 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon |
| 158 * completion of Delete(). |
| 159 * |
| 160 * @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 161 */ |
69 int32_t (*Delete)(PP_Resource file_ref, | 162 int32_t (*Delete)(PP_Resource file_ref, |
70 struct PP_CompletionCallback callback); | 163 struct PP_CompletionCallback callback); |
71 | 164 |
72 // Rename a file or directory. file_ref and new_file_ref must both refer to | 165 /** |
73 // files in the same filesystem. It is an error to rename a file or | 166 * Rename() renames a file or directory. Arguments <code>file_ref</code> and |
74 // directory that is in use. It is not valid to rename a file in the | 167 * <code>new_file_ref</code> must both refer to files in the same file |
75 // external filesystem. | 168 * system. It is an error to rename a file or directory that is in use. It |
| 169 * is not valid to rename a file in the external file system. |
| 170 * |
| 171 * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file |
| 172 * reference. |
| 173 * @param[in] new_file_ref A <code>PP_Resource</code> corresponding to a new |
| 174 * file reference. |
| 175 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon |
| 176 * completion of Rename(). |
| 177 * |
| 178 * @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 179 */ |
76 int32_t (*Rename)(PP_Resource file_ref, | 180 int32_t (*Rename)(PP_Resource file_ref, |
77 PP_Resource new_file_ref, | 181 PP_Resource new_file_ref, |
78 struct PP_CompletionCallback callback); | 182 struct PP_CompletionCallback callback); |
79 }; | 183 }; |
| 184 /** |
| 185 * @} |
| 186 */ |
80 | 187 |
81 #endif /* PPAPI_C_PPB_FILE_REF_H_ */ | 188 #endif /* PPAPI_C_PPB_FILE_REF_H_ */ |
82 | 189 |
OLD | NEW |