01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: package org.apache.tomcat.jni;
19:
20: /** Directory
21: *
22: * @author Mladen Turk
23: * @version $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
24: */
25:
26: public class Directory {
27:
28: /**
29: * Create a new directory on the file system.
30: * @param path the path for the directory to be created. (use / on all systems)
31: * @param perm Permissions for the new direcoty.
32: * @param pool the pool to use.
33: */
34: public static native int make(String path, int perm, long pool);
35:
36: /** Creates a new directory on the file system, but behaves like
37: * 'mkdir -p'. Creates intermediate directories as required. No error
38: * will be reported if PATH already exists.
39: * @param path the path for the directory to be created. (use / on all systems)
40: * @param perm Permissions for the new direcoty.
41: * @param pool the pool to use.
42: */
43: public static native int makeRecursive(String path, int perm,
44: long pool);
45:
46: /**
47: * Remove directory from the file system.
48: * @param path the path for the directory to be removed. (use / on all systems)
49: * @param pool the pool to use.
50: */
51: public static native int remove(String path, long pool);
52:
53: /**
54: * Find an existing directory suitable as a temporary storage location.
55: * @param pool The pool to use for any necessary allocations.
56: * @return The temp directory.
57: *
58: * This function uses an algorithm to search for a directory that an
59: * an application can use for temporary storage. Once such a
60: * directory is found, that location is cached by the library. Thus,
61: * callers only pay the cost of this algorithm once if that one time
62: * is successful.
63: *
64: */
65: public static native String tempGet(long pool);
66:
67: /**
68: * Open the specified directory.
69: * @param dirname The full path to the directory (use / on all systems)
70: * @param pool The pool to use.
71: * @return The opened directory descriptor.
72: */
73: public static native long open(String dirname, long pool)
74: throws Error;
75:
76: /**
77: * close the specified directory.
78: * @param thedir the directory descriptor to close.
79: */
80: public static native int close(long thedir);
81:
82: /**
83: * Rewind the directory to the first entry.
84: * @param thedir the directory descriptor to rewind.
85: */
86: public static native int rewind(long thedir);
87:
88: /**
89: * Read the next entry from the specified directory.
90: * @param finfo the file info structure and filled in by apr_dir_read
91: * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
92: * @param thedir the directory descriptor returned from apr_dir_open
93: * No ordering is guaranteed for the entries read.
94: */
95: public static native int read(FileInfo finfo, int wanted,
96: long thedir);
97:
98: }
|