/* * DO NOT EDIT. THIS FILE IS GENERATED FROM nsIFileSpec.idl */ #ifndef __gen_nsIFileSpec_h__ #define __gen_nsIFileSpec_h__ #ifndef __gen_nsISupports_h__ #include "nsISupports.h" #endif /* For IDL files that don't want to include root IDL files. */ #ifndef NS_NO_VTABLE #define NS_NO_VTABLE #endif #include "nsFileSpec.h" // for factory method class nsIFileURL; /* forward declaration */ class nsIFilePath; /* forward declaration */ class nsIOutputStream; /* forward declaration */ class nsIInputStream; /* forward declaration */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * THIS INTERFACE IS DEPRECIATED AND UNSUPPORTED! USE |nsIFile| and |nsILocalFile|. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // {A5740FA2-146E-11d3-B00D-00C04FC2E79B} #define NS_FILESPEC_CID \ { 0xa5740fa2, 0x146e, 0x11d3, { 0xb0, 0xd, 0x0, 0xc0, 0x4f, 0xc2, 0xe7, 0x9b } } #define NS_FILESPEC_CONTRACTID "@mozilla.org/filespec;1" #define NS_FILESPEC_CLASSNAME "File Spec" /* starting interface: nsIFileSpec */ #define NS_IFILESPEC_IID_STR "d8c0a080-0868-11d3-915f-d9d889d48e3c" #define NS_IFILESPEC_IID \ {0xd8c0a080, 0x0868, 0x11d3, \ { 0x91, 0x5f, 0xd9, 0xd8, 0x89, 0xd4, 0x8e, 0x3c }} class NS_NO_VTABLE nsIFileSpec : public nsISupports { public: NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFILESPEC_IID) /* void fromFileSpec ([const] in nsIFileSpec original); */ NS_IMETHOD FromFileSpec(const nsIFileSpec *original) = 0; /* attribute string URLString; */ NS_IMETHOD GetURLString(char * *aURLString) = 0; NS_IMETHOD SetURLString(const char * aURLString) = 0; /* attribute string unixStyleFilePath; */ NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) = 0; NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) = 0; /* attribute string persistentDescriptorString; */ NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) = 0; NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) = 0; /* attribute string nativePath; */ NS_IMETHOD GetNativePath(char * *aNativePath) = 0; NS_IMETHOD SetNativePath(const char * aNativePath) = 0; /* readonly attribute string NSPRPath; */ NS_IMETHOD GetNSPRPath(char * *aNSPRPath) = 0; /* void error (); */ NS_IMETHOD Error(void) = 0; /* boolean isValid (); */ NS_IMETHOD IsValid(PRBool *_retval) = 0; /* boolean failed (); */ NS_IMETHOD Failed(PRBool *_retval) = 0; /* attribute string leafName; */ NS_IMETHOD GetLeafName(char * *aLeafName) = 0; NS_IMETHOD SetLeafName(const char * aLeafName) = 0; /* readonly attribute nsIFileSpec parent; */ NS_IMETHOD GetParent(nsIFileSpec * *aParent) = 0; /* readonly attribute nsIInputStream inputStream; */ NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) = 0; /* readonly attribute nsIOutputStream outputStream; */ NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) = 0; /* boolean isChildOf (in nsIFileSpec possibleParent); */ NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) = 0; /* [noscript] readonly attribute nsFileSpec fileSpec; */ NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) = 0; /* [noscript] void setFromFileSpec ([const] in nsFileSpecRef spec); */ NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) = 0; /* attribute string fileContents; */ NS_IMETHOD GetFileContents(char * *aFileContents) = 0; NS_IMETHOD SetFileContents(const char * aFileContents) = 0; /* void makeUnique (); */ NS_IMETHOD MakeUnique(void) = 0; /* void makeUniqueWithSuggestedName (in string suggestedName); */ NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) = 0; /* readonly attribute unsigned long modDate; */ NS_IMETHOD GetModDate(PRUint32 *aModDate) = 0; /* boolean modDateChanged (in unsigned long oldStamp); */ NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) = 0; /* boolean isDirectory (); */ NS_IMETHOD IsDirectory(PRBool *_retval) = 0; /* boolean isFile (); */ NS_IMETHOD IsFile(PRBool *_retval) = 0; /* boolean exists (); */ NS_IMETHOD Exists(PRBool *_retval) = 0; /* boolean isHidden (); */ NS_IMETHOD IsHidden(PRBool *_retval) = 0; /* boolean equals (in nsIFileSpec spec); */ NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) = 0; /* readonly attribute unsigned long fileSize; */ NS_IMETHOD GetFileSize(PRUint32 *aFileSize) = 0; /* readonly attribute long long diskSpaceAvailable; */ NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) = 0; /* void appendRelativeUnixPath (in string relativePath); */ NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) = 0; /* void createDir (); */ NS_IMETHOD CreateDir(void) = 0; /* void touch (); */ NS_IMETHOD Touch(void) = 0; /* boolean isSymlink (); */ NS_IMETHOD IsSymlink(PRBool *_retval) = 0; /* void resolveSymlink (); */ NS_IMETHOD ResolveSymlink(void) = 0; /* void delete (in boolean recursive); */ NS_IMETHOD Delete(PRBool recursive) = 0; /* void truncate (in long aNewLength); */ NS_IMETHOD Truncate(PRInt32 aNewLength) = 0; /* void rename ([const] in string newLeafName); */ NS_IMETHOD Rename(const char *newLeafName) = 0; /* void copyToDir ([const] in nsIFileSpec newParentDir); */ NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) = 0; /* void moveToDir ([const] in nsIFileSpec newParentDir); */ NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) = 0; /* void execute ([const] in string args); */ NS_IMETHOD Execute(const char *args) = 0; /* void openStreamForReading (); */ NS_IMETHOD OpenStreamForReading(void) = 0; /* void openStreamForWriting (); */ NS_IMETHOD OpenStreamForWriting(void) = 0; /* void openStreamForReadingAndWriting (); */ NS_IMETHOD OpenStreamForReadingAndWriting(void) = 0; /* void closeStream (); */ NS_IMETHOD CloseStream(void) = 0; /* boolean isStreamOpen (); */ NS_IMETHOD IsStreamOpen(PRBool *_retval) = 0; /* boolean eof (); */ NS_IMETHOD Eof(PRBool *_retval) = 0; /* long read (inout string buffer, in long requestedCount); */ NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) = 0; /* void readLine (inout string line, in long bufferSize, out boolean wasTruncated); */ NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) = 0; /** Check eof() before each call. * CAUTION: false result only indicates line was truncated * to fit buffer, or an error occurred (OTHER THAN eof). */ /* long write (in string data, in long requestedCount); */ NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) = 0; /* void flush (); */ NS_IMETHOD Flush(void) = 0; /* void seek (in long offset); */ NS_IMETHOD Seek(PRInt32 offset) = 0; /* long tell (); */ NS_IMETHOD Tell(PRInt32 *_retval) = 0; /* void endLine (); */ NS_IMETHOD EndLine(void) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_NSIFILESPEC \ NS_IMETHOD FromFileSpec(const nsIFileSpec *original); \ NS_IMETHOD GetURLString(char * *aURLString); \ NS_IMETHOD SetURLString(const char * aURLString); \ NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath); \ NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath); \ NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString); \ NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString); \ NS_IMETHOD GetNativePath(char * *aNativePath); \ NS_IMETHOD SetNativePath(const char * aNativePath); \ NS_IMETHOD GetNSPRPath(char * *aNSPRPath); \ NS_IMETHOD Error(void); \ NS_IMETHOD IsValid(PRBool *_retval); \ NS_IMETHOD Failed(PRBool *_retval); \ NS_IMETHOD GetLeafName(char * *aLeafName); \ NS_IMETHOD SetLeafName(const char * aLeafName); \ NS_IMETHOD GetParent(nsIFileSpec * *aParent); \ NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream); \ NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream); \ NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval); \ NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec); \ NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec); \ NS_IMETHOD GetFileContents(char * *aFileContents); \ NS_IMETHOD SetFileContents(const char * aFileContents); \ NS_IMETHOD MakeUnique(void); \ NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName); \ NS_IMETHOD GetModDate(PRUint32 *aModDate); \ NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval); \ NS_IMETHOD IsDirectory(PRBool *_retval); \ NS_IMETHOD IsFile(PRBool *_retval); \ NS_IMETHOD Exists(PRBool *_retval); \ NS_IMETHOD IsHidden(PRBool *_retval); \ NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval); \ NS_IMETHOD GetFileSize(PRUint32 *aFileSize); \ NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable); \ NS_IMETHOD AppendRelativeUnixPath(const char *relativePath); \ NS_IMETHOD CreateDir(void); \ NS_IMETHOD Touch(void); \ NS_IMETHOD IsSymlink(PRBool *_retval); \ NS_IMETHOD ResolveSymlink(void); \ NS_IMETHOD Delete(PRBool recursive); \ NS_IMETHOD Truncate(PRInt32 aNewLength); \ NS_IMETHOD Rename(const char *newLeafName); \ NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir); \ NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir); \ NS_IMETHOD Execute(const char *args); \ NS_IMETHOD OpenStreamForReading(void); \ NS_IMETHOD OpenStreamForWriting(void); \ NS_IMETHOD OpenStreamForReadingAndWriting(void); \ NS_IMETHOD CloseStream(void); \ NS_IMETHOD IsStreamOpen(PRBool *_retval); \ NS_IMETHOD Eof(PRBool *_retval); \ NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval); \ NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated); \ NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval); \ NS_IMETHOD Flush(void); \ NS_IMETHOD Seek(PRInt32 offset); \ NS_IMETHOD Tell(PRInt32 *_retval); \ NS_IMETHOD EndLine(void); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_NSIFILESPEC(_to) \ NS_IMETHOD FromFileSpec(const nsIFileSpec *original) { return _to FromFileSpec(original); } \ NS_IMETHOD GetURLString(char * *aURLString) { return _to GetURLString(aURLString); } \ NS_IMETHOD SetURLString(const char * aURLString) { return _to SetURLString(aURLString); } \ NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) { return _to GetUnixStyleFilePath(aUnixStyleFilePath); } \ NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) { return _to SetUnixStyleFilePath(aUnixStyleFilePath); } \ NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) { return _to GetPersistentDescriptorString(aPersistentDescriptorString); } \ NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) { return _to SetPersistentDescriptorString(aPersistentDescriptorString); } \ NS_IMETHOD GetNativePath(char * *aNativePath) { return _to GetNativePath(aNativePath); } \ NS_IMETHOD SetNativePath(const char * aNativePath) { return _to SetNativePath(aNativePath); } \ NS_IMETHOD GetNSPRPath(char * *aNSPRPath) { return _to GetNSPRPath(aNSPRPath); } \ NS_IMETHOD Error(void) { return _to Error(); } \ NS_IMETHOD IsValid(PRBool *_retval) { return _to IsValid(_retval); } \ NS_IMETHOD Failed(PRBool *_retval) { return _to Failed(_retval); } \ NS_IMETHOD GetLeafName(char * *aLeafName) { return _to GetLeafName(aLeafName); } \ NS_IMETHOD SetLeafName(const char * aLeafName) { return _to SetLeafName(aLeafName); } \ NS_IMETHOD GetParent(nsIFileSpec * *aParent) { return _to GetParent(aParent); } \ NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) { return _to GetInputStream(aInputStream); } \ NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) { return _to GetOutputStream(aOutputStream); } \ NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) { return _to IsChildOf(possibleParent, _retval); } \ NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) { return _to GetFileSpec(aFileSpec); } \ NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) { return _to SetFromFileSpec(spec); } \ NS_IMETHOD GetFileContents(char * *aFileContents) { return _to GetFileContents(aFileContents); } \ NS_IMETHOD SetFileContents(const char * aFileContents) { return _to SetFileContents(aFileContents); } \ NS_IMETHOD MakeUnique(void) { return _to MakeUnique(); } \ NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) { return _to MakeUniqueWithSuggestedName(suggestedName); } \ NS_IMETHOD GetModDate(PRUint32 *aModDate) { return _to GetModDate(aModDate); } \ NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) { return _to ModDateChanged(oldStamp, _retval); } \ NS_IMETHOD IsDirectory(PRBool *_retval) { return _to IsDirectory(_retval); } \ NS_IMETHOD IsFile(PRBool *_retval) { return _to IsFile(_retval); } \ NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \ NS_IMETHOD IsHidden(PRBool *_retval) { return _to IsHidden(_retval); } \ NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) { return _to Equals(spec, _retval); } \ NS_IMETHOD GetFileSize(PRUint32 *aFileSize) { return _to GetFileSize(aFileSize); } \ NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) { return _to GetDiskSpaceAvailable(aDiskSpaceAvailable); } \ NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) { return _to AppendRelativeUnixPath(relativePath); } \ NS_IMETHOD CreateDir(void) { return _to CreateDir(); } \ NS_IMETHOD Touch(void) { return _to Touch(); } \ NS_IMETHOD IsSymlink(PRBool *_retval) { return _to IsSymlink(_retval); } \ NS_IMETHOD ResolveSymlink(void) { return _to ResolveSymlink(); } \ NS_IMETHOD Delete(PRBool recursive) { return _to Delete(recursive); } \ NS_IMETHOD Truncate(PRInt32 aNewLength) { return _to Truncate(aNewLength); } \ NS_IMETHOD Rename(const char *newLeafName) { return _to Rename(newLeafName); } \ NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) { return _to CopyToDir(newParentDir); } \ NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) { return _to MoveToDir(newParentDir); } \ NS_IMETHOD Execute(const char *args) { return _to Execute(args); } \ NS_IMETHOD OpenStreamForReading(void) { return _to OpenStreamForReading(); } \ NS_IMETHOD OpenStreamForWriting(void) { return _to OpenStreamForWriting(); } \ NS_IMETHOD OpenStreamForReadingAndWriting(void) { return _to OpenStreamForReadingAndWriting(); } \ NS_IMETHOD CloseStream(void) { return _to CloseStream(); } \ NS_IMETHOD IsStreamOpen(PRBool *_retval) { return _to IsStreamOpen(_retval); } \ NS_IMETHOD Eof(PRBool *_retval) { return _to Eof(_retval); } \ NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) { return _to Read(buffer, requestedCount, _retval); } \ NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) { return _to ReadLine(line, bufferSize, wasTruncated); } \ NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) { return _to Write(data, requestedCount, _retval); } \ NS_IMETHOD Flush(void) { return _to Flush(); } \ NS_IMETHOD Seek(PRInt32 offset) { return _to Seek(offset); } \ NS_IMETHOD Tell(PRInt32 *_retval) { return _to Tell(_retval); } \ NS_IMETHOD EndLine(void) { return _to EndLine(); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_NSIFILESPEC(_to) \ NS_IMETHOD FromFileSpec(const nsIFileSpec *original) { return !_to ? NS_ERROR_NULL_POINTER : _to->FromFileSpec(original); } \ NS_IMETHOD GetURLString(char * *aURLString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURLString(aURLString); } \ NS_IMETHOD SetURLString(const char * aURLString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetURLString(aURLString); } \ NS_IMETHOD GetUnixStyleFilePath(char * *aUnixStyleFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnixStyleFilePath(aUnixStyleFilePath); } \ NS_IMETHOD SetUnixStyleFilePath(const char * aUnixStyleFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUnixStyleFilePath(aUnixStyleFilePath); } \ NS_IMETHOD GetPersistentDescriptorString(char * *aPersistentDescriptorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersistentDescriptorString(aPersistentDescriptorString); } \ NS_IMETHOD SetPersistentDescriptorString(const char * aPersistentDescriptorString) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPersistentDescriptorString(aPersistentDescriptorString); } \ NS_IMETHOD GetNativePath(char * *aNativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativePath(aNativePath); } \ NS_IMETHOD SetNativePath(const char * aNativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNativePath(aNativePath); } \ NS_IMETHOD GetNSPRPath(char * *aNSPRPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNSPRPath(aNSPRPath); } \ NS_IMETHOD Error(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Error(); } \ NS_IMETHOD IsValid(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsValid(_retval); } \ NS_IMETHOD Failed(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Failed(_retval); } \ NS_IMETHOD GetLeafName(char * *aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLeafName(aLeafName); } \ NS_IMETHOD SetLeafName(const char * aLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLeafName(aLeafName); } \ NS_IMETHOD GetParent(nsIFileSpec * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \ NS_IMETHOD GetInputStream(nsIInputStream * *aInputStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInputStream(aInputStream); } \ NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOutputStream(aOutputStream); } \ NS_IMETHOD IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsChildOf(possibleParent, _retval); } \ NS_IMETHOD GetFileSpec(nsFileSpec *aFileSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSpec(aFileSpec); } \ NS_IMETHOD SetFromFileSpec(const nsFileSpec & spec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFromFileSpec(spec); } \ NS_IMETHOD GetFileContents(char * *aFileContents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileContents(aFileContents); } \ NS_IMETHOD SetFileContents(const char * aFileContents) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFileContents(aFileContents); } \ NS_IMETHOD MakeUnique(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUnique(); } \ NS_IMETHOD MakeUniqueWithSuggestedName(const char *suggestedName) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeUniqueWithSuggestedName(suggestedName); } \ NS_IMETHOD GetModDate(PRUint32 *aModDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModDate(aModDate); } \ NS_IMETHOD ModDateChanged(PRUint32 oldStamp, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModDateChanged(oldStamp, _retval); } \ NS_IMETHOD IsDirectory(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDirectory(_retval); } \ NS_IMETHOD IsFile(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFile(_retval); } \ NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(_retval); } \ NS_IMETHOD IsHidden(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsHidden(_retval); } \ NS_IMETHOD Equals(nsIFileSpec *spec, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(spec, _retval); } \ NS_IMETHOD GetFileSize(PRUint32 *aFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileSize(aFileSize); } \ NS_IMETHOD GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDiskSpaceAvailable(aDiskSpaceAvailable); } \ NS_IMETHOD AppendRelativeUnixPath(const char *relativePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->AppendRelativeUnixPath(relativePath); } \ NS_IMETHOD CreateDir(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDir(); } \ NS_IMETHOD Touch(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Touch(); } \ NS_IMETHOD IsSymlink(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSymlink(_retval); } \ NS_IMETHOD ResolveSymlink(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResolveSymlink(); } \ NS_IMETHOD Delete(PRBool recursive) { return !_to ? NS_ERROR_NULL_POINTER : _to->Delete(recursive); } \ NS_IMETHOD Truncate(PRInt32 aNewLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->Truncate(aNewLength); } \ NS_IMETHOD Rename(const char *newLeafName) { return !_to ? NS_ERROR_NULL_POINTER : _to->Rename(newLeafName); } \ NS_IMETHOD CopyToDir(const nsIFileSpec *newParentDir) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToDir(newParentDir); } \ NS_IMETHOD MoveToDir(const nsIFileSpec *newParentDir) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveToDir(newParentDir); } \ NS_IMETHOD Execute(const char *args) { return !_to ? NS_ERROR_NULL_POINTER : _to->Execute(args); } \ NS_IMETHOD OpenStreamForReading(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForReading(); } \ NS_IMETHOD OpenStreamForWriting(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForWriting(); } \ NS_IMETHOD OpenStreamForReadingAndWriting(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenStreamForReadingAndWriting(); } \ NS_IMETHOD CloseStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseStream(); } \ NS_IMETHOD IsStreamOpen(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsStreamOpen(_retval); } \ NS_IMETHOD Eof(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Eof(_retval); } \ NS_IMETHOD Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(buffer, requestedCount, _retval); } \ NS_IMETHOD ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadLine(line, bufferSize, wasTruncated); } \ NS_IMETHOD Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(data, requestedCount, _retval); } \ NS_IMETHOD Flush(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Flush(); } \ NS_IMETHOD Seek(PRInt32 offset) { return !_to ? NS_ERROR_NULL_POINTER : _to->Seek(offset); } \ NS_IMETHOD Tell(PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Tell(_retval); } \ NS_IMETHOD EndLine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndLine(); } #if 0 /* Use the code below as a template for the implementation class for this interface. */ /* Header file */ class nsFileSpec : public nsIFileSpec { public: NS_DECL_ISUPPORTS NS_DECL_NSIFILESPEC nsFileSpec(); virtual ~nsFileSpec(); /* additional members */ }; /* Implementation file */ NS_IMPL_ISUPPORTS1(nsFileSpec, nsIFileSpec) nsFileSpec::nsFileSpec() { NS_INIT_ISUPPORTS(); /* member initializers and constructor code */ } nsFileSpec::~nsFileSpec() { /* destructor code */ } /* void fromFileSpec ([const] in nsIFileSpec original); */ NS_IMETHODIMP nsFileSpec::FromFileSpec(const nsIFileSpec *original) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string URLString; */ NS_IMETHODIMP nsFileSpec::GetURLString(char * *aURLString) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetURLString(const char * aURLString) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string unixStyleFilePath; */ NS_IMETHODIMP nsFileSpec::GetUnixStyleFilePath(char * *aUnixStyleFilePath) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetUnixStyleFilePath(const char * aUnixStyleFilePath) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string persistentDescriptorString; */ NS_IMETHODIMP nsFileSpec::GetPersistentDescriptorString(char * *aPersistentDescriptorString) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetPersistentDescriptorString(const char * aPersistentDescriptorString) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string nativePath; */ NS_IMETHODIMP nsFileSpec::GetNativePath(char * *aNativePath) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetNativePath(const char * aNativePath) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute string NSPRPath; */ NS_IMETHODIMP nsFileSpec::GetNSPRPath(char * *aNSPRPath) { return NS_ERROR_NOT_IMPLEMENTED; } /* void error (); */ NS_IMETHODIMP nsFileSpec::Error() { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isValid (); */ NS_IMETHODIMP nsFileSpec::IsValid(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean failed (); */ NS_IMETHODIMP nsFileSpec::Failed(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string leafName; */ NS_IMETHODIMP nsFileSpec::GetLeafName(char * *aLeafName) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetLeafName(const char * aLeafName) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute nsIFileSpec parent; */ NS_IMETHODIMP nsFileSpec::GetParent(nsIFileSpec * *aParent) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute nsIInputStream inputStream; */ NS_IMETHODIMP nsFileSpec::GetInputStream(nsIInputStream * *aInputStream) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute nsIOutputStream outputStream; */ NS_IMETHODIMP nsFileSpec::GetOutputStream(nsIOutputStream * *aOutputStream) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isChildOf (in nsIFileSpec possibleParent); */ NS_IMETHODIMP nsFileSpec::IsChildOf(nsIFileSpec *possibleParent, PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* [noscript] readonly attribute nsFileSpec fileSpec; */ NS_IMETHODIMP nsFileSpec::GetFileSpec(nsFileSpec *aFileSpec) { return NS_ERROR_NOT_IMPLEMENTED; } /* [noscript] void setFromFileSpec ([const] in nsFileSpecRef spec); */ NS_IMETHODIMP nsFileSpec::SetFromFileSpec(const nsFileSpec & spec) { return NS_ERROR_NOT_IMPLEMENTED; } /* attribute string fileContents; */ NS_IMETHODIMP nsFileSpec::GetFileContents(char * *aFileContents) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP nsFileSpec::SetFileContents(const char * aFileContents) { return NS_ERROR_NOT_IMPLEMENTED; } /* void makeUnique (); */ NS_IMETHODIMP nsFileSpec::MakeUnique() { return NS_ERROR_NOT_IMPLEMENTED; } /* void makeUniqueWithSuggestedName (in string suggestedName); */ NS_IMETHODIMP nsFileSpec::MakeUniqueWithSuggestedName(const char *suggestedName) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute unsigned long modDate; */ NS_IMETHODIMP nsFileSpec::GetModDate(PRUint32 *aModDate) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean modDateChanged (in unsigned long oldStamp); */ NS_IMETHODIMP nsFileSpec::ModDateChanged(PRUint32 oldStamp, PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isDirectory (); */ NS_IMETHODIMP nsFileSpec::IsDirectory(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isFile (); */ NS_IMETHODIMP nsFileSpec::IsFile(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean exists (); */ NS_IMETHODIMP nsFileSpec::Exists(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isHidden (); */ NS_IMETHODIMP nsFileSpec::IsHidden(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean equals (in nsIFileSpec spec); */ NS_IMETHODIMP nsFileSpec::Equals(nsIFileSpec *spec, PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute unsigned long fileSize; */ NS_IMETHODIMP nsFileSpec::GetFileSize(PRUint32 *aFileSize) { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute long long diskSpaceAvailable; */ NS_IMETHODIMP nsFileSpec::GetDiskSpaceAvailable(PRInt64 *aDiskSpaceAvailable) { return NS_ERROR_NOT_IMPLEMENTED; } /* void appendRelativeUnixPath (in string relativePath); */ NS_IMETHODIMP nsFileSpec::AppendRelativeUnixPath(const char *relativePath) { return NS_ERROR_NOT_IMPLEMENTED; } /* void createDir (); */ NS_IMETHODIMP nsFileSpec::CreateDir() { return NS_ERROR_NOT_IMPLEMENTED; } /* void touch (); */ NS_IMETHODIMP nsFileSpec::Touch() { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isSymlink (); */ NS_IMETHODIMP nsFileSpec::IsSymlink(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* void resolveSymlink (); */ NS_IMETHODIMP nsFileSpec::ResolveSymlink() { return NS_ERROR_NOT_IMPLEMENTED; } /* void delete (in boolean recursive); */ NS_IMETHODIMP nsFileSpec::Delete(PRBool recursive) { return NS_ERROR_NOT_IMPLEMENTED; } /* void truncate (in long aNewLength); */ NS_IMETHODIMP nsFileSpec::Truncate(PRInt32 aNewLength) { return NS_ERROR_NOT_IMPLEMENTED; } /* void rename ([const] in string newLeafName); */ NS_IMETHODIMP nsFileSpec::Rename(const char *newLeafName) { return NS_ERROR_NOT_IMPLEMENTED; } /* void copyToDir ([const] in nsIFileSpec newParentDir); */ NS_IMETHODIMP nsFileSpec::CopyToDir(const nsIFileSpec *newParentDir) { return NS_ERROR_NOT_IMPLEMENTED; } /* void moveToDir ([const] in nsIFileSpec newParentDir); */ NS_IMETHODIMP nsFileSpec::MoveToDir(const nsIFileSpec *newParentDir) { return NS_ERROR_NOT_IMPLEMENTED; } /* void execute ([const] in string args); */ NS_IMETHODIMP nsFileSpec::Execute(const char *args) { return NS_ERROR_NOT_IMPLEMENTED; } /* void openStreamForReading (); */ NS_IMETHODIMP nsFileSpec::OpenStreamForReading() { return NS_ERROR_NOT_IMPLEMENTED; } /* void openStreamForWriting (); */ NS_IMETHODIMP nsFileSpec::OpenStreamForWriting() { return NS_ERROR_NOT_IMPLEMENTED; } /* void openStreamForReadingAndWriting (); */ NS_IMETHODIMP nsFileSpec::OpenStreamForReadingAndWriting() { return NS_ERROR_NOT_IMPLEMENTED; } /* void closeStream (); */ NS_IMETHODIMP nsFileSpec::CloseStream() { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean isStreamOpen (); */ NS_IMETHODIMP nsFileSpec::IsStreamOpen(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean eof (); */ NS_IMETHODIMP nsFileSpec::Eof(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* long read (inout string buffer, in long requestedCount); */ NS_IMETHODIMP nsFileSpec::Read(char **buffer, PRInt32 requestedCount, PRInt32 *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* void readLine (inout string line, in long bufferSize, out boolean wasTruncated); */ NS_IMETHODIMP nsFileSpec::ReadLine(char **line, PRInt32 bufferSize, PRBool *wasTruncated) { return NS_ERROR_NOT_IMPLEMENTED; } /* long write (in string data, in long requestedCount); */ NS_IMETHODIMP nsFileSpec::Write(const char *data, PRInt32 requestedCount, PRInt32 *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* void flush (); */ NS_IMETHODIMP nsFileSpec::Flush() { return NS_ERROR_NOT_IMPLEMENTED; } /* void seek (in long offset); */ NS_IMETHODIMP nsFileSpec::Seek(PRInt32 offset) { return NS_ERROR_NOT_IMPLEMENTED; } /* long tell (); */ NS_IMETHODIMP nsFileSpec::Tell(PRInt32 *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* void endLine (); */ NS_IMETHODIMP nsFileSpec::EndLine() { return NS_ERROR_NOT_IMPLEMENTED; } /* End of implementation class template. */ #endif // {a3020981-2018-11d3-915f-a957795b7ebc} #define NS_DIRECTORYITERATOR_CID \ { 0xa3020981, 0x2018, 0x11d3, { 0x91, 0x5f, 0xa9, 0x57, 0x79, 0x5b, 0x7e, 0xbc } } #define NS_DIRECTORYITERATOR_CONTRACTID "@mozilla.org/directoryiterator;1" #define NS_DIRECTORYITERATOR_CLASSNAME "nsIDirectoryIterator" /* starting interface: nsIDirectoryIterator */ #define NS_IDIRECTORYITERATOR_IID_STR "d8c0a083-0868-11d3-915f-d9d889d48e3c" #define NS_IDIRECTORYITERATOR_IID \ {0xd8c0a083, 0x0868, 0x11d3, \ { 0x91, 0x5f, 0xd9, 0xd8, 0x89, 0xd4, 0x8e, 0x3c }} class NS_NO_VTABLE nsIDirectoryIterator : public nsISupports { public: NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDIRECTORYITERATOR_IID) /* void init (in nsIFileSpec parent, in boolean resolveSymlink); */ NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) = 0; /* boolean exists (); */ NS_IMETHOD Exists(PRBool *_retval) = 0; /* void next (); */ NS_IMETHOD Next(void) = 0; /* readonly attribute nsIFileSpec currentSpec; */ NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_NSIDIRECTORYITERATOR \ NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink); \ NS_IMETHOD Exists(PRBool *_retval); \ NS_IMETHOD Next(void); \ NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_NSIDIRECTORYITERATOR(_to) \ NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) { return _to Init(parent, resolveSymlink); } \ NS_IMETHOD Exists(PRBool *_retval) { return _to Exists(_retval); } \ NS_IMETHOD Next(void) { return _to Next(); } \ NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) { return _to GetCurrentSpec(aCurrentSpec); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_NSIDIRECTORYITERATOR(_to) \ NS_IMETHOD Init(nsIFileSpec *parent, PRBool resolveSymlink) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(parent, resolveSymlink); } \ NS_IMETHOD Exists(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(_retval); } \ NS_IMETHOD Next(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Next(); } \ NS_IMETHOD GetCurrentSpec(nsIFileSpec * *aCurrentSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentSpec(aCurrentSpec); } #if 0 /* Use the code below as a template for the implementation class for this interface. */ /* Header file */ class nsDirectoryIterator : public nsIDirectoryIterator { public: NS_DECL_ISUPPORTS NS_DECL_NSIDIRECTORYITERATOR nsDirectoryIterator(); virtual ~nsDirectoryIterator(); /* additional members */ }; /* Implementation file */ NS_IMPL_ISUPPORTS1(nsDirectoryIterator, nsIDirectoryIterator) nsDirectoryIterator::nsDirectoryIterator() { NS_INIT_ISUPPORTS(); /* member initializers and constructor code */ } nsDirectoryIterator::~nsDirectoryIterator() { /* destructor code */ } /* void init (in nsIFileSpec parent, in boolean resolveSymlink); */ NS_IMETHODIMP nsDirectoryIterator::Init(nsIFileSpec *parent, PRBool resolveSymlink) { return NS_ERROR_NOT_IMPLEMENTED; } /* boolean exists (); */ NS_IMETHODIMP nsDirectoryIterator::Exists(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* void next (); */ NS_IMETHODIMP nsDirectoryIterator::Next() { return NS_ERROR_NOT_IMPLEMENTED; } /* readonly attribute nsIFileSpec currentSpec; */ NS_IMETHODIMP nsDirectoryIterator::GetCurrentSpec(nsIFileSpec * *aCurrentSpec) { return NS_ERROR_NOT_IMPLEMENTED; } /* End of implementation class template. */ #endif // Factory methods if you link with xpcom NS_COM nsresult NS_NewFileSpecWithSpec(const nsFileSpec& aSrcFileSpec, nsIFileSpec **result); NS_COM nsresult NS_NewFileSpec(nsIFileSpec** result); NS_COM nsresult NS_NewDirectoryIterator(nsIDirectoryIterator** result); // Convert from nsIFile to nsIFileSpec // // XXX This function is here only to assist with the migration from nsIFileSpec // to nsIFile. This function will dissappear in future mozilla releases. // // ...ripped from nsPrefService.cpp: // // "So discouraged is the use of nsIFileSpec, nobody wanted to have this routine be // public - It might lead to continued use of nsIFileSpec. Right now, [mozilla] has // such a need for it, here it is. Let's stop having to use it though." // NS_COM nsresult NS_NewFileSpecFromIFile(nsIFile *aFile, nsIFileSpec **result); #define NS_BOOL_ACCESSOR(_method) { PRBool yes; return NS_SUCCEEDED(f->_method(&yes)) && yes; } inline PRBool Exists(nsIFileSpec* f) NS_BOOL_ACCESSOR(Exists) inline PRBool Exists(nsIDirectoryIterator* f) NS_BOOL_ACCESSOR(Exists) inline PRBool IsDirectory(nsIFileSpec* f) NS_BOOL_ACCESSOR(IsDirectory) #endif /* __gen_nsIFileSpec_h__ */ .