next up previous contents index
Next: 3.10.17 nxo_fino Up: 3.10 Classes Previous: 3.10.15 nxo_dict   Contents   Index

Subsections


3.10.16 nxo_file

The nxo_file class is a subclass of the nxo class.

3.10.16.1 API

cw_sint32_t cw_nxo_file_read_t(void *a_arg, cw_nxo_t *a_file, cw_uint32_t a_len, cw_uint8_t *r_str):

Input(s):
a_arg:
Opaque data pointer.
a_file:
Pointer to a file nxo.
a_len:
Length of r_str.
r_str:
Pointer to space to put read data.
Output(s):
retval:
-1:
Read error.
>= 0:
Number of bytes stored in r_str.
r_str:
If retval is non-negative, retval bytes of read data, otherwise undefined.
Exception(s):
Application specific.
Description:
Read up to a_len bytes of data from a_file and store the result in r_str.
cw_bool_t cw_nxo_file_write_t(void *a_arg, cw_nxo_t *a_file, const cw_uint8_t *a_str, cw_uint32_t a_len):

Input(s):
a_arg:
Opaque data pointer.
a_file:
Pointer to a file nxo.
a_str:
Pointer to data to write.
a_len:
Length of a_str.
Output(s):
retval:
FALSE:
Success.
TRUE:
Write error.
Exception(s):
Application specific.
Description:
Write a_len bytes of data from a_str to a_file.
cw_nxoe_t * cw_nxo_file_ref_iter_t(void *a_arg, cw_bool_t a_reset):

Input(s):
a_arg:
Opaque data pointer.
a_reset:
FALSE:
At least one iteration has already occurred.
TRUE:
First iteration.
Output(s):
retval:
non-NULL:
Pointer to an nxoe.
NULL:
No more references.
Exception(s):
None.
Description:
Reference iterator function typedef.
void cw_nxo_file_delete_t(void *a_arg, cw_nx_t *a_nx):

Input(s):
a_arg:
Opaque data pointer.
a_nx:
Pointer to an nx.
Output(s):
None.
Exception(s):
None.
Description:
Destructor function typedef.
void nxo_file_new(cw_nxo_t *a_nxo, cw_nx_t *a_nx, cw_bool_t a_locking):

Input(s):
a_nxo:
Pointer to a file nxo.
a_nx:
Pointer to an nx.
a_locking:
Implicit locking mode.
Output(s):
None.
Exception(s):
CW_ONYXX_OOM.
Description:
Constructor.
void nxo_file_fd_wrap(cw_nxo_t *a_nxo, cw_uint32_t a_fd):

Input(s):
a_nxo:
Pointer to a file nxo.
a_fd:
File descriptor number.
Output(s):
None.
Exception(s):
None.
Description:
Wrap file descriptor a_fd so that operations on a_nxo will be backed by the file descriptor.
void nxo_file_synthetic(cw_nxo_t *a_nxo, cw_nxo_file_read_t *a_read, cw_nxo_file_write_t *a_write, cw_nxo_file_ref_iter_t *a_ref_iter, cw_nxo_file_delet_t *a_delete, void *a_arg):

Input(s):
a_nxo:
Pointer to a file nxo.
a_read:
Pointer to a read function.
a_write:
Pointer to a write function.
a_ref_iter:
Pointer to a reference iterator function.
a_delete:
Pointer to a destructor function.
a_arg:
Opaque pointer to be passed to the read and write functions.
Output(s):
None.
Exception(s):
None.
Description:
Set up a_nxo to call the specified read and write functions to satisfy file operations.
cw_nxn_t nxo_file_open(cw_nxo_t *a_nxo, const cw_uint8_t *a_filename, cw_uint32_t a_nlen, const cw_uint8_t *a_flags, cw_uint32_t a_flen):

Input(s):
a_nxo:
Pointer to a file nxo.
a_filename:
Pointer to a string (not required to be '\0' terminated) that represents a filename.
a_nlen:
Length in bytes of a_filename.
a_flags:
Pointer to a string (not required to be '\0' terminated) that represents a file mode:
``r'':
Read only.
``r+'':
Read/write, starting at offset 0.
``w'':
Write only. Create file if necessary. Truncate file if non-zero length.
``w+'':
Read/write, starting at offset 0. Create file if necessary.
``a'':
Write only, starting at end of file.
``a+'':
Read/write, starting at end of file.
a_flen:
Length in bytes of a_flags.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
NXN_invalidfileaccess.
NXN_limitcheck.
Exception(s):
None.
Description:
Open a file.
cw_nxn_t nxo_file_close(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
Exception(s):
None.
Description:
Close a file.
cw_sint32_t nxo_file_fd_get(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
-1:
Invalid or synthetic file.
>= 0:
File descriptor number.
Exception(s):
None.
Description:
Return the file descriptor associated with a_nxo.
cw_sint32_t nxo_file_read(cw_nxo_t *a_nxo, cw_uint32_t a_len, cw_uint8_t *r_str):

Input(s):
a_nxo:
Pointer to a file nxo.
a_len:
Length in bytes of r_str.
r_str:
Pointer to a string to store read data into.
Output(s):
retval:
-1:
NXN_ioerror.
>= 0:
Number of bytes of data read into r_str.
r_str:
If retval is non-negative, retval bytes of read data.
Exception(s):
None.
Description:
Read data.
cw_nxn_t nxo_file_readline(cw_nxo_t *a_nxo, cw_nx_t *a_nx, cw_bool_t a_locking, cw_nxo_t *r_string, cw_bool_t *r_eof):

Input(s):
a_nxo:
Pointer to a file nxo.
a_nx:
Pointer to an nx.
a_locking:
Implicit locking mode.
r_string:
Pointer to an nxo.
r_eof:
Pointer to a cw_bool_t .
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
r_string:
If retval is NXN_ZERO, a string object, otherwise unmodified.
*r_eof:
FALSE:
End of file not reached.
TRUE:
End of file reached.
Exception(s):
CW_ONYXX_OOM.
Description:
Read a line, terminated by ``\r'', ``\r\n'', or EOF.
cw_nxn_t nxo_file_write(cw_nxo_t *a_nxo, const cw_uint8_t *a_str, cw_uint32_t a_len):

Input(s):
a_nxo:
Pointer to a file nxo.
a_str:
Pointer to data to write.
a_len:
Length of a_str.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
Exception(s):
None.
Description:
Write the a_len bytes of data pointed to a_str.
cw_nxn_t nxo_file_truncate(cw_nxo_t *a_nxo, off_t a_length):

Input(s):
a_nxo:
Pointer to a file nxo.
a_length:
Length to set file to.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
Exception(s):
None.
Description:
Truncate or extend the file associated with a_nxo so that it is a_length bytes long.
cw_nxoi_t nxo_file_position_get(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
-1:
NXN_ioerror.
>= 0:
Current file position.
Exception(s):
None.
Description:
Get the current file position.
cw_nxn_t nxo_file_position_set(cw_nxo_t *a_nxo, cw_nxoi_t a_position):

Input(s):
a_nxo:
Pointer to a file nxo.
a_position:
File position.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
Exception(s):
None.
Description:
Move the current file position to a_position.
cw_uint32_t nxo_file_buffer_size_get(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
Size in bytes of the internal data buffer.
Exception(s):
None.
Description:
Return the size of the internal data buffer.
void nxo_file_buffer_size_set(cw_nxo_t *a_nxo, cw_uint32_t a_size):

Input(s):
a_nxo:
Pointer to a file nxo.
a_size:
Size in bytes of internal buffer to use.
Output(s):
None.
Exception(s):
CW_ONYXX_OOM.
Description:
Use an internal buffer of a_size bytes.
cw_nxoi_t nxo_file_buffer_count(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
Current number of buffered bytes available for reading.
Exception(s):
None.
Description:
Return the current number of buffered bytes available for reading.
cw_nxn_t nxo_file_buffer_flush(cw_nxo_t *a_nxo):

Input(s):
a_nxo:
Pointer to a file nxo.
Output(s):
retval:
NXN_ZERO.
NXN_ioerror.
Exception(s):
None.
Description:
Flush any buffered write data to disk, and discard any buffered read data.


next up previous contents index
Next: 3.10.17 nxo_fino Up: 3.10 Classes Previous: 3.10.15 nxo_dict   Contents   Index
Jason Evans 2002-03-30