org.apache.tomcat.jni
Class File

java.lang.Object
  extended by org.apache.tomcat.jni.File

public class File
extends java.lang.Object

File

Version:
$Revision: 515 $, $Date: 2008-03-17 22:02:23 +0100 (Mon, 17 Mar 2008) $
Author:
Mladen Turk

Field Summary
static int APR_BLK
          a block device
static int APR_CHR
          a character device
static int APR_CUR
          Current
static int APR_DIR
          a directory
static int APR_END
          Go to end of file
static int APR_FILE_ATTR_EXECUTABLE
          File is executable
static int APR_FILE_ATTR_HIDDEN
          File is hidden
static int APR_FILE_ATTR_READONLY
          File is read-only
static int APR_FINFO_ATIME
          Creation or inode-changed time
static int APR_FINFO_CSIZE
          Size of the file
static int APR_FINFO_CTIME
          Modification Time
static int APR_FINFO_DEV
          Storage size consumed by the file
static int APR_FINFO_DIRENT
          an atomic unix apr_stat()
static int APR_FINFO_GPROT
          User protection bits
static int APR_FINFO_GROUP
          User
static int APR_FINFO_ICASE
          World protection bits
static int APR_FINFO_IDENT
          type, mtime, ctime, atime, size
static int APR_FINFO_INODE
          Device
static int APR_FINFO_LINK
          use OS's default permissions
static int APR_FINFO_MIN
          ->name in proper case
static int APR_FINFO_MTIME
          Stat the link not the file itself if it is a link
static int APR_FINFO_NAME
          if dev is case insensitive
static int APR_FINFO_NLINK
          Inode
static int APR_FINFO_NORM
          all protections
static int APR_FINFO_OWNER
          dev and inode
static int APR_FINFO_PROT
          user and group
static int APR_FINFO_SIZE
          Access Time
static int APR_FINFO_TYPE
          Number of links
static int APR_FINFO_UPROT
          Group
static int APR_FINFO_USER
          Type
static int APR_FINFO_WPROT
          Group protection bits
static int APR_FLOCK_EXCLUSIVE
          Exclusive lock.
static int APR_FLOCK_NONBLOCK
          do not block while acquiring the file lock
static int APR_FLOCK_SHARED
          Shared lock.
static int APR_FLOCK_TYPEMASK
          mask to extract lock type
static int APR_FOPEN_APPEND
          Append to the end of the file
static int APR_FOPEN_BINARY
          Open the file in binary mode
static int APR_FOPEN_BUFFERED
          Open the file for buffered I/O
static int APR_FOPEN_CREATE
          Create the file if not there
static int APR_FOPEN_DELONCLOSE
          Delete the file after close
static int APR_FOPEN_EXCL
          Open should fail if APR_CREATE and file exists.
static int APR_FOPEN_LARGEFILE
          Platform dependent flag to enable large file support;
Warning : The APR_LARGEFILE flag only has effect on some platforms where sizeof(apr_off_t) == 4.
static int APR_FOPEN_NOCLEANUP
          Do not register a cleanup when the file is opened
static int APR_FOPEN_READ
          Open the file for reading
static int APR_FOPEN_SENDFILE_ENABLED
          Advisory flag that this file should support apr_socket_sendfile operation
static int APR_FOPEN_SHARELOCK
          Platform dependent support for higher level locked read/write access to support writes across process/machines
static int APR_FOPEN_TRUNCATE
          Open the file and truncate to 0 length
static int APR_FOPEN_WRITE
          Open the file for writing
static int APR_FOPEN_XTHREAD
          Platform dependent tag to open the file for use across multiple threads
static int APR_FPROT_GEXECUTE
          Write by group
static int APR_FPROT_GREAD
          Set group id
static int APR_FPROT_GSETID
          Execute by user
static int APR_FPROT_GWRITE
          Read by group
static int APR_FPROT_OS_DEFAULT
          Execute by others
static int APR_FPROT_UEXECUTE
          Write by user
static int APR_FPROT_UREAD
          Set user id
static int APR_FPROT_USETID
           
static int APR_FPROT_UWRITE
          Read by user
static int APR_FPROT_WEXECUTE
          Write by others
static int APR_FPROT_WREAD
          Sticky bit
static int APR_FPROT_WSTICKY
          Execute by group
static int APR_FPROT_WWRITE
          Read by others
static int APR_LNK
          a symbolic link
static int APR_NOFILE
          no file type determined
static int APR_PIPE
          a FIFO / pipe
static int APR_REG
          a regular file
static int APR_SET
          Set the file position
static int APR_SOCK
          a [unix domain] socket
static int APR_UNKFILE
          a file of some other unknown type
 
Constructor Summary
File()
           
 
Method Summary
static int append(java.lang.String fromPath, java.lang.String toPath, int perms, long pool)
          Append the specified file to another file.
static int attrsSet(java.lang.String fname, int attributes, int mask, long pool)
          Set attributes of the specified file.
static int close(long file)
          Close the specified file.
static int copy(java.lang.String fromPath, java.lang.String toPath, int perms, long pool)
          Copy the specified file to another file.
static long dup(long newFile, long oldFile, long pool)
          Duplicate the specified file descriptor.
static int dup2(long newFile, long oldFile, long pool)
          Duplicate the specified file descriptor and close the original.
static int eof(long fptr)
          Are we at the end of the file
static int flagsGet(long file)
          Retrieve the flags that were passed into apr_file_open() when the file was opened.
static int flush(long thefile)
          Flush the file's buffer.
static int getc(long thefile)
          Read a character from the specified file.
static int gets(byte[] buf, int offset, long thefile)
          Read a string from the specified file.
static int infoGet(FileInfo finfo, int wanted, long thefile)
          Get the specified file's stats.
static int lock(long thefile, int type)
          Establish a lock on the specified, open file.
static long mktemp(java.lang.String templ, int flags, long pool)
          Open a temporary file
static int mtimeSet(java.lang.String fname, long mtime, long pool)
          Set the mtime of the specified file.
static java.lang.String nameGet(long thefile)
          return the file name of the current file.
static long open(java.lang.String fname, int flag, int perm, long pool)
          Open the specified file.
static int permsSet(java.lang.String fname, int perms)
          Set the specified file's permission bits.
static int pipeCreate(long[] io, long pool)
          Create an anonymous pipe.
static long pipeTimeoutGet(long thepipe)
          Get the timeout value for a pipe or manipulate the blocking state.
static int pipeTimeoutSet(long thepipe, long timeout)
          Set the timeout value for a pipe or manipulate the blocking state.
static int putc(byte ch, long thefile)
          Write a character into the specified file.
static int puts(byte[] str, long thefile)
          Write the string into the specified file.
static int read(long thefile, byte[] buf, int offset, int nbytes)
          Read data from the specified file.
static int readb(long thefile, java.nio.ByteBuffer buf, int offset, int nbytes)
          Read data from the specified file.
static int readFull(long thefile, byte[] buf, int offset, int nbytes)
          Read data from the specified file, ensuring that the buffer is filled before returning.
static int readFullb(long thefile, java.nio.ByteBuffer buf, int offset, int nbytes)
          Read data from the specified file, ensuring that the buffer is filled before returning.
static int remove(java.lang.String path, long pool)
          Delete the specified file.
static int rename(java.lang.String fromPath, java.lang.String toPath, long pool)
          Rename the specified file.
static long seek(long thefile, int where, long offset)
          Move the read/write file offset to a specified byte within a file.
static int stat(FileInfo finfo, java.lang.String fname, int wanted, long pool)
          Get the specified file's stats.
static int trunc(long fp, long offset)
          Truncate the file's length to the specified offset
static int ungetc(byte ch, long thefile)
          Put a character back onto a specified stream.
static int unlock(long thefile)
          Remove any outstanding locks on the file.
static int write(long thefile, byte[] buf, int offset, int nbytes)
          Write data to the specified file.
static int writeb(long thefile, java.nio.ByteBuffer buf, int offset, int nbytes)
          Write data to the specified file.
static int writeFull(long thefile, byte[] buf, int offset, int nbytes)
          Write data to the specified file, ensuring that all of the data is written before returning.
static int writeFullb(long thefile, java.nio.ByteBuffer buf, int offset, int nbytes)
          Write data to the specified file, ensuring that all of the data is written before returning.
static int writev(long thefile, byte[][] vec)
          Write data from aray of byte arrays to the specified file.
static int writevFull(long thefile, byte[][] vec)
          Write data from aray of byte arrays to the specified file, ensuring that all of the data is written before returning.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APR_FOPEN_READ

public static final int APR_FOPEN_READ
Open the file for reading

See Also:
Constant Field Values

APR_FOPEN_WRITE

public static final int APR_FOPEN_WRITE
Open the file for writing

See Also:
Constant Field Values

APR_FOPEN_CREATE

public static final int APR_FOPEN_CREATE
Create the file if not there

See Also:
Constant Field Values

APR_FOPEN_APPEND

public static final int APR_FOPEN_APPEND
Append to the end of the file

See Also:
Constant Field Values

APR_FOPEN_TRUNCATE

public static final int APR_FOPEN_TRUNCATE
Open the file and truncate to 0 length

See Also:
Constant Field Values

APR_FOPEN_BINARY

public static final int APR_FOPEN_BINARY
Open the file in binary mode

See Also:
Constant Field Values

APR_FOPEN_EXCL

public static final int APR_FOPEN_EXCL
Open should fail if APR_CREATE and file exists.

See Also:
Constant Field Values

APR_FOPEN_BUFFERED

public static final int APR_FOPEN_BUFFERED
Open the file for buffered I/O

See Also:
Constant Field Values

APR_FOPEN_DELONCLOSE

public static final int APR_FOPEN_DELONCLOSE
Delete the file after close

See Also:
Constant Field Values

APR_FOPEN_XTHREAD

public static final int APR_FOPEN_XTHREAD
Platform dependent tag to open the file for use across multiple threads

See Also:
Constant Field Values

APR_FOPEN_SHARELOCK

public static final int APR_FOPEN_SHARELOCK
Platform dependent support for higher level locked read/write access to support writes across process/machines

See Also:
Constant Field Values

APR_FOPEN_NOCLEANUP

public static final int APR_FOPEN_NOCLEANUP
Do not register a cleanup when the file is opened

See Also:
Constant Field Values

APR_FOPEN_SENDFILE_ENABLED

public static final int APR_FOPEN_SENDFILE_ENABLED
Advisory flag that this file should support apr_socket_sendfile operation

See Also:
Constant Field Values

APR_FOPEN_LARGEFILE

public static final int APR_FOPEN_LARGEFILE
Platform dependent flag to enable large file support;
Warning : The APR_LARGEFILE flag only has effect on some platforms where sizeof(apr_off_t) == 4. Where implemented, it allows opening and writing to a file which exceeds the size which can be represented by apr_off_t (2 gigabytes). When a file's size does exceed 2Gb, apr_file_info_get() will fail with an error on the descriptor, likewise apr_stat()/apr_lstat() will fail on the filename. apr_dir_read() will fail with APR_INCOMPLETE on a directory entry for a large file depending on the particular APR_FINFO_* flags. Generally, it is not recommended to use this flag.

See Also:
Constant Field Values

APR_SET

public static final int APR_SET
Set the file position

See Also:
Constant Field Values

APR_CUR

public static final int APR_CUR
Current

See Also:
Constant Field Values

APR_END

public static final int APR_END
Go to end of file

See Also:
Constant Field Values

APR_FILE_ATTR_READONLY

public static final int APR_FILE_ATTR_READONLY
File is read-only

See Also:
Constant Field Values

APR_FILE_ATTR_EXECUTABLE

public static final int APR_FILE_ATTR_EXECUTABLE
File is executable

See Also:
Constant Field Values

APR_FILE_ATTR_HIDDEN

public static final int APR_FILE_ATTR_HIDDEN
File is hidden

See Also:
Constant Field Values

APR_FLOCK_SHARED

public static final int APR_FLOCK_SHARED
Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

See Also:
Constant Field Values

APR_FLOCK_EXCLUSIVE

public static final int APR_FLOCK_EXCLUSIVE
Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

See Also:
Constant Field Values

APR_FLOCK_TYPEMASK

public static final int APR_FLOCK_TYPEMASK
mask to extract lock type

See Also:
Constant Field Values

APR_FLOCK_NONBLOCK

public static final int APR_FLOCK_NONBLOCK
do not block while acquiring the file lock

See Also:
Constant Field Values

APR_NOFILE

public static final int APR_NOFILE
no file type determined

See Also:
Constant Field Values

APR_REG

public static final int APR_REG
a regular file

See Also:
Constant Field Values

APR_DIR

public static final int APR_DIR
a directory

See Also:
Constant Field Values

APR_CHR

public static final int APR_CHR
a character device

See Also:
Constant Field Values

APR_BLK

public static final int APR_BLK
a block device

See Also:
Constant Field Values

APR_PIPE

public static final int APR_PIPE
a FIFO / pipe

See Also:
Constant Field Values

APR_LNK

public static final int APR_LNK
a symbolic link

See Also:
Constant Field Values

APR_SOCK

public static final int APR_SOCK
a [unix domain] socket

See Also:
Constant Field Values

APR_UNKFILE

public static final int APR_UNKFILE
a file of some other unknown type

See Also:
Constant Field Values

APR_FPROT_USETID

public static final int APR_FPROT_USETID
See Also:
Constant Field Values

APR_FPROT_UREAD

public static final int APR_FPROT_UREAD
Set user id

See Also:
Constant Field Values

APR_FPROT_UWRITE

public static final int APR_FPROT_UWRITE
Read by user

See Also:
Constant Field Values

APR_FPROT_UEXECUTE

public static final int APR_FPROT_UEXECUTE
Write by user

See Also:
Constant Field Values

APR_FPROT_GSETID

public static final int APR_FPROT_GSETID
Execute by user

See Also:
Constant Field Values

APR_FPROT_GREAD

public static final int APR_FPROT_GREAD
Set group id

See Also:
Constant Field Values

APR_FPROT_GWRITE

public static final int APR_FPROT_GWRITE
Read by group

See Also:
Constant Field Values

APR_FPROT_GEXECUTE

public static final int APR_FPROT_GEXECUTE
Write by group

See Also:
Constant Field Values

APR_FPROT_WSTICKY

public static final int APR_FPROT_WSTICKY
Execute by group

See Also:
Constant Field Values

APR_FPROT_WREAD

public static final int APR_FPROT_WREAD
Sticky bit

See Also:
Constant Field Values

APR_FPROT_WWRITE

public static final int APR_FPROT_WWRITE
Read by others

See Also:
Constant Field Values

APR_FPROT_WEXECUTE

public static final int APR_FPROT_WEXECUTE
Write by others

See Also:
Constant Field Values

APR_FPROT_OS_DEFAULT

public static final int APR_FPROT_OS_DEFAULT
Execute by others

See Also:
Constant Field Values

APR_FINFO_LINK

public static final int APR_FINFO_LINK
use OS's default permissions

See Also:
Constant Field Values

APR_FINFO_MTIME

public static final int APR_FINFO_MTIME
Stat the link not the file itself if it is a link

See Also:
Constant Field Values

APR_FINFO_CTIME

public static final int APR_FINFO_CTIME
Modification Time

See Also:
Constant Field Values

APR_FINFO_ATIME

public static final int APR_FINFO_ATIME
Creation or inode-changed time

See Also:
Constant Field Values

APR_FINFO_SIZE

public static final int APR_FINFO_SIZE
Access Time

See Also:
Constant Field Values

APR_FINFO_CSIZE

public static final int APR_FINFO_CSIZE
Size of the file

See Also:
Constant Field Values

APR_FINFO_DEV

public static final int APR_FINFO_DEV
Storage size consumed by the file

See Also:
Constant Field Values

APR_FINFO_INODE

public static final int APR_FINFO_INODE
Device

See Also:
Constant Field Values

APR_FINFO_NLINK

public static final int APR_FINFO_NLINK
Inode

See Also:
Constant Field Values

APR_FINFO_TYPE

public static final int APR_FINFO_TYPE
Number of links

See Also:
Constant Field Values

APR_FINFO_USER

public static final int APR_FINFO_USER
Type

See Also:
Constant Field Values

APR_FINFO_GROUP

public static final int APR_FINFO_GROUP
User

See Also:
Constant Field Values

APR_FINFO_UPROT

public static final int APR_FINFO_UPROT
Group

See Also:
Constant Field Values

APR_FINFO_GPROT

public static final int APR_FINFO_GPROT
User protection bits

See Also:
Constant Field Values

APR_FINFO_WPROT

public static final int APR_FINFO_WPROT
Group protection bits

See Also:
Constant Field Values

APR_FINFO_ICASE

public static final int APR_FINFO_ICASE
World protection bits

See Also:
Constant Field Values

APR_FINFO_NAME

public static final int APR_FINFO_NAME
if dev is case insensitive

See Also:
Constant Field Values

APR_FINFO_MIN

public static final int APR_FINFO_MIN
->name in proper case

See Also:
Constant Field Values

APR_FINFO_IDENT

public static final int APR_FINFO_IDENT
type, mtime, ctime, atime, size

See Also:
Constant Field Values

APR_FINFO_OWNER

public static final int APR_FINFO_OWNER
dev and inode

See Also:
Constant Field Values

APR_FINFO_PROT

public static final int APR_FINFO_PROT
user and group

See Also:
Constant Field Values

APR_FINFO_NORM

public static final int APR_FINFO_NORM
all protections

See Also:
Constant Field Values

APR_FINFO_DIRENT

public static final int APR_FINFO_DIRENT
an atomic unix apr_stat()

See Also:
Constant Field Values
Constructor Detail

File

public File()
Method Detail

open

public static long open(java.lang.String fname,
                        int flag,
                        int perm,
                        long pool)
                 throws Error
Open the specified file.

Parameters:
fname - The full path to the file (using / on all systems)
flag - Or'ed value of:
 APR_FOPEN_READ              open for reading
 APR_FOPEN_WRITE             open for writing
 APR_FOPEN_CREATE            create the file if not there
 APR_FOPEN_APPEND            file ptr is set to end prior to all writes
 APR_FOPEN_TRUNCATE          set length to zero if file exists
 APR_FOPEN_BINARY            not a text file (This flag is ignored on
                             UNIX because it has no meaning)
 APR_FOPEN_BUFFERED          buffer the data.  Default is non-buffered
 APR_FOPEN_EXCL              return error if APR_CREATE and file exists
 APR_FOPEN_DELONCLOSE        delete the file after closing.
 APR_FOPEN_XTHREAD           Platform dependent tag to open the file
                             for use across multiple threads
 APR_FOPEN_SHARELOCK         Platform dependent support for higher
                             level locked read/write access to support
                             writes across process/machines
 APR_FOPEN_NOCLEANUP         Do not register a cleanup with the pool
                             passed in on the pool argument (see below).
                             The apr_os_file_t handle in apr_file_t will not
                             be closed when the pool is destroyed.
 APR_FOPEN_SENDFILE_ENABLED  Open with appropriate platform semantics
                             for sendfile operations.  Advisory only,
                             apr_socket_sendfile does not check this flag.
 
perm - Access permissions for file.
pool - The pool to use. If perm is APR_OS_DEFAULT and the file is being created, appropriate default permissions will be used.
Returns:
The opened file descriptor.
Throws:
Error

close

public static int close(long file)
Close the specified file.

Parameters:
file - The file descriptor to close.

flush

public static int flush(long thefile)
Flush the file's buffer.

Parameters:
thefile - The file descriptor to flush

mktemp

public static long mktemp(java.lang.String templ,
                          int flags,
                          long pool)
                   throws Error
Open a temporary file

Parameters:
templ - The template to use when creating a temp file.
flags - The flags to open the file with. If this is zero, the file is opened with APR_CREATE | APR_READ | APR_WRITE | APR_EXCL | APR_DELONCLOSE
pool - The pool to allocate the file out of.
Returns:
The apr file to use as a temporary file. This function generates a unique temporary file name from template. The last six characters of template must be XXXXXX and these are replaced with a string that makes the filename unique. Since it will be modified, template must not be a string constant, but should be declared as a character array.
Throws:
Error

remove

public static int remove(java.lang.String path,
                         long pool)
Delete the specified file.

Parameters:
path - The full path to the file (using / on all systems)
pool - The pool to use. If the file is open, it won't be removed until all instances are closed.

rename

public static int rename(java.lang.String fromPath,
                         java.lang.String toPath,
                         long pool)
Rename the specified file.
Warning : If a file exists at the new location, then it will be overwritten. Moving files or directories across devices may not be possible.

Parameters:
fromPath - The full path to the original file (using / on all systems)
toPath - The full path to the new file (using / on all systems)
pool - The pool to use.

copy

public static int copy(java.lang.String fromPath,
                       java.lang.String toPath,
                       int perms,
                       long pool)
Copy the specified file to another file. The new file does not need to exist, it will be created if required.
Warning : If the new file already exists, its contents will be overwritten.

Parameters:
fromPath - The full path to the original file (using / on all systems)
toPath - The full path to the new file (using / on all systems)
perms - Access permissions for the new file if it is created. In place of the usual or'd combination of file permissions, the value APR_FILE_SOURCE_PERMS may be given, in which case the source file's permissions are copied.
pool - The pool to use.

append

public static int append(java.lang.String fromPath,
                         java.lang.String toPath,
                         int perms,
                         long pool)
Append the specified file to another file. The new file does not need to exist, it will be created if required.

Parameters:
fromPath - The full path to the source file (use / on all systems)
toPath - The full path to the destination file (use / on all systems)
perms - Access permissions for the destination file if it is created. In place of the usual or'd combination of file permissions, the value APR_FILE_SOURCE_PERMS may be given, in which case the source file's permissions are copied.
pool - The pool to use.

puts

public static int puts(byte[] str,
                       long thefile)
Write the string into the specified file.

Parameters:
str - The string to write. Must be NUL terminated!
thefile - The file descriptor to write to

seek

public static long seek(long thefile,
                        int where,
                        long offset)
                 throws Error
Move the read/write file offset to a specified byte within a file.

Parameters:
thefile - The file descriptor
where - How to move the pointer, one of:
 APR_SET  --  set the offset to offset
 APR_CUR  --  add the offset to the current position
 APR_END  --  add the offset to the current file size
 
offset - The offset to move the pointer to.
Returns:
Offset the pointer was actually moved to.
Throws:
Error

putc

public static int putc(byte ch,
                       long thefile)
Write a character into the specified file.

Parameters:
ch - The character to write.
thefile - The file descriptor to write to

ungetc

public static int ungetc(byte ch,
                         long thefile)
Put a character back onto a specified stream.

Parameters:
ch - The character to write.
thefile - The file descriptor to write to

write

public static int write(long thefile,
                        byte[] buf,
                        int offset,
                        int nbytes)
Write data to the specified file. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, it will write as many as it can. The third argument is modified to reflect the * number of bytes written. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to write to.
buf - The buffer which contains the data.
offset - Start offset in buf
nbytes - The number of bytes to write; (-1) for full array.
Returns:
The number of bytes written.

writeb

public static int writeb(long thefile,
                         java.nio.ByteBuffer buf,
                         int offset,
                         int nbytes)
Write data to the specified file. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, it will write as many as it can. The third argument is modified to reflect the * number of bytes written. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to write to.
buf - The direct Byte buffer which contains the data.
offset - Start offset in buf
nbytes - The number of bytes to write
Returns:
The number of bytes written.

writeFull

public static int writeFull(long thefile,
                            byte[] buf,
                            int offset,
                            int nbytes)
Write data to the specified file, ensuring that all of the data is written before returning. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, the process/thread will block until they can be written. Exceptional error such as "out of space" or "pipe closed" will terminate with an error. It is possible for both bytes to be written and an error to be returned. And if *bytes_written is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to write to.
buf - The buffer which contains the data.
offset - Start offset in buf
nbytes - The number of bytes to write; (-1) for full array.
Returns:
The number of bytes written.

writeFullb

public static int writeFullb(long thefile,
                             java.nio.ByteBuffer buf,
                             int offset,
                             int nbytes)
Write data to the specified file, ensuring that all of the data is written before returning. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, the process/thread will block until they can be written. Exceptional error such as "out of space" or "pipe closed" will terminate with an error. It is possible for both bytes to be written and an error to be returned. And if *bytes_written is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to write to.
buf - The direct ByteBuffer which contains the data.
offset - Start offset in buf
nbytes - The number of bytes to write.
Returns:
The number of bytes written.

writev

public static int writev(long thefile,
                         byte[][] vec)
Write data from aray of byte arrays to the specified file. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned. apr_file_writev is available even if the underlying operating system doesn't provide writev().

Parameters:
thefile - The file descriptor to write to.
vec - The array from which to get the data to write to the file.
Returns:
The number of bytes written.

writevFull

public static int writevFull(long thefile,
                             byte[][] vec)
Write data from aray of byte arrays to the specified file, ensuring that all of the data is written before returning. writevFull is available even if the underlying operating system doesn't provide writev().

Parameters:
thefile - The file descriptor to write to.
vec - The array from which to get the data to write to the file.
Returns:
The number of bytes written.

read

public static int read(long thefile,
                       byte[] buf,
                       int offset,
                       int nbytes)
Read data from the specified file. apr_file_read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, all of the available data is read. The third argument is modified to reflect the number of bytes read. If a char was put back into the stream via ungetc, it will be the first character returned. It is not possible for both bytes to be read and an APR_EOF or other error to be returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to read from.
buf - The buffer to store the data to.
offset - Start offset in buf
nbytes - The number of bytes to read (-1) for full array.
Returns:
the number of bytes read.

readb

public static int readb(long thefile,
                        java.nio.ByteBuffer buf,
                        int offset,
                        int nbytes)
Read data from the specified file. apr_file_read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, all of the available data is read. The third argument is modified to reflect the number of bytes read. If a char was put back into the stream via ungetc, it will be the first character returned. It is not possible for both bytes to be read and an APR_EOF or other error to be returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to read from.
buf - The direct Byte buffer to store the data to.
offset - Start offset in buf
nbytes - The number of bytes to read.
Returns:
the number of bytes read.

readFull

public static int readFull(long thefile,
                           byte[] buf,
                           int offset,
                           int nbytes)
Read data from the specified file, ensuring that the buffer is filled before returning. Read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, then the process/thread will block until it is available or EOF is reached. If a char was put back into the stream via ungetc, it will be the first character returned. It is possible for both bytes to be read and an error to be returned. And if *bytes_read is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to read from.
buf - The buffer to store the data to.
offset - Start offset in buf
nbytes - The number of bytes to read (-1) for full array.
Returns:
the number of bytes read.

readFullb

public static int readFullb(long thefile,
                            java.nio.ByteBuffer buf,
                            int offset,
                            int nbytes)
Read data from the specified file, ensuring that the buffer is filled before returning. Read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, then the process/thread will block until it is available or EOF is reached. If a char was put back into the stream via ungetc, it will be the first character returned. It is possible for both bytes to be read and an error to be returned. And if *bytes_read is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.

Parameters:
thefile - The file descriptor to read from.
buf - The direct ByteBuffer to store the data to.
offset - Start offset in buf
nbytes - The number of bytes to read.
Returns:
the number of bytes read.

gets

public static int gets(byte[] buf,
                       int offset,
                       long thefile)
Read a string from the specified file. The buffer will be NUL-terminated if any characters are stored.

Parameters:
buf - The buffer to store the string in.
offset - Start offset in buf
thefile - The file descriptor to read from

getc

public static int getc(long thefile)
                throws Error
Read a character from the specified file.

Parameters:
thefile - The file descriptor to read from
Returns:
The readed character
Throws:
Error

eof

public static int eof(long fptr)
Are we at the end of the file

Parameters:
fptr - The apr file we are testing.
Returns:
Returns APR_EOF if we are at the end of file, APR_SUCCESS otherwise.

nameGet

public static java.lang.String nameGet(long thefile)
return the file name of the current file.

Parameters:
thefile - The currently open file.

permsSet

public static int permsSet(java.lang.String fname,
                           int perms)
Set the specified file's permission bits.
Warning : Some platforms may not be able to apply all of the available permission bits; APR_INCOMPLETE will be returned if some permissions are specified which could not be set.
Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.

Parameters:
fname - The file (name) to apply the permissions to.
perms - The permission bits to apply to the file.

attrsSet

public static int attrsSet(java.lang.String fname,
                           int attributes,
                           int mask,
                           long pool)
Set attributes of the specified file. This function should be used in preference to explict manipulation of the file permissions, because the operations to provide these attributes are platform specific and may involve more than simply setting permission bits.
Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.

Parameters:
fname - The full path to the file (using / on all systems)
attributes - Or'd combination of
            APR_FILE_ATTR_READONLY   - make the file readonly
            APR_FILE_ATTR_EXECUTABLE - make the file executable
            APR_FILE_ATTR_HIDDEN     - make the file hidden
 
mask - Mask of valid bits in attributes.
pool - the pool to use.

mtimeSet

public static int mtimeSet(java.lang.String fname,
                           long mtime,
                           long pool)
Set the mtime of the specified file.
Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.

Parameters:
fname - The full path to the file (using / on all systems)
mtime - The mtime to apply to the file in microseconds
pool - The pool to use.

lock

public static int lock(long thefile,
                       int type)
Establish a lock on the specified, open file. The lock may be advisory or mandatory, at the discretion of the platform. The lock applies to the file as a whole, rather than a specific range. Locks are established on a per-thread/process basis; a second lock by the same thread will not block.

Parameters:
thefile - The file to lock.
type - The type of lock to establish on the file.

unlock

public static int unlock(long thefile)
Remove any outstanding locks on the file.

Parameters:
thefile - The file to unlock.

flagsGet

public static int flagsGet(long file)
Retrieve the flags that were passed into apr_file_open() when the file was opened.

Parameters:
file - The file to retrive flags.
Returns:
the flags

trunc

public static int trunc(long fp,
                        long offset)
Truncate the file's length to the specified offset

Parameters:
fp - The file to truncate
offset - The offset to truncate to.

pipeCreate

public static int pipeCreate(long[] io,
                             long pool)
Create an anonymous pipe.

Parameters:
io - io[0] The file descriptors to use as input to the pipe. io[1] The file descriptor to use as output from the pipe.
pool - The pool to operate on.

pipeTimeoutGet

public static long pipeTimeoutGet(long thepipe)
                           throws Error
Get the timeout value for a pipe or manipulate the blocking state.

Parameters:
thepipe - The pipe we are getting a timeout for.
Returns:
The current timeout value in microseconds.
Throws:
Error

pipeTimeoutSet

public static int pipeTimeoutSet(long thepipe,
                                 long timeout)
Set the timeout value for a pipe or manipulate the blocking state.

Parameters:
thepipe - The pipe we are setting a timeout on.
timeout - The timeout value in microseconds. Values < 0 mean wait forever, 0 means do not wait at all.

dup

public static long dup(long newFile,
                       long oldFile,
                       long pool)
                throws Error
Duplicate the specified file descriptor.

Parameters:
newFile - The file to duplicate. newFile must point to a valid apr_file_t, or point to NULL.
oldFile - The file to duplicate.
pool - The pool to use for the new file.
Returns:
Duplicated file structure.
Throws:
Error

dup2

public static int dup2(long newFile,
                       long oldFile,
                       long pool)
Duplicate the specified file descriptor and close the original.

Parameters:
newFile - The old file that is to be closed and reused. newFile MUST point at a valid apr_file_t. It cannot be NULL.
oldFile - The file to duplicate.
pool - The pool to use for the new file.
Returns:
Status code.

stat

public static int stat(FileInfo finfo,
                       java.lang.String fname,
                       int wanted,
                       long pool)
Get the specified file's stats. The file is specified by filename, instead of using a pre-opened file.

Parameters:
finfo - Where to store the information about the file, which is never touched if the call fails.
fname - The name of the file to stat.
wanted - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
pool - the pool to use to allocate the new file.

infoGet

public static int infoGet(FileInfo finfo,
                          int wanted,
                          long thefile)
Get the specified file's stats.

Parameters:
finfo - Where to store the information about the file.
wanted - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
thefile - The file to get information about.


Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.