PageRenderTime 508ms CodeModel.GetById 490ms RepoModel.GetById 1ms app.codeStats 0ms

/gecko_sdk/idl/nsILocalFile.idl

http://firefox-mac-pdf.googlecode.com/
IDL | 193 lines | 28 code | 17 blank | 148 comment | 0 complexity | ddd7db6562b035bd8642df4a8d04a66f MD5 | raw file
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3. * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. * http://www.mozilla.org/MPL/
  9. *
  10. * Software distributed under the License is distributed on an "AS IS" basis,
  11. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12. * for the specific language governing rights and limitations under the
  13. * License.
  14. *
  15. * The Original Code is Mozilla Communicator client code, released
  16. * March 31, 1998.
  17. *
  18. * The Initial Developer of the Original Code is
  19. * Netscape Communications Corporation.
  20. * Portions created by the Initial Developer are Copyright (C) 1998-1999
  21. * the Initial Developer. All Rights Reserved.
  22. *
  23. * Contributor(s):
  24. * Doug Turner <dougt@netscape.com>
  25. * Darin Fisher <darin@netscape.com>
  26. *
  27. * Alternatively, the contents of this file may be used under the terms of
  28. * either of the GNU General Public License Version 2 or later (the "GPL"),
  29. * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  30. * in which case the provisions of the GPL or the LGPL are applicable instead
  31. * of those above. If you wish to allow use of your version of this file only
  32. * under the terms of either the GPL or the LGPL, and not to allow others to
  33. * use your version of this file under the terms of the MPL, indicate your
  34. * decision by deleting the provisions above and replace them with the notice
  35. * and other provisions required by the GPL or the LGPL. If you do not delete
  36. * the provisions above, a recipient may use your version of this file under
  37. * the terms of any one of the MPL, the GPL or the LGPL.
  38. *
  39. * ***** END LICENSE BLOCK ***** */
  40. #include "nsIFile.idl"
  41. %{C++
  42. #include "prio.h"
  43. #include "prlink.h"
  44. #include <stdio.h>
  45. %}
  46. [ptr] native PRFileDescStar(PRFileDesc);
  47. [ptr] native PRLibraryStar(PRLibrary);
  48. [ptr] native FILE(FILE);
  49. /**
  50. * This interface adds methods to nsIFile that are particular to a file
  51. * that is accessible via the local file system.
  52. *
  53. * It follows the same string conventions as nsIFile.
  54. *
  55. * @status FROZEN
  56. */
  57. [scriptable, uuid(aa610f20-a889-11d3-8c81-000064657374)]
  58. interface nsILocalFile : nsIFile
  59. {
  60. /**
  61. * initWith[Native]Path
  62. *
  63. * This function will initialize the nsILocalFile object. Any
  64. * internal state information will be reset.
  65. *
  66. * NOTE: This function has a known bug on the macintosh and
  67. * other OSes which do not represent file locations as paths.
  68. * If you do use this function, be very aware of this problem!
  69. *
  70. * @param filePath
  71. * A string which specifies a full file path to a
  72. * location. Relative paths will be treated as an
  73. * error (NS_ERROR_FILE_UNRECOGNIZED_PATH). For
  74. * initWithNativePath, the filePath must be in the native
  75. * filesystem charset.
  76. */
  77. void initWithPath(in AString filePath);
  78. [noscript] void initWithNativePath(in ACString filePath);
  79. /**
  80. * initWithFile
  81. *
  82. * Initialize this object with another file
  83. *
  84. * @param aFile
  85. * the file this becomes equivalent to
  86. */
  87. void initWithFile(in nsILocalFile aFile);
  88. /**
  89. * followLinks
  90. *
  91. * This attribute will determine if the nsLocalFile will auto
  92. * resolve symbolic links. By default, this value will be false
  93. * on all non unix systems. On unix, this attribute is effectively
  94. * a noop.
  95. */
  96. attribute PRBool followLinks;
  97. /**
  98. * Return the result of PR_Open on the file. The caller is
  99. * responsible for calling PR_Close on the result.
  100. */
  101. [noscript] PRFileDescStar openNSPRFileDesc(in long flags, in long mode);
  102. /**
  103. * Return the result of fopen on the file. The caller is
  104. * responsible for calling fclose on the result.
  105. */
  106. [noscript] FILE openANSIFileDesc(in string mode);
  107. /**
  108. * Return the result of PR_LoadLibrary on the file. The caller is
  109. * responsible for calling PR_UnloadLibrary on the result.
  110. */
  111. [noscript] PRLibraryStar load();
  112. readonly attribute PRInt64 diskSpaceAvailable;
  113. /**
  114. * appendRelative[Native]Path
  115. *
  116. * Append a relative path to the current path of the nsILocalFile object.
  117. *
  118. * @param relativeFilePath
  119. * relativeFilePath is a native relative path. For security reasons,
  120. * this cannot contain .. or cannot start with a directory separator.
  121. * For the |appendRelativeNativePath| method, the relativeFilePath
  122. * must be in the native filesystem charset.
  123. */
  124. void appendRelativePath(in AString relativeFilePath);
  125. [noscript] void appendRelativeNativePath(in ACString relativeFilePath);
  126. /**
  127. * Accessor to a null terminated string which will specify
  128. * the file in a persistent manner for disk storage.
  129. *
  130. * The character set of this attribute is undefined. DO NOT TRY TO
  131. * INTERPRET IT AS HUMAN READABLE TEXT!
  132. */
  133. attribute ACString persistentDescriptor;
  134. /**
  135. * reveal
  136. *
  137. * Ask the operating system to open the folder which contains
  138. * this file or folder. This routine only works on platforms which
  139. * support the ability to open a folder...
  140. */
  141. void reveal();
  142. /**
  143. * launch
  144. *
  145. * Ask the operating system to attempt to open the file.
  146. * this really just simulates "double clicking" the file on your platform.
  147. * This routine only works on platforms which support this functionality.
  148. */
  149. void launch();
  150. /**
  151. * getRelativeDescriptor
  152. *
  153. * Returns a relative file path in an opaque, XP format. It is therefore
  154. * not a native path.
  155. *
  156. * The character set of the string returned from this function is
  157. * undefined. DO NOT TRY TO INTERPRET IT AS HUMAN READABLE TEXT!
  158. *
  159. * @param fromFile
  160. * the file from which the descriptor is relative.
  161. * There is no defined result if this param is null.
  162. */
  163. ACString getRelativeDescriptor(in nsILocalFile fromFile);
  164. /**
  165. * setRelativeDescriptor
  166. *
  167. * Initializes the file to the location relative to fromFile using
  168. * a string returned by getRelativeDescriptor.
  169. *
  170. * @param fromFile
  171. * the file to which the descriptor is relative
  172. * @param relative
  173. * the relative descriptor obtained from getRelativeDescriptor
  174. */
  175. void setRelativeDescriptor(in nsILocalFile fromFile, in ACString relativeDesc);
  176. };