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

Side by Side Diff: gecko-sdk/include/nsIFile.h

Issue 20346: Version 1.8 of gecko-sdk. Downloaded from here:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 11 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gecko-sdk/include/nsIFactory.h ('k') | gecko-sdk/include/nsIFileURL.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*
2 * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0 -Release/WINNT_5.2_Depend/mozilla/xpcom/io/nsIFile.idl
3 */
4
5 #ifndef __gen_nsIFile_h__
6 #define __gen_nsIFile_h__
7
8
9 #ifndef __gen_nsISupports_h__
10 #include "nsISupports.h"
11 #endif
12
13 /* For IDL files that don't want to include root IDL files. */
14 #ifndef NS_NO_VTABLE
15 #define NS_NO_VTABLE
16 #endif
17 class nsISimpleEnumerator; /* forward declaration */
18
19
20 /* starting interface: nsIFile */
21 #define NS_IFILE_IID_STR "c8c0a080-0868-11d3-915f-d9d889d48e3c"
22
23 #define NS_IFILE_IID \
24 {0xc8c0a080, 0x0868, 0x11d3, \
25 { 0x91, 0x5f, 0xd9, 0xd8, 0x89, 0xd4, 0x8e, 0x3c }}
26
27 /**
28 * This is the only correct cross-platform way to specify a file.
29 * Strings are not such a way. If you grew up on windows or unix, you
30 * may think they are. Welcome to reality.
31 *
32 * All methods with string parameters have two forms. The preferred
33 * form operates on UCS-2 encoded characters strings. An alternate
34 * form operates on characters strings encoded in the "native" charset.
35 *
36 * A string containing characters encoded in the native charset cannot
37 * be safely passed to javascript via xpconnect. Therefore, the "native
38 * methods" are not scriptable.
39 *
40 * @status FROZEN
41 */
42 class NS_NO_VTABLE nsIFile : public nsISupports {
43 public:
44
45 NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFILE_IID)
46
47 /**
48 * Create Types
49 *
50 * NORMAL_FILE_TYPE - A normal file.
51 * DIRECTORY_TYPE - A directory/folder.
52 */
53 enum { NORMAL_FILE_TYPE = 0U };
54
55 enum { DIRECTORY_TYPE = 1U };
56
57 /**
58 * append[Native]
59 *
60 * This function is used for constructing a descendent of the
61 * current nsIFile.
62 *
63 * @param node
64 * A string which is intended to be a child node of the nsIFile.
65 * For the |appendNative| method, the node must be in the native
66 * filesystem charset.
67 */
68 /* void append (in AString node); */
69 NS_IMETHOD Append(const nsAString & node) = 0;
70
71 /* [noscript] void appendNative (in ACString node); */
72 NS_IMETHOD AppendNative(const nsACString & node) = 0;
73
74 /**
75 * Normalize the pathName (e.g. removing .. and . components on Unix).
76 */
77 /* void normalize (); */
78 NS_IMETHOD Normalize(void) = 0;
79
80 /**
81 * create
82 *
83 * This function will create a new file or directory in the
84 * file system. Any nodes that have not been created or
85 * resolved, will be. If the file or directory already
86 * exists create() will return NS_ERROR_FILE_ALREADY_EXISTS.
87 *
88 * @param type
89 * This specifies the type of file system object
90 * to be made. The only two types at this time
91 * are file and directory which are defined above.
92 * If the type is unrecongnized, we will return an
93 * error (NS_ERROR_FILE_UNKNOWN_TYPE).
94 *
95 * @param permissions
96 * The unix style octal permissions. This may
97 * be ignored on systems that do not need to do
98 * permissions.
99 */
100 /* void create (in unsigned long type, in unsigned long permissions); */
101 NS_IMETHOD Create(PRUint32 type, PRUint32 permissions) = 0;
102
103 /**
104 * Accessor to the leaf name of the file itself.
105 * For the |nativeLeafName| method, the nativeLeafName must
106 * be in the native filesystem charset.
107 */
108 /* attribute AString leafName; */
109 NS_IMETHOD GetLeafName(nsAString & aLeafName) = 0;
110 NS_IMETHOD SetLeafName(const nsAString & aLeafName) = 0;
111
112 /* [noscript] attribute ACString nativeLeafName; */
113 NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName) = 0;
114 NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName) = 0;
115
116 /**
117 * copyTo[Native]
118 *
119 * This will copy this file to the specified newParentDir.
120 * If a newName is specified, the file will be renamed.
121 * If 'this' is not created we will return an error
122 * (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST).
123 *
124 * copyTo may fail if the file already exists in the destination
125 * directory.
126 *
127 * copyTo will NOT resolve aliases/shortcuts during the copy.
128 *
129 * @param newParentDir
130 * This param is the destination directory. If the
131 * newParentDir is null, copyTo() will use the parent
132 * directory of this file. If the newParentDir is not
133 * empty and is not a directory, an error will be
134 * returned (NS_ERROR_FILE_DESTINATION_NOT_DIR). For the
135 * |CopyToNative| method, the newName must be in the
136 * native filesystem charset.
137 *
138 * @param newName
139 * This param allows you to specify a new name for
140 * the file to be copied. This param may be empty, in
141 * which case the current leaf name will be used.
142 */
143 /* void copyTo (in nsIFile newParentDir, in AString newName); */
144 NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName) = 0;
145
146 /* [noscript] void CopyToNative (in nsIFile newParentDir, in ACString newName) ; */
147 NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName) = 0 ;
148
149 /**
150 * copyToFollowingLinks[Native]
151 *
152 * This function is identical to copyTo with the exception that,
153 * as the name implies, it follows symbolic links. The XP_UNIX
154 * implementation always follow symbolic links when copying. For
155 * the |CopyToFollowingLinks| method, the newName must be in the
156 * native filesystem charset.
157 */
158 /* void copyToFollowingLinks (in nsIFile newParentDir, in AString newName); */
159 NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newNa me) = 0;
160
161 /* [noscript] void copyToFollowingLinksNative (in nsIFile newParentDir, in ACS tring newName); */
162 NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName) = 0;
163
164 /**
165 * moveTo[Native]
166 *
167 * A method to move this file or directory to newParentDir.
168 * If a newName is specified, the file or directory will be renamed.
169 * If 'this' is not created we will return an error
170 * (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST).
171 * If 'this' is a file, and the destination file already exists, moveTo
172 * will replace the old file.
173 *
174 * moveTo will NOT resolve aliases/shortcuts during the copy.
175 * moveTo will do the right thing and allow copies across volumes.
176 * moveTo will return an error (NS_ERROR_FILE_DIR_NOT_EMPTY) if 'this' is
177 * a directory and the destination directory is not empty.
178 * moveTo will return an error (NS_ERROR_FILE_ACCESS_DENIED) if 'this' is
179 * a directory and the destination directory is not writable.
180 *
181 * @param newParentDir
182 * This param is the destination directory. If the
183 * newParentDir is empty, moveTo() will rename the file
184 * within its current directory. If the newParentDir is
185 * not empty and does not name a directory, an error will
186 * be returned (NS_ERROR_FILE_DESTINATION_NOT_DIR). For
187 * the |moveToNative| method, the newName must be in the
188 * native filesystem charset.
189 *
190 * @param newName
191 * This param allows you to specify a new name for
192 * the file to be moved. This param may be empty, in
193 * which case the current leaf name will be used.
194 */
195 /* void moveTo (in nsIFile newParentDir, in AString newName); */
196 NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName) = 0;
197
198 /* [noscript] void moveToNative (in nsIFile newParentDir, in ACString newName) ; */
199 NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName) = 0 ;
200
201 /**
202 * This will try to delete this file. The 'recursive' flag
203 * must be PR_TRUE to delete directories which are not empty.
204 *
205 * This will not resolve any symlinks.
206 */
207 /* void remove (in boolean recursive); */
208 NS_IMETHOD Remove(PRBool recursive) = 0;
209
210 /**
211 * Attributes of nsIFile.
212 */
213 /* attribute unsigned long permissions; */
214 NS_IMETHOD GetPermissions(PRUint32 *aPermissions) = 0;
215 NS_IMETHOD SetPermissions(PRUint32 aPermissions) = 0;
216
217 /* attribute unsigned long permissionsOfLink; */
218 NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) = 0;
219 NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink) = 0;
220
221 /**
222 * File Times are to be in milliseconds from
223 * midnight (00:00:00), January 1, 1970 Greenwich Mean
224 * Time (GMT).
225 */
226 /* attribute PRInt64 lastModifiedTime; */
227 NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) = 0;
228 NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) = 0;
229
230 /* attribute PRInt64 lastModifiedTimeOfLink; */
231 NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) = 0;
232 NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink) = 0;
233
234 /**
235 * WARNING! On the Mac, getting/setting the file size with nsIFile
236 * only deals with the size of the data fork. If you need to
237 * know the size of the combined data and resource forks use the
238 * GetFileSizeWithResFork() method defined on nsILocalFileMac.
239 */
240 /* attribute PRInt64 fileSize; */
241 NS_IMETHOD GetFileSize(PRInt64 *aFileSize) = 0;
242 NS_IMETHOD SetFileSize(PRInt64 aFileSize) = 0;
243
244 /* readonly attribute PRInt64 fileSizeOfLink; */
245 NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink) = 0;
246
247 /**
248 * target & path
249 *
250 * Accessor to the string path. The native version of these
251 * strings are not guaranteed to be a usable path to pass to
252 * NSPR or the C stdlib. There are problems that affect
253 * platforms on which a path does not fully specify a file
254 * because two volumes can have the same name (e.g., XP_MAC).
255 * This is solved by holding "private", native data in the
256 * nsIFile implementation. This native data is lost when
257 * you convert to a string.
258 *
259 * DO NOT PASS TO USE WITH NSPR OR STDLIB!
260 *
261 * target
262 * Find out what the symlink points at. Will give error
263 * (NS_ERROR_FILE_INVALID_PATH) if not a symlink.
264 *
265 * path
266 * Find out what the nsIFile points at.
267 *
268 * Note that the ACString attributes are returned in the
269 * native filesystem charset.
270 *
271 */
272 /* readonly attribute AString target; */
273 NS_IMETHOD GetTarget(nsAString & aTarget) = 0;
274
275 /* [noscript] readonly attribute ACString nativeTarget; */
276 NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget) = 0;
277
278 /* readonly attribute AString path; */
279 NS_IMETHOD GetPath(nsAString & aPath) = 0;
280
281 /* [noscript] readonly attribute ACString nativePath; */
282 NS_IMETHOD GetNativePath(nsACString & aNativePath) = 0;
283
284 /* boolean exists (); */
285 NS_IMETHOD Exists(PRBool *_retval) = 0;
286
287 /* boolean isWritable (); */
288 NS_IMETHOD IsWritable(PRBool *_retval) = 0;
289
290 /* boolean isReadable (); */
291 NS_IMETHOD IsReadable(PRBool *_retval) = 0;
292
293 /* boolean isExecutable (); */
294 NS_IMETHOD IsExecutable(PRBool *_retval) = 0;
295
296 /* boolean isHidden (); */
297 NS_IMETHOD IsHidden(PRBool *_retval) = 0;
298
299 /* boolean isDirectory (); */
300 NS_IMETHOD IsDirectory(PRBool *_retval) = 0;
301
302 /* boolean isFile (); */
303 NS_IMETHOD IsFile(PRBool *_retval) = 0;
304
305 /* boolean isSymlink (); */
306 NS_IMETHOD IsSymlink(PRBool *_retval) = 0;
307
308 /**
309 * Not a regular file, not a directory, not a symlink.
310 */
311 /* boolean isSpecial (); */
312 NS_IMETHOD IsSpecial(PRBool *_retval) = 0;
313
314 /**
315 * createUnique
316 *
317 * This function will create a new file or directory in the
318 * file system. Any nodes that have not been created or
319 * resolved, will be. If this file already exists, we try
320 * variations on the leaf name "suggestedName" until we find
321 * one that did not already exist.
322 *
323 * If the search for nonexistent files takes too long
324 * (thousands of the variants already exist), we give up and
325 * return NS_ERROR_FILE_TOO_BIG.
326 *
327 * @param type
328 * This specifies the type of file system object
329 * to be made. The only two types at this time
330 * are file and directory which are defined above.
331 * If the type is unrecongnized, we will return an
332 * error (NS_ERROR_FILE_UNKNOWN_TYPE).
333 *
334 * @param permissions
335 * The unix style octal permissions. This may
336 * be ignored on systems that do not need to do
337 * permissions.
338 */
339 /* void createUnique (in unsigned long type, in unsigned long permissions); */
340 NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions) = 0;
341
342 /**
343 * clone()
344 *
345 * This function will allocate and initialize a nsIFile object to the
346 * exact location of the |this| nsIFile.
347 *
348 * @param file
349 * A nsIFile which this object will be initialize
350 * with.
351 *
352 */
353 /* nsIFile clone (); */
354 NS_IMETHOD Clone(nsIFile **_retval) = 0;
355
356 /**
357 * Will determine if the inFile equals this.
358 */
359 /* boolean equals (in nsIFile inFile); */
360 NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval) = 0;
361
362 /**
363 * Will determine if inFile is a descendant of this file
364 * If |recur| is true, look in subdirectories too
365 */
366 /* boolean contains (in nsIFile inFile, in boolean recur); */
367 NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) = 0;
368
369 /**
370 * Parent will be null when this is at the top of the volume.
371 */
372 /* readonly attribute nsIFile parent; */
373 NS_IMETHOD GetParent(nsIFile * *aParent) = 0;
374
375 /**
376 * Returns an enumeration of the elements in a directory. Each
377 * element in the enumeration is an nsIFile.
378 *
379 * @return NS_ERROR_FILE_NOT_DIRECTORY if the current nsIFile does
380 * not specify a directory.
381 */
382 /* readonly attribute nsISimpleEnumerator directoryEntries; */
383 NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) = 0;
384
385 };
386
387 /* Use this macro when declaring classes that implement this interface. */
388 #define NS_DECL_NSIFILE \
389 NS_IMETHOD Append(const nsAString & node); \
390 NS_IMETHOD AppendNative(const nsACString & node); \
391 NS_IMETHOD Normalize(void); \
392 NS_IMETHOD Create(PRUint32 type, PRUint32 permissions); \
393 NS_IMETHOD GetLeafName(nsAString & aLeafName); \
394 NS_IMETHOD SetLeafName(const nsAString & aLeafName); \
395 NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName); \
396 NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName); \
397 NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName); \
398 NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName); \
399 NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newNa me); \
400 NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName); \
401 NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName); \
402 NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName); \
403 NS_IMETHOD Remove(PRBool recursive); \
404 NS_IMETHOD GetPermissions(PRUint32 *aPermissions); \
405 NS_IMETHOD SetPermissions(PRUint32 aPermissions); \
406 NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink); \
407 NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink); \
408 NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime); \
409 NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime); \
410 NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink); \
411 NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink); \
412 NS_IMETHOD GetFileSize(PRInt64 *aFileSize); \
413 NS_IMETHOD SetFileSize(PRInt64 aFileSize); \
414 NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink); \
415 NS_IMETHOD GetTarget(nsAString & aTarget); \
416 NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget); \
417 NS_IMETHOD GetPath(nsAString & aPath); \
418 NS_IMETHOD GetNativePath(nsACString & aNativePath); \
419 NS_IMETHOD Exists(PRBool *_retval); \
420 NS_IMETHOD IsWritable(PRBool *_retval); \
421 NS_IMETHOD IsReadable(PRBool *_retval); \
422 NS_IMETHOD IsExecutable(PRBool *_retval); \
423 NS_IMETHOD IsHidden(PRBool *_retval); \
424 NS_IMETHOD IsDirectory(PRBool *_retval); \
425 NS_IMETHOD IsFile(PRBool *_retval); \
426 NS_IMETHOD IsSymlink(PRBool *_retval); \
427 NS_IMETHOD IsSpecial(PRBool *_retval); \
428 NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions); \
429 NS_IMETHOD Clone(nsIFile **_retval); \
430 NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval); \
431 NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval); \
432 NS_IMETHOD GetParent(nsIFile * *aParent); \
433 NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries);
434
435 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object. */
436 #define NS_FORWARD_NSIFILE(_to) \
437 NS_IMETHOD Append(const nsAString & node) { return _to Append(node); } \
438 NS_IMETHOD AppendNative(const nsACString & node) { return _to AppendNative(nod e); } \
439 NS_IMETHOD Normalize(void) { return _to Normalize(); } \
440 NS_IMETHOD Create(PRUint32 type, PRUint32 permissions) { return _to Create(typ e, permissions); } \
441 NS_IMETHOD GetLeafName(nsAString & aLeafName) { return _to GetLeafName(aLeafNa me); } \
442 NS_IMETHOD SetLeafName(const nsAString & aLeafName) { return _to SetLeafName(a LeafName); } \
443 NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName) { return _to GetNat iveLeafName(aNativeLeafName); } \
444 NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName) { return _to SetNativeLeafName(aNativeLeafName); } \
445 NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName) { return _ to CopyTo(newParentDir, newName); } \
446 NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName) { r eturn _to CopyToNative(newParentDir, newName); } \
447 NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newNa me) { return _to CopyToFollowingLinks(newParentDir, newName); } \
448 NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName) { return _to CopyToFollowingLinksNative(newParentDir, newName); } \
449 NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName) { return _ to MoveTo(newParentDir, newName); } \
450 NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName) { r eturn _to MoveToNative(newParentDir, newName); } \
451 NS_IMETHOD Remove(PRBool recursive) { return _to Remove(recursive); } \
452 NS_IMETHOD GetPermissions(PRUint32 *aPermissions) { return _to GetPermissions( aPermissions); } \
453 NS_IMETHOD SetPermissions(PRUint32 aPermissions) { return _to SetPermissions(a Permissions); } \
454 NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) { return _to Get PermissionsOfLink(aPermissionsOfLink); } \
455 NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink) { return _to SetP ermissionsOfLink(aPermissionsOfLink); } \
456 NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) { return _to GetLas tModifiedTime(aLastModifiedTime); } \
457 NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) { return _to SetLast ModifiedTime(aLastModifiedTime); } \
458 NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) { retur n _to GetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
459 NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink) { return _to SetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
460 NS_IMETHOD GetFileSize(PRInt64 *aFileSize) { return _to GetFileSize(aFileSize) ; } \
461 NS_IMETHOD SetFileSize(PRInt64 aFileSize) { return _to SetFileSize(aFileSize); } \
462 NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink) { return _to GetFileSiz eOfLink(aFileSizeOfLink); } \
463 NS_IMETHOD GetTarget(nsAString & aTarget) { return _to GetTarget(aTarget); } \
464 NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget) { return _to GetNativeT arget(aNativeTarget); } \
465 NS_IMETHOD GetPath(nsAString & aPath) { return _to GetPath(aPath); } \
466 NS_IMETHOD GetNativePath(nsACString & aNativePath) { return _to GetNativePath( aNativePath); } \
467 NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \
468 NS_IMETHOD IsWritable(PRBool *_retval) { return _to IsWritable(_retval); } \
469 NS_IMETHOD IsReadable(PRBool *_retval) { return _to IsReadable(_retval); } \
470 NS_IMETHOD IsExecutable(PRBool *_retval) { return _to IsExecutable(_retval); } \
471 NS_IMETHOD IsHidden(PRBool *_retval) { return _to IsHidden(_retval); } \
472 NS_IMETHOD IsDirectory(PRBool *_retval) { return _to IsDirectory(_retval); } \
473 NS_IMETHOD IsFile(PRBool *_retval) { return _to IsFile(_retval); } \
474 NS_IMETHOD IsSymlink(PRBool *_retval) { return _to IsSymlink(_retval); } \
475 NS_IMETHOD IsSpecial(PRBool *_retval) { return _to IsSpecial(_retval); } \
476 NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions) { return _to Crea teUnique(type, permissions); } \
477 NS_IMETHOD Clone(nsIFile **_retval) { return _to Clone(_retval); } \
478 NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval) { return _to Equals(inFile , _retval); } \
479 NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) { return _ to Contains(inFile, recur, _retval); } \
480 NS_IMETHOD GetParent(nsIFile * *aParent) { return _to GetParent(aParent); } \
481 NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) { ret urn _to GetDirectoryEntries(aDirectoryEntries); }
482
483 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object in a safe way. */
484 #define NS_FORWARD_SAFE_NSIFILE(_to) \
485 NS_IMETHOD Append(const nsAString & node) { return !_to ? NS_ERROR_NULL_POINTE R : _to->Append(node); } \
486 NS_IMETHOD AppendNative(const nsACString & node) { return !_to ? NS_ERROR_NULL _POINTER : _to->AppendNative(node); } \
487 NS_IMETHOD Normalize(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Normal ize(); } \
488 NS_IMETHOD Create(PRUint32 type, PRUint32 permissions) { return !_to ? NS_ERRO R_NULL_POINTER : _to->Create(type, permissions); } \
489 NS_IMETHOD GetLeafName(nsAString & aLeafName) { return !_to ? NS_ERROR_NULL_PO INTER : _to->GetLeafName(aLeafName); } \
490 NS_IMETHOD SetLeafName(const nsAString & aLeafName) { return !_to ? NS_ERROR_N ULL_POINTER : _to->SetLeafName(aLeafName); } \
491 NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName) { return !_to ? NS_ ERROR_NULL_POINTER : _to->GetNativeLeafName(aNativeLeafName); } \
492 NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNativeLeafName(aNativeLeafName); } \
493 NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName) { return ! _to ? NS_ERROR_NULL_POINTER : _to->CopyTo(newParentDir, newName); } \
494 NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName) { r eturn !_to ? NS_ERROR_NULL_POINTER : _to->CopyToNative(newParentDir, newName); } \
495 NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newNa me) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToFollowingLinks(newParentD ir, newName); } \
496 NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToFollowingLinksNati ve(newParentDir, newName); } \
497 NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName) { return ! _to ? NS_ERROR_NULL_POINTER : _to->MoveTo(newParentDir, newName); } \
498 NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName) { r eturn !_to ? NS_ERROR_NULL_POINTER : _to->MoveToNative(newParentDir, newName); } \
499 NS_IMETHOD Remove(PRBool recursive) { return !_to ? NS_ERROR_NULL_POINTER : _t o->Remove(recursive); } \
500 NS_IMETHOD GetPermissions(PRUint32 *aPermissions) { return !_to ? NS_ERROR_NUL L_POINTER : _to->GetPermissions(aPermissions); } \
501 NS_IMETHOD SetPermissions(PRUint32 aPermissions) { return !_to ? NS_ERROR_NULL _POINTER : _to->SetPermissions(aPermissions); } \
502 NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPermissionsOfLink(aPermissionsOfLink); } \
503 NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink) { return !_to ? N S_ERROR_NULL_POINTER : _to->SetPermissionsOfLink(aPermissionsOfLink); } \
504 NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) { return !_to ? NS_ ERROR_NULL_POINTER : _to->GetLastModifiedTime(aLastModifiedTime); } \
505 NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) { return !_to ? NS_E RROR_NULL_POINTER : _to->SetLastModifiedTime(aLastModifiedTime); } \
506 NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) { retur n !_to ? NS_ERROR_NULL_POINTER : _to->GetLastModifiedTimeOfLink(aLastModifiedTim eOfLink); } \
507 NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastModifiedTimeOfLink(aLastModifiedTime OfLink); } \
508 NS_IMETHOD GetFileSize(PRInt64 *aFileSize) { return !_to ? NS_ERROR_NULL_POINT ER : _to->GetFileSize(aFileSize); } \
509 NS_IMETHOD SetFileSize(PRInt64 aFileSize) { return !_to ? NS_ERROR_NULL_POINTE R : _to->SetFileSize(aFileSize); } \
510 NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink) { return !_to ? NS_ERRO R_NULL_POINTER : _to->GetFileSizeOfLink(aFileSizeOfLink); } \
511 NS_IMETHOD GetTarget(nsAString & aTarget) { return !_to ? NS_ERROR_NULL_POINTE R : _to->GetTarget(aTarget); } \
512 NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget) { return !_to ? NS_ERRO R_NULL_POINTER : _to->GetNativeTarget(aNativeTarget); } \
513 NS_IMETHOD GetPath(nsAString & aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
514 NS_IMETHOD GetNativePath(nsACString & aNativePath) { return !_to ? NS_ERROR_NU LL_POINTER : _to->GetNativePath(aNativePath); } \
515 NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to ->Exists(_retval); } \
516 NS_IMETHOD IsWritable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsWritable(_retval); } \
517 NS_IMETHOD IsReadable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsReadable(_retval); } \
518 NS_IMETHOD IsExecutable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsExecutable(_retval); } \
519 NS_IMETHOD IsHidden(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _ to->IsHidden(_retval); } \
520 NS_IMETHOD IsDirectory(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDirectory(_retval); } \
521 NS_IMETHOD IsFile(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to ->IsFile(_retval); } \
522 NS_IMETHOD IsSymlink(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSymlink(_retval); } \
523 NS_IMETHOD IsSpecial(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSpecial(_retval); } \
524 NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions) { return !_to ? N S_ERROR_NULL_POINTER : _to->CreateUnique(type, permissions); } \
525 NS_IMETHOD Clone(nsIFile **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _t o->Clone(_retval); } \
526 NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval) { return !_to ? NS_ERROR_N ULL_POINTER : _to->Equals(inFile, _retval); } \
527 NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) { return ! _to ? NS_ERROR_NULL_POINTER : _to->Contains(inFile, recur, _retval); } \
528 NS_IMETHOD GetParent(nsIFile * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
529 NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) { ret urn !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectoryEntries(aDirectoryEntries); }
530
531 #if 0
532 /* Use the code below as a template for the implementation class for this interf ace. */
533
534 /* Header file */
535 class nsFile : public nsIFile
536 {
537 public:
538 NS_DECL_ISUPPORTS
539 NS_DECL_NSIFILE
540
541 nsFile();
542
543 private:
544 ~nsFile();
545
546 protected:
547 /* additional members */
548 };
549
550 /* Implementation file */
551 NS_IMPL_ISUPPORTS1(nsFile, nsIFile)
552
553 nsFile::nsFile()
554 {
555 /* member initializers and constructor code */
556 }
557
558 nsFile::~nsFile()
559 {
560 /* destructor code */
561 }
562
563 /* void append (in AString node); */
564 NS_IMETHODIMP nsFile::Append(const nsAString & node)
565 {
566 return NS_ERROR_NOT_IMPLEMENTED;
567 }
568
569 /* [noscript] void appendNative (in ACString node); */
570 NS_IMETHODIMP nsFile::AppendNative(const nsACString & node)
571 {
572 return NS_ERROR_NOT_IMPLEMENTED;
573 }
574
575 /* void normalize (); */
576 NS_IMETHODIMP nsFile::Normalize()
577 {
578 return NS_ERROR_NOT_IMPLEMENTED;
579 }
580
581 /* void create (in unsigned long type, in unsigned long permissions); */
582 NS_IMETHODIMP nsFile::Create(PRUint32 type, PRUint32 permissions)
583 {
584 return NS_ERROR_NOT_IMPLEMENTED;
585 }
586
587 /* attribute AString leafName; */
588 NS_IMETHODIMP nsFile::GetLeafName(nsAString & aLeafName)
589 {
590 return NS_ERROR_NOT_IMPLEMENTED;
591 }
592 NS_IMETHODIMP nsFile::SetLeafName(const nsAString & aLeafName)
593 {
594 return NS_ERROR_NOT_IMPLEMENTED;
595 }
596
597 /* [noscript] attribute ACString nativeLeafName; */
598 NS_IMETHODIMP nsFile::GetNativeLeafName(nsACString & aNativeLeafName)
599 {
600 return NS_ERROR_NOT_IMPLEMENTED;
601 }
602 NS_IMETHODIMP nsFile::SetNativeLeafName(const nsACString & aNativeLeafName)
603 {
604 return NS_ERROR_NOT_IMPLEMENTED;
605 }
606
607 /* void copyTo (in nsIFile newParentDir, in AString newName); */
608 NS_IMETHODIMP nsFile::CopyTo(nsIFile *newParentDir, const nsAString & newName)
609 {
610 return NS_ERROR_NOT_IMPLEMENTED;
611 }
612
613 /* [noscript] void CopyToNative (in nsIFile newParentDir, in ACString newName); */
614 NS_IMETHODIMP nsFile::CopyToNative(nsIFile *newParentDir, const nsACString & new Name)
615 {
616 return NS_ERROR_NOT_IMPLEMENTED;
617 }
618
619 /* void copyToFollowingLinks (in nsIFile newParentDir, in AString newName); */
620 NS_IMETHODIMP nsFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAStrin g & newName)
621 {
622 return NS_ERROR_NOT_IMPLEMENTED;
623 }
624
625 /* [noscript] void copyToFollowingLinksNative (in nsIFile newParentDir, in ACStr ing newName); */
626 NS_IMETHODIMP nsFile::CopyToFollowingLinksNative(nsIFile *newParentDir, const ns ACString & newName)
627 {
628 return NS_ERROR_NOT_IMPLEMENTED;
629 }
630
631 /* void moveTo (in nsIFile newParentDir, in AString newName); */
632 NS_IMETHODIMP nsFile::MoveTo(nsIFile *newParentDir, const nsAString & newName)
633 {
634 return NS_ERROR_NOT_IMPLEMENTED;
635 }
636
637 /* [noscript] void moveToNative (in nsIFile newParentDir, in ACString newName); */
638 NS_IMETHODIMP nsFile::MoveToNative(nsIFile *newParentDir, const nsACString & new Name)
639 {
640 return NS_ERROR_NOT_IMPLEMENTED;
641 }
642
643 /* void remove (in boolean recursive); */
644 NS_IMETHODIMP nsFile::Remove(PRBool recursive)
645 {
646 return NS_ERROR_NOT_IMPLEMENTED;
647 }
648
649 /* attribute unsigned long permissions; */
650 NS_IMETHODIMP nsFile::GetPermissions(PRUint32 *aPermissions)
651 {
652 return NS_ERROR_NOT_IMPLEMENTED;
653 }
654 NS_IMETHODIMP nsFile::SetPermissions(PRUint32 aPermissions)
655 {
656 return NS_ERROR_NOT_IMPLEMENTED;
657 }
658
659 /* attribute unsigned long permissionsOfLink; */
660 NS_IMETHODIMP nsFile::GetPermissionsOfLink(PRUint32 *aPermissionsOfLink)
661 {
662 return NS_ERROR_NOT_IMPLEMENTED;
663 }
664 NS_IMETHODIMP nsFile::SetPermissionsOfLink(PRUint32 aPermissionsOfLink)
665 {
666 return NS_ERROR_NOT_IMPLEMENTED;
667 }
668
669 /* attribute PRInt64 lastModifiedTime; */
670 NS_IMETHODIMP nsFile::GetLastModifiedTime(PRInt64 *aLastModifiedTime)
671 {
672 return NS_ERROR_NOT_IMPLEMENTED;
673 }
674 NS_IMETHODIMP nsFile::SetLastModifiedTime(PRInt64 aLastModifiedTime)
675 {
676 return NS_ERROR_NOT_IMPLEMENTED;
677 }
678
679 /* attribute PRInt64 lastModifiedTimeOfLink; */
680 NS_IMETHODIMP nsFile::GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink )
681 {
682 return NS_ERROR_NOT_IMPLEMENTED;
683 }
684 NS_IMETHODIMP nsFile::SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink)
685 {
686 return NS_ERROR_NOT_IMPLEMENTED;
687 }
688
689 /* attribute PRInt64 fileSize; */
690 NS_IMETHODIMP nsFile::GetFileSize(PRInt64 *aFileSize)
691 {
692 return NS_ERROR_NOT_IMPLEMENTED;
693 }
694 NS_IMETHODIMP nsFile::SetFileSize(PRInt64 aFileSize)
695 {
696 return NS_ERROR_NOT_IMPLEMENTED;
697 }
698
699 /* readonly attribute PRInt64 fileSizeOfLink; */
700 NS_IMETHODIMP nsFile::GetFileSizeOfLink(PRInt64 *aFileSizeOfLink)
701 {
702 return NS_ERROR_NOT_IMPLEMENTED;
703 }
704
705 /* readonly attribute AString target; */
706 NS_IMETHODIMP nsFile::GetTarget(nsAString & aTarget)
707 {
708 return NS_ERROR_NOT_IMPLEMENTED;
709 }
710
711 /* [noscript] readonly attribute ACString nativeTarget; */
712 NS_IMETHODIMP nsFile::GetNativeTarget(nsACString & aNativeTarget)
713 {
714 return NS_ERROR_NOT_IMPLEMENTED;
715 }
716
717 /* readonly attribute AString path; */
718 NS_IMETHODIMP nsFile::GetPath(nsAString & aPath)
719 {
720 return NS_ERROR_NOT_IMPLEMENTED;
721 }
722
723 /* [noscript] readonly attribute ACString nativePath; */
724 NS_IMETHODIMP nsFile::GetNativePath(nsACString & aNativePath)
725 {
726 return NS_ERROR_NOT_IMPLEMENTED;
727 }
728
729 /* boolean exists (); */
730 NS_IMETHODIMP nsFile::Exists(PRBool *_retval)
731 {
732 return NS_ERROR_NOT_IMPLEMENTED;
733 }
734
735 /* boolean isWritable (); */
736 NS_IMETHODIMP nsFile::IsWritable(PRBool *_retval)
737 {
738 return NS_ERROR_NOT_IMPLEMENTED;
739 }
740
741 /* boolean isReadable (); */
742 NS_IMETHODIMP nsFile::IsReadable(PRBool *_retval)
743 {
744 return NS_ERROR_NOT_IMPLEMENTED;
745 }
746
747 /* boolean isExecutable (); */
748 NS_IMETHODIMP nsFile::IsExecutable(PRBool *_retval)
749 {
750 return NS_ERROR_NOT_IMPLEMENTED;
751 }
752
753 /* boolean isHidden (); */
754 NS_IMETHODIMP nsFile::IsHidden(PRBool *_retval)
755 {
756 return NS_ERROR_NOT_IMPLEMENTED;
757 }
758
759 /* boolean isDirectory (); */
760 NS_IMETHODIMP nsFile::IsDirectory(PRBool *_retval)
761 {
762 return NS_ERROR_NOT_IMPLEMENTED;
763 }
764
765 /* boolean isFile (); */
766 NS_IMETHODIMP nsFile::IsFile(PRBool *_retval)
767 {
768 return NS_ERROR_NOT_IMPLEMENTED;
769 }
770
771 /* boolean isSymlink (); */
772 NS_IMETHODIMP nsFile::IsSymlink(PRBool *_retval)
773 {
774 return NS_ERROR_NOT_IMPLEMENTED;
775 }
776
777 /* boolean isSpecial (); */
778 NS_IMETHODIMP nsFile::IsSpecial(PRBool *_retval)
779 {
780 return NS_ERROR_NOT_IMPLEMENTED;
781 }
782
783 /* void createUnique (in unsigned long type, in unsigned long permissions); */
784 NS_IMETHODIMP nsFile::CreateUnique(PRUint32 type, PRUint32 permissions)
785 {
786 return NS_ERROR_NOT_IMPLEMENTED;
787 }
788
789 /* nsIFile clone (); */
790 NS_IMETHODIMP nsFile::Clone(nsIFile **_retval)
791 {
792 return NS_ERROR_NOT_IMPLEMENTED;
793 }
794
795 /* boolean equals (in nsIFile inFile); */
796 NS_IMETHODIMP nsFile::Equals(nsIFile *inFile, PRBool *_retval)
797 {
798 return NS_ERROR_NOT_IMPLEMENTED;
799 }
800
801 /* boolean contains (in nsIFile inFile, in boolean recur); */
802 NS_IMETHODIMP nsFile::Contains(nsIFile *inFile, PRBool recur, PRBool *_retval)
803 {
804 return NS_ERROR_NOT_IMPLEMENTED;
805 }
806
807 /* readonly attribute nsIFile parent; */
808 NS_IMETHODIMP nsFile::GetParent(nsIFile * *aParent)
809 {
810 return NS_ERROR_NOT_IMPLEMENTED;
811 }
812
813 /* readonly attribute nsISimpleEnumerator directoryEntries; */
814 NS_IMETHODIMP nsFile::GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntri es)
815 {
816 return NS_ERROR_NOT_IMPLEMENTED;
817 }
818
819 /* End of implementation class template. */
820 #endif
821
822 #ifdef MOZILLA_INTERNAL_API
823 #include "nsDirectoryServiceUtils.h"
824 #endif
825
826 #endif /* __gen_nsIFile_h__ */
OLDNEW
« no previous file with comments | « gecko-sdk/include/nsIFactory.h ('k') | gecko-sdk/include/nsIFileURL.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698