From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl | 204 ++++++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl (limited to 'src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl') diff --git a/src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl b/src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl new file mode 100644 index 00000000..78abd9e7 --- /dev/null +++ b/src/libs/xpcom18a4/xpcom/obsolete/nsIFileSpec.idl @@ -0,0 +1,204 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either of the GNU General Public License Version 2 or later (the "GPL"), + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + THIS INTERFACE IS DEPRECATED AND UNSUPPORTED! USE |nsIFile| and |nsILocalFile|. + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +// This is the only correct cross-platform way to specify a file. +// Strings are not such a way. If you grew up on windows or unix, you +// may think they are. Welcome to reality. + +#include "nsISupports.idl" + +%{C++ +#include "nsFileSpec.h" // for factory method +%} + +interface nsIFileURL; +interface nsIFilePath; +interface nsIOutputStream; +interface nsIInputStream; + +// Define Contractid and CID +%{C++ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + THIS INTERFACE IS DEPRECATED 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" + +%} + + native nsFileSpec(nsFileSpec); +[ref] native nsFileSpecRef(nsFileSpec); +[ptr] native nsFileSpecPtr(nsFileSpec); + +[scriptable, uuid(d8c0a080-0868-11d3-915f-d9d889d48e3c)] +interface nsIFileSpec : nsISupports +{ + void fromFileSpec([const] in nsIFileSpec original); + + attribute string URLString; + attribute string unixStyleFilePath; + attribute string persistentDescriptorString; + attribute string nativePath; + + readonly attribute string NSPRPath; + + void error(); + + boolean isValid(); + boolean failed(); + + attribute string leafName; + + readonly attribute nsIFileSpec parent; + readonly attribute nsIInputStream inputStream; + readonly attribute nsIOutputStream outputStream; + boolean isChildOf(in nsIFileSpec possibleParent); + [noscript] readonly attribute nsFileSpec fileSpec; + [noscript] void setFromFileSpec([const] in nsFileSpecRef spec); + + attribute string fileContents; + + void makeUnique(); + void makeUniqueWithSuggestedName(in string suggestedName); + + readonly attribute unsigned long modDate; + boolean modDateChanged(in unsigned long oldStamp); + + boolean isDirectory(); + boolean isFile(); + boolean exists(); + boolean isHidden(); + + boolean equals(in nsIFileSpec spec); + + readonly attribute unsigned long fileSize; + readonly attribute long long diskSpaceAvailable; + + void appendRelativeUnixPath(in string relativePath); + + void createDir(); + void touch(); + + boolean isSymlink(); + void resolveSymlink(); + + void delete(in boolean recursive); + void truncate(in long aNewLength); + void rename([const] in string newLeafName); + void copyToDir([const] in nsIFileSpec newParentDir); + void moveToDir([const] in nsIFileSpec newParentDir); + void execute([const] in string args); + + void openStreamForReading(); + void openStreamForWriting(); + void openStreamForReadingAndWriting(); + void closeStream(); + boolean isStreamOpen(); + + boolean eof(); + long read(inout string buffer, in long requestedCount); + void readLine(inout string line, in long bufferSize, out boolean wasTruncated); + + /** 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); + void flush(); + + void seek(in long offset); + long tell(); + void endLine(); + attribute AString unicodePath; + +}; + +// Define Contractid and CID +%{C++ +// {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" +%} + +[scriptable, uuid(d8c0a083-0868-11d3-915f-d9d889d48e3c)] +interface nsIDirectoryIterator : nsISupports +{ + void init(in nsIFileSpec parent, in boolean resolveSymlink); + boolean exists(); + void next(); + readonly attribute nsIFileSpec currentSpec; +}; + +%{C++ +// Factory methods if you link with xpcom +NS_COM_OBSOLETE nsresult NS_NewFileSpecWithSpec(const nsFileSpec& aSrcFileSpec, nsIFileSpec **result); +NS_COM_OBSOLETE nsresult NS_NewFileSpec(nsIFileSpec** result); +NS_COM_OBSOLETE 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_OBSOLETE 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) + +%} -- cgit v1.2.3