ucc::fbuf Class Reference

A generic file streaming class built from the I/O buffer. More...

#include <buffer.h>

Inheritance diagram for ucc::fbuf:
Inheritance graph
[legend]
Collaboration diagram for ucc::fbuf:
Collaboration graph
[legend]

Public Member Functions

void close (void)
 Close the file, flush buffers.
void create (char *path, fsys::access_t access=fsys::ACCESS_APPEND, unsigned permissions=0640, size_t size=512)
 Create and open the specified file.
 fbuf (char *path, fsys::access_t access, size_t size)
 Construct a file buffer that opens an existing file.
 fbuf (char *path, fsys::access_t access, unsigned permissions, size_t size)
 Construct a file buffer that creates and opens a specific file.
 fbuf ()
 Construct an unopened file buffer.
void open (char *path, fsys::access_t access=fsys::ACCESS_RDWR, size_t size=512)
 Construct a file buffer that opens an existing file.
bool seek (offset_t offset)
 Seek specific offset in open file and reset I/O buffers.
offset_t tell (void)
 Give the current position in the currently open file.
bool trunc (offset_t offset)
 Truncate the currently open file to a specific position.
 ~fbuf ()
 Destroy object and release all resources.

Protected Member Functions

size_t _pull (char *address, size_t size)
 Method to pull buffer from physical i/o (read).
size_t _push (char *address, size_t size)
 Method to push buffer into physical i/o (write).
fd_t getfile (void)

Detailed Description

A generic file streaming class built from the I/O buffer.

This can be used in place of fopen based file operations and does not require libstdc++.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 374 of file buffer.h.


Constructor & Destructor Documentation

ucc::fbuf::fbuf ( char *  path,
fsys::access_t  access,
unsigned  permissions,
size_t  size 
)

Construct a file buffer that creates and opens a specific file.

Parameters:
path of file to create.
access mode of file (rw, rdonly, etc).
permissions of the newly created file.
size of the stream buffer.
ucc::fbuf::fbuf ( char *  path,
fsys::access_t  access,
size_t  size 
)

Construct a file buffer that opens an existing file.

Parameters:
path of existing file to open.
access mode of file (rw, rdonly, etc).
size of the stream buffer.

Member Function Documentation

size_t ucc::fbuf::_pull ( char *  address,
size_t  size 
) [protected, virtual]

Method to pull buffer from physical i/o (read).

The address is passed to this virtual since it is hidden as private.

Parameters:
address of buffer to pull data into.
size of buffer area being pulled..
Returns:
number of read written, 0 on error or end of data.

Reimplemented from ucc::IOBuffer.

size_t ucc::fbuf::_push ( char *  address,
size_t  size 
) [protected, virtual]

Method to push buffer into physical i/o (write).

The address is passed to this virtual since it is hidden as private.

Parameters:
address of data to push.
size of data to push.
Returns:
number of bytes written, 0 on error.

Reimplemented from ucc::IOBuffer.

void ucc::fbuf::create ( char *  path,
fsys::access_t  access = fsys::ACCESS_APPEND,
unsigned  permissions = 0640,
size_t  size = 512 
)

Create and open the specified file.

If a file is currently open, it is closed first.

Parameters:
path of file to create.
access mode of file (rw, rdonly, etc).
permissions of the newly created file.
size of the stream buffer.
void ucc::fbuf::open ( char *  path,
fsys::access_t  access = fsys::ACCESS_RDWR,
size_t  size = 512 
)

Construct a file buffer that opens an existing file.

Parameters:
path of existing file to open.
access mode of file (rw, rdonly, etc).
size of the stream buffer.
bool ucc::fbuf::seek ( offset_t  offset  ) 

Seek specific offset in open file and reset I/O buffers.

If the file is opened for both read and write, both the read and write position will be reset.

Parameters:
offset to seek.
Returns:
true if successful.

Reimplemented from ucc::fsys.

offset_t ucc::fbuf::tell ( void   ) 

Give the current position in the currently open file.

If we are appending, this is alwayus seek::end. If we have a file opened for both read and write, this gives the read offset.

Returns:
file offset of current i/o operations.
bool ucc::fbuf::trunc ( offset_t  offset  ) 

Truncate the currently open file to a specific position.

All I/O buffers are reset and the file pointer is set to the end.

Parameters:
offset to truncate.
Returns:
true if successful.

Reimplemented from ucc::fsys.


The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.2-20100208