PageRenderTime 59ms CodeModel.GetById 30ms app.highlight 21ms RepoModel.GetById 1ms app.codeStats 1ms

/gecko_api/include/nsIFile.h

http://firefox-mac-pdf.googlecode.com/
C++ Header | 828 lines | 406 code | 103 blank | 319 comment | 0 complexity | e8d36a10141b678b1a54648d5f0311e7 MD5 | raw file
  1/*
  2 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/tinderbox/XR-Trunk/Darwin_8.8.4_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
 17class 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 */
 42class NS_NO_VTABLE NS_SCRIPTABLE nsIFile : public nsISupports {
 43 public: 
 44
 45  NS_DECLARE_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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD GetLeafName(nsAString & aLeafName) = 0;
110  NS_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newName) = 0;
160
161  /* [noscript] void copyToFollowingLinksNative (in nsIFile newParentDir, in ACString 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_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD Remove(PRBool recursive) = 0;
209
210  /**
211     *  Attributes of nsIFile.
212     */
213  /* attribute unsigned long permissions; */
214  NS_SCRIPTABLE NS_IMETHOD GetPermissions(PRUint32 *aPermissions) = 0;
215  NS_SCRIPTABLE NS_IMETHOD SetPermissions(PRUint32 aPermissions) = 0;
216
217  /* attribute unsigned long permissionsOfLink; */
218  NS_SCRIPTABLE NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) = 0;
219  NS_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) = 0;
228  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) = 0;
229
230  /* attribute PRInt64 lastModifiedTimeOfLink; */
231  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) = 0;
232  NS_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD GetFileSize(PRInt64 *aFileSize) = 0;
242  NS_SCRIPTABLE NS_IMETHOD SetFileSize(PRInt64 aFileSize) = 0;
243
244  /* readonly attribute PRInt64 fileSizeOfLink; */
245  NS_SCRIPTABLE 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., 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD Exists(PRBool *_retval) = 0;
286
287  /* boolean isWritable (); */
288  NS_SCRIPTABLE NS_IMETHOD IsWritable(PRBool *_retval) = 0;
289
290  /* boolean isReadable (); */
291  NS_SCRIPTABLE NS_IMETHOD IsReadable(PRBool *_retval) = 0;
292
293  /* boolean isExecutable (); */
294  NS_SCRIPTABLE NS_IMETHOD IsExecutable(PRBool *_retval) = 0;
295
296  /* boolean isHidden (); */
297  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) = 0;
298
299  /* boolean isDirectory (); */
300  NS_SCRIPTABLE NS_IMETHOD IsDirectory(PRBool *_retval) = 0;
301
302  /* boolean isFile (); */
303  NS_SCRIPTABLE NS_IMETHOD IsFile(PRBool *_retval) = 0;
304
305  /* boolean isSymlink (); */
306  NS_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE 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_SCRIPTABLE NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) = 0;
384
385};
386
387  NS_DEFINE_STATIC_IID_ACCESSOR(nsIFile, NS_IFILE_IID)
388
389/* Use this macro when declaring classes that implement this interface. */
390#define NS_DECL_NSIFILE \
391  NS_SCRIPTABLE NS_IMETHOD Append(const nsAString & node); \
392  NS_IMETHOD AppendNative(const nsACString & node); \
393  NS_SCRIPTABLE NS_IMETHOD Normalize(void); \
394  NS_SCRIPTABLE NS_IMETHOD Create(PRUint32 type, PRUint32 permissions); \
395  NS_SCRIPTABLE NS_IMETHOD GetLeafName(nsAString & aLeafName); \
396  NS_SCRIPTABLE NS_IMETHOD SetLeafName(const nsAString & aLeafName); \
397  NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName); \
398  NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName); \
399  NS_SCRIPTABLE NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName); \
400  NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName); \
401  NS_SCRIPTABLE NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newName); \
402  NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName); \
403  NS_SCRIPTABLE NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName); \
404  NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName); \
405  NS_SCRIPTABLE NS_IMETHOD Remove(PRBool recursive); \
406  NS_SCRIPTABLE NS_IMETHOD GetPermissions(PRUint32 *aPermissions); \
407  NS_SCRIPTABLE NS_IMETHOD SetPermissions(PRUint32 aPermissions); \
408  NS_SCRIPTABLE NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink); \
409  NS_SCRIPTABLE NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink); \
410  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime); \
411  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime); \
412  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink); \
413  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink); \
414  NS_SCRIPTABLE NS_IMETHOD GetFileSize(PRInt64 *aFileSize); \
415  NS_SCRIPTABLE NS_IMETHOD SetFileSize(PRInt64 aFileSize); \
416  NS_SCRIPTABLE NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink); \
417  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsAString & aTarget); \
418  NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget); \
419  NS_SCRIPTABLE NS_IMETHOD GetPath(nsAString & aPath); \
420  NS_IMETHOD GetNativePath(nsACString & aNativePath); \
421  NS_SCRIPTABLE NS_IMETHOD Exists(PRBool *_retval); \
422  NS_SCRIPTABLE NS_IMETHOD IsWritable(PRBool *_retval); \
423  NS_SCRIPTABLE NS_IMETHOD IsReadable(PRBool *_retval); \
424  NS_SCRIPTABLE NS_IMETHOD IsExecutable(PRBool *_retval); \
425  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval); \
426  NS_SCRIPTABLE NS_IMETHOD IsDirectory(PRBool *_retval); \
427  NS_SCRIPTABLE NS_IMETHOD IsFile(PRBool *_retval); \
428  NS_SCRIPTABLE NS_IMETHOD IsSymlink(PRBool *_retval); \
429  NS_SCRIPTABLE NS_IMETHOD IsSpecial(PRBool *_retval); \
430  NS_SCRIPTABLE NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions); \
431  NS_SCRIPTABLE NS_IMETHOD Clone(nsIFile **_retval); \
432  NS_SCRIPTABLE NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval); \
433  NS_SCRIPTABLE NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval); \
434  NS_SCRIPTABLE NS_IMETHOD GetParent(nsIFile * *aParent); \
435  NS_SCRIPTABLE NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries); 
436
437/* Use this macro to declare functions that forward the behavior of this interface to another object. */
438#define NS_FORWARD_NSIFILE(_to) \
439  NS_SCRIPTABLE NS_IMETHOD Append(const nsAString & node) { return _to Append(node); } \
440  NS_IMETHOD AppendNative(const nsACString & node) { return _to AppendNative(node); } \
441  NS_SCRIPTABLE NS_IMETHOD Normalize(void) { return _to Normalize(); } \
442  NS_SCRIPTABLE NS_IMETHOD Create(PRUint32 type, PRUint32 permissions) { return _to Create(type, permissions); } \
443  NS_SCRIPTABLE NS_IMETHOD GetLeafName(nsAString & aLeafName) { return _to GetLeafName(aLeafName); } \
444  NS_SCRIPTABLE NS_IMETHOD SetLeafName(const nsAString & aLeafName) { return _to SetLeafName(aLeafName); } \
445  NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName) { return _to GetNativeLeafName(aNativeLeafName); } \
446  NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName) { return _to SetNativeLeafName(aNativeLeafName); } \
447  NS_SCRIPTABLE NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName) { return _to CopyTo(newParentDir, newName); } \
448  NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName) { return _to CopyToNative(newParentDir, newName); } \
449  NS_SCRIPTABLE NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newName) { return _to CopyToFollowingLinks(newParentDir, newName); } \
450  NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName) { return _to CopyToFollowingLinksNative(newParentDir, newName); } \
451  NS_SCRIPTABLE NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName) { return _to MoveTo(newParentDir, newName); } \
452  NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName) { return _to MoveToNative(newParentDir, newName); } \
453  NS_SCRIPTABLE NS_IMETHOD Remove(PRBool recursive) { return _to Remove(recursive); } \
454  NS_SCRIPTABLE NS_IMETHOD GetPermissions(PRUint32 *aPermissions) { return _to GetPermissions(aPermissions); } \
455  NS_SCRIPTABLE NS_IMETHOD SetPermissions(PRUint32 aPermissions) { return _to SetPermissions(aPermissions); } \
456  NS_SCRIPTABLE NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) { return _to GetPermissionsOfLink(aPermissionsOfLink); } \
457  NS_SCRIPTABLE NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink) { return _to SetPermissionsOfLink(aPermissionsOfLink); } \
458  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) { return _to GetLastModifiedTime(aLastModifiedTime); } \
459  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) { return _to SetLastModifiedTime(aLastModifiedTime); } \
460  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) { return _to GetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
461  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink) { return _to SetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
462  NS_SCRIPTABLE NS_IMETHOD GetFileSize(PRInt64 *aFileSize) { return _to GetFileSize(aFileSize); } \
463  NS_SCRIPTABLE NS_IMETHOD SetFileSize(PRInt64 aFileSize) { return _to SetFileSize(aFileSize); } \
464  NS_SCRIPTABLE NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink) { return _to GetFileSizeOfLink(aFileSizeOfLink); } \
465  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsAString & aTarget) { return _to GetTarget(aTarget); } \
466  NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget) { return _to GetNativeTarget(aNativeTarget); } \
467  NS_SCRIPTABLE NS_IMETHOD GetPath(nsAString & aPath) { return _to GetPath(aPath); } \
468  NS_IMETHOD GetNativePath(nsACString & aNativePath) { return _to GetNativePath(aNativePath); } \
469  NS_SCRIPTABLE NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \
470  NS_SCRIPTABLE NS_IMETHOD IsWritable(PRBool *_retval) { return _to IsWritable(_retval); } \
471  NS_SCRIPTABLE NS_IMETHOD IsReadable(PRBool *_retval) { return _to IsReadable(_retval); } \
472  NS_SCRIPTABLE NS_IMETHOD IsExecutable(PRBool *_retval) { return _to IsExecutable(_retval); } \
473  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) { return _to IsHidden(_retval); } \
474  NS_SCRIPTABLE NS_IMETHOD IsDirectory(PRBool *_retval) { return _to IsDirectory(_retval); } \
475  NS_SCRIPTABLE NS_IMETHOD IsFile(PRBool *_retval) { return _to IsFile(_retval); } \
476  NS_SCRIPTABLE NS_IMETHOD IsSymlink(PRBool *_retval) { return _to IsSymlink(_retval); } \
477  NS_SCRIPTABLE NS_IMETHOD IsSpecial(PRBool *_retval) { return _to IsSpecial(_retval); } \
478  NS_SCRIPTABLE NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions) { return _to CreateUnique(type, permissions); } \
479  NS_SCRIPTABLE NS_IMETHOD Clone(nsIFile **_retval) { return _to Clone(_retval); } \
480  NS_SCRIPTABLE NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval) { return _to Equals(inFile, _retval); } \
481  NS_SCRIPTABLE NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) { return _to Contains(inFile, recur, _retval); } \
482  NS_SCRIPTABLE NS_IMETHOD GetParent(nsIFile * *aParent) { return _to GetParent(aParent); } \
483  NS_SCRIPTABLE NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) { return _to GetDirectoryEntries(aDirectoryEntries); } 
484
485/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
486#define NS_FORWARD_SAFE_NSIFILE(_to) \
487  NS_SCRIPTABLE NS_IMETHOD Append(const nsAString & node) { return !_to ? NS_ERROR_NULL_POINTER : _to->Append(node); } \
488  NS_IMETHOD AppendNative(const nsACString & node) { return !_to ? NS_ERROR_NULL_POINTER : _to->AppendNative(node); } \
489  NS_SCRIPTABLE NS_IMETHOD Normalize(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Normalize(); } \
490  NS_SCRIPTABLE NS_IMETHOD Create(PRUint32 type, PRUint32 permissions) { return !_to ? NS_ERROR_NULL_POINTER : _to->Create(type, permissions); } \
491  NS_SCRIPTABLE NS_IMETHOD GetLeafName(nsAString & aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLeafName(aLeafName); } \
492  NS_SCRIPTABLE NS_IMETHOD SetLeafName(const nsAString & aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLeafName(aLeafName); } \
493  NS_IMETHOD GetNativeLeafName(nsACString & aNativeLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativeLeafName(aNativeLeafName); } \
494  NS_IMETHOD SetNativeLeafName(const nsACString & aNativeLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNativeLeafName(aNativeLeafName); } \
495  NS_SCRIPTABLE NS_IMETHOD CopyTo(nsIFile *newParentDir, const nsAString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyTo(newParentDir, newName); } \
496  NS_IMETHOD CopyToNative(nsIFile *newParentDir, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToNative(newParentDir, newName); } \
497  NS_SCRIPTABLE NS_IMETHOD CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToFollowingLinks(newParentDir, newName); } \
498  NS_IMETHOD CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToFollowingLinksNative(newParentDir, newName); } \
499  NS_SCRIPTABLE NS_IMETHOD MoveTo(nsIFile *newParentDir, const nsAString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveTo(newParentDir, newName); } \
500  NS_IMETHOD MoveToNative(nsIFile *newParentDir, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveToNative(newParentDir, newName); } \
501  NS_SCRIPTABLE NS_IMETHOD Remove(PRBool recursive) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(recursive); } \
502  NS_SCRIPTABLE NS_IMETHOD GetPermissions(PRUint32 *aPermissions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPermissions(aPermissions); } \
503  NS_SCRIPTABLE NS_IMETHOD SetPermissions(PRUint32 aPermissions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPermissions(aPermissions); } \
504  NS_SCRIPTABLE NS_IMETHOD GetPermissionsOfLink(PRUint32 *aPermissionsOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPermissionsOfLink(aPermissionsOfLink); } \
505  NS_SCRIPTABLE NS_IMETHOD SetPermissionsOfLink(PRUint32 aPermissionsOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPermissionsOfLink(aPermissionsOfLink); } \
506  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTime(PRInt64 *aLastModifiedTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastModifiedTime(aLastModifiedTime); } \
507  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTime(PRInt64 aLastModifiedTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastModifiedTime(aLastModifiedTime); } \
508  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
509  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastModifiedTimeOfLink(aLastModifiedTimeOfLink); } \
510  NS_SCRIPTABLE NS_IMETHOD GetFileSize(PRInt64 *aFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSize(aFileSize); } \
511  NS_SCRIPTABLE NS_IMETHOD SetFileSize(PRInt64 aFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFileSize(aFileSize); } \
512  NS_SCRIPTABLE NS_IMETHOD GetFileSizeOfLink(PRInt64 *aFileSizeOfLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSizeOfLink(aFileSizeOfLink); } \
513  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsAString & aTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTarget(aTarget); } \
514  NS_IMETHOD GetNativeTarget(nsACString & aNativeTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativeTarget(aNativeTarget); } \
515  NS_SCRIPTABLE NS_IMETHOD GetPath(nsAString & aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
516  NS_IMETHOD GetNativePath(nsACString & aNativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativePath(aNativePath); } \
517  NS_SCRIPTABLE NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(_retval); } \
518  NS_SCRIPTABLE NS_IMETHOD IsWritable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsWritable(_retval); } \
519  NS_SCRIPTABLE NS_IMETHOD IsReadable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsReadable(_retval); } \
520  NS_SCRIPTABLE NS_IMETHOD IsExecutable(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsExecutable(_retval); } \
521  NS_SCRIPTABLE NS_IMETHOD IsHidden(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsHidden(_retval); } \
522  NS_SCRIPTABLE NS_IMETHOD IsDirectory(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDirectory(_retval); } \
523  NS_SCRIPTABLE NS_IMETHOD IsFile(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFile(_retval); } \
524  NS_SCRIPTABLE NS_IMETHOD IsSymlink(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSymlink(_retval); } \
525  NS_SCRIPTABLE NS_IMETHOD IsSpecial(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSpecial(_retval); } \
526  NS_SCRIPTABLE NS_IMETHOD CreateUnique(PRUint32 type, PRUint32 permissions) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateUnique(type, permissions); } \
527  NS_SCRIPTABLE NS_IMETHOD Clone(nsIFile **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Clone(_retval); } \
528  NS_SCRIPTABLE NS_IMETHOD Equals(nsIFile *inFile, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(inFile, _retval); } \
529  NS_SCRIPTABLE NS_IMETHOD Contains(nsIFile *inFile, PRBool recur, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Contains(inFile, recur, _retval); } \
530  NS_SCRIPTABLE NS_IMETHOD GetParent(nsIFile * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
531  NS_SCRIPTABLE NS_IMETHOD GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectoryEntries(aDirectoryEntries); } 
532
533#if 0
534/* Use the code below as a template for the implementation class for this interface. */
535
536/* Header file */
537class nsFile : public nsIFile
538{
539public:
540  NS_DECL_ISUPPORTS
541  NS_DECL_NSIFILE
542
543  nsFile();
544
545private:
546  ~nsFile();
547
548protected:
549  /* additional members */
550};
551
552/* Implementation file */
553NS_IMPL_ISUPPORTS1(nsFile, nsIFile)
554
555nsFile::nsFile()
556{
557  /* member initializers and constructor code */
558}
559
560nsFile::~nsFile()
561{
562  /* destructor code */
563}
564
565/* void append (in AString node); */
566NS_IMETHODIMP nsFile::Append(const nsAString & node)
567{
568    return NS_ERROR_NOT_IMPLEMENTED;
569}
570
571/* [noscript] void appendNative (in ACString node); */
572NS_IMETHODIMP nsFile::AppendNative(const nsACString & node)
573{
574    return NS_ERROR_NOT_IMPLEMENTED;
575}
576
577/* void normalize (); */
578NS_IMETHODIMP nsFile::Normalize()
579{
580    return NS_ERROR_NOT_IMPLEMENTED;
581}
582
583/* void create (in unsigned long type, in unsigned long permissions); */
584NS_IMETHODIMP nsFile::Create(PRUint32 type, PRUint32 permissions)
585{
586    return NS_ERROR_NOT_IMPLEMENTED;
587}
588
589/* attribute AString leafName; */
590NS_IMETHODIMP nsFile::GetLeafName(nsAString & aLeafName)
591{
592    return NS_ERROR_NOT_IMPLEMENTED;
593}
594NS_IMETHODIMP nsFile::SetLeafName(const nsAString & aLeafName)
595{
596    return NS_ERROR_NOT_IMPLEMENTED;
597}
598
599/* [noscript] attribute ACString nativeLeafName; */
600NS_IMETHODIMP nsFile::GetNativeLeafName(nsACString & aNativeLeafName)
601{
602    return NS_ERROR_NOT_IMPLEMENTED;
603}
604NS_IMETHODIMP nsFile::SetNativeLeafName(const nsACString & aNativeLeafName)
605{
606    return NS_ERROR_NOT_IMPLEMENTED;
607}
608
609/* void copyTo (in nsIFile newParentDir, in AString newName); */
610NS_IMETHODIMP nsFile::CopyTo(nsIFile *newParentDir, const nsAString & newName)
611{
612    return NS_ERROR_NOT_IMPLEMENTED;
613}
614
615/* [noscript] void CopyToNative (in nsIFile newParentDir, in ACString newName); */
616NS_IMETHODIMP nsFile::CopyToNative(nsIFile *newParentDir, const nsACString & newName)
617{
618    return NS_ERROR_NOT_IMPLEMENTED;
619}
620
621/* void copyToFollowingLinks (in nsIFile newParentDir, in AString newName); */
622NS_IMETHODIMP nsFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString & newName)
623{
624    return NS_ERROR_NOT_IMPLEMENTED;
625}
626
627/* [noscript] void copyToFollowingLinksNative (in nsIFile newParentDir, in ACString newName); */
628NS_IMETHODIMP nsFile::CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString & newName)
629{
630    return NS_ERROR_NOT_IMPLEMENTED;
631}
632
633/* void moveTo (in nsIFile newParentDir, in AString newName); */
634NS_IMETHODIMP nsFile::MoveTo(nsIFile *newParentDir, const nsAString & newName)
635{
636    return NS_ERROR_NOT_IMPLEMENTED;
637}
638
639/* [noscript] void moveToNative (in nsIFile newParentDir, in ACString newName); */
640NS_IMETHODIMP nsFile::MoveToNative(nsIFile *newParentDir, const nsACString & newName)
641{
642    return NS_ERROR_NOT_IMPLEMENTED;
643}
644
645/* void remove (in boolean recursive); */
646NS_IMETHODIMP nsFile::Remove(PRBool recursive)
647{
648    return NS_ERROR_NOT_IMPLEMENTED;
649}
650
651/* attribute unsigned long permissions; */
652NS_IMETHODIMP nsFile::GetPermissions(PRUint32 *aPermissions)
653{
654    return NS_ERROR_NOT_IMPLEMENTED;
655}
656NS_IMETHODIMP nsFile::SetPermissions(PRUint32 aPermissions)
657{
658    return NS_ERROR_NOT_IMPLEMENTED;
659}
660
661/* attribute unsigned long permissionsOfLink; */
662NS_IMETHODIMP nsFile::GetPermissionsOfLink(PRUint32 *aPermissionsOfLink)
663{
664    return NS_ERROR_NOT_IMPLEMENTED;
665}
666NS_IMETHODIMP nsFile::SetPermissionsOfLink(PRUint32 aPermissionsOfLink)
667{
668    return NS_ERROR_NOT_IMPLEMENTED;
669}
670
671/* attribute PRInt64 lastModifiedTime; */
672NS_IMETHODIMP nsFile::GetLastModifiedTime(PRInt64 *aLastModifiedTime)
673{
674    return NS_ERROR_NOT_IMPLEMENTED;
675}
676NS_IMETHODIMP nsFile::SetLastModifiedTime(PRInt64 aLastModifiedTime)
677{
678    return NS_ERROR_NOT_IMPLEMENTED;
679}
680
681/* attribute PRInt64 lastModifiedTimeOfLink; */
682NS_IMETHODIMP nsFile::GetLastModifiedTimeOfLink(PRInt64 *aLastModifiedTimeOfLink)
683{
684    return NS_ERROR_NOT_IMPLEMENTED;
685}
686NS_IMETHODIMP nsFile::SetLastModifiedTimeOfLink(PRInt64 aLastModifiedTimeOfLink)
687{
688    return NS_ERROR_NOT_IMPLEMENTED;
689}
690
691/* attribute PRInt64 fileSize; */
692NS_IMETHODIMP nsFile::GetFileSize(PRInt64 *aFileSize)
693{
694    return NS_ERROR_NOT_IMPLEMENTED;
695}
696NS_IMETHODIMP nsFile::SetFileSize(PRInt64 aFileSize)
697{
698    return NS_ERROR_NOT_IMPLEMENTED;
699}
700
701/* readonly attribute PRInt64 fileSizeOfLink; */
702NS_IMETHODIMP nsFile::GetFileSizeOfLink(PRInt64 *aFileSizeOfLink)
703{
704    return NS_ERROR_NOT_IMPLEMENTED;
705}
706
707/* readonly attribute AString target; */
708NS_IMETHODIMP nsFile::GetTarget(nsAString & aTarget)
709{
710    return NS_ERROR_NOT_IMPLEMENTED;
711}
712
713/* [noscript] readonly attribute ACString nativeTarget; */
714NS_IMETHODIMP nsFile::GetNativeTarget(nsACString & aNativeTarget)
715{
716    return NS_ERROR_NOT_IMPLEMENTED;
717}
718
719/* readonly attribute AString path; */
720NS_IMETHODIMP nsFile::GetPath(nsAString & aPath)
721{
722    return NS_ERROR_NOT_IMPLEMENTED;
723}
724
725/* [noscript] readonly attribute ACString nativePath; */
726NS_IMETHODIMP nsFile::GetNativePath(nsACString & aNativePath)
727{
728    return NS_ERROR_NOT_IMPLEMENTED;
729}
730
731/* boolean exists (); */
732NS_IMETHODIMP nsFile::Exists(PRBool *_retval)
733{
734    return NS_ERROR_NOT_IMPLEMENTED;
735}
736
737/* boolean isWritable (); */
738NS_IMETHODIMP nsFile::IsWritable(PRBool *_retval)
739{
740    return NS_ERROR_NOT_IMPLEMENTED;
741}
742
743/* boolean isReadable (); */
744NS_IMETHODIMP nsFile::IsReadable(PRBool *_retval)
745{
746    return NS_ERROR_NOT_IMPLEMENTED;
747}
748
749/* boolean isExecutable (); */
750NS_IMETHODIMP nsFile::IsExecutable(PRBool *_retval)
751{
752    return NS_ERROR_NOT_IMPLEMENTED;
753}
754
755/* boolean isHidden (); */
756NS_IMETHODIMP nsFile::IsHidden(PRBool *_retval)
757{
758    return NS_ERROR_NOT_IMPLEMENTED;
759}
760
761/* boolean isDirectory (); */
762NS_IMETHODIMP nsFile::IsDirectory(PRBool *_retval)
763{
764    return NS_ERROR_NOT_IMPLEMENTED;
765}
766
767/* boolean isFile (); */
768NS_IMETHODIMP nsFile::IsFile(PRBool *_retval)
769{
770    return NS_ERROR_NOT_IMPLEMENTED;
771}
772
773/* boolean isSymlink (); */
774NS_IMETHODIMP nsFile::IsSymlink(PRBool *_retval)
775{
776    return NS_ERROR_NOT_IMPLEMENTED;
777}
778
779/* boolean isSpecial (); */
780NS_IMETHODIMP nsFile::IsSpecial(PRBool *_retval)
781{
782    return NS_ERROR_NOT_IMPLEMENTED;
783}
784
785/* void createUnique (in unsigned long type, in unsigned long permissions); */
786NS_IMETHODIMP nsFile::CreateUnique(PRUint32 type, PRUint32 permissions)
787{
788    return NS_ERROR_NOT_IMPLEMENTED;
789}
790
791/* nsIFile clone (); */
792NS_IMETHODIMP nsFile::Clone(nsIFile **_retval)
793{
794    return NS_ERROR_NOT_IMPLEMENTED;
795}
796
797/* boolean equals (in nsIFile inFile); */
798NS_IMETHODIMP nsFile::Equals(nsIFile *inFile, PRBool *_retval)
799{
800    return NS_ERROR_NOT_IMPLEMENTED;
801}
802
803/* boolean contains (in nsIFile inFile, in boolean recur); */
804NS_IMETHODIMP nsFile::Contains(nsIFile *inFile, PRBool recur, PRBool *_retval)
805{
806    return NS_ERROR_NOT_IMPLEMENTED;
807}
808
809/* readonly attribute nsIFile parent; */
810NS_IMETHODIMP nsFile::GetParent(nsIFile * *aParent)
811{
812    return NS_ERROR_NOT_IMPLEMENTED;
813}
814
815/* readonly attribute nsISimpleEnumerator directoryEntries; */
816NS_IMETHODIMP nsFile::GetDirectoryEntries(nsISimpleEnumerator * *aDirectoryEntries)
817{
818    return NS_ERROR_NOT_IMPLEMENTED;
819}
820
821/* End of implementation class template. */
822#endif
823
824#ifdef MOZILLA_INTERNAL_API
825#include "nsDirectoryServiceUtils.h"
826#endif
827
828#endif /* __gen_nsIFile_h__ */