ucommon::fbuf Class Reference

A generic file streaming class built from the buffer protocol. More...

#include <buffer.h>

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

Public Member Functions

void close (void)
 Close the file, flush buffers.
void create (const char *path, fsys::access_t access=fsys::ACCESS_APPEND, unsigned permissions=0640, size_t size=512)
 Create and open the specified file.
 fbuf (const char *path, fsys::access_t access, size_t size)
 Construct a file buffer that opens an existing file.
 fbuf (const 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 (const 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

void _clear (void)
 Method to clear low level i/o error.
int _err (void) const
 Method to get low level i/o error.
size_t _pull (char *address, size_t size)
 Method to pull buffer from physical i/o (read).
size_t _push (const 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 buffer protocol.

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 54 of file buffer.h.


Constructor & Destructor Documentation

ucommon::fbuf::fbuf ( const 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.
ucommon::fbuf::fbuf ( const 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

int ucommon::fbuf::_err ( void   )  const [protected, virtual]

Method to get low level i/o error.

Returns:
error from low level i/o methods.

Implements ucommon::BufferProtocol.

size_t ucommon::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.

Implements ucommon::BufferProtocol.

size_t ucommon::fbuf::_push ( const 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.

Implements ucommon::BufferProtocol.

void ucommon::fbuf::create ( const 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 ucommon::fbuf::open ( const 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 ucommon::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 ucommon::fsys.

offset_t ucommon::fbuf::tell ( void   ) 

Give the current position in the currently open file.

If we are appending, this is always 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 ucommon::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 ucommon::fsys.


The documentation for this class was generated from the following file:
Generated on Thu Jul 14 16:35:02 2011 for ucommon by  doxygen 1.6.3