ucommon
|
A generic file streaming class built from the buffer protocol. More...
#include <buffer.h>
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 () | |
Construct an unopened file buffer. | |
fbuf (char *path, fsys::access_t access, unsigned permissions, size_t size) | |
Construct a file buffer that creates and opens a specific file. | |
fbuf (char *path, fsys::access_t access, size_t size) | |
Construct a file buffer that opens an existing file. | |
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 | |
void | _clear (void) |
Method to clear low level i/o error. | |
int | _err (void) |
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) |
fd_t | getfile (void) |
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++.
ucommon::fbuf::fbuf | ( | char * | path, |
fsys::access_t | access, | ||
unsigned | permissions, | ||
size_t | size | ||
) |
Construct a file buffer that creates and opens a specific file.
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 | ( | char * | path, |
fsys::access_t | access, | ||
size_t | size | ||
) |
Construct a file buffer that opens an existing file.
path | of existing file to open. |
access | mode of file (rw, rdonly, etc). |
size | of the stream buffer. |
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.
address | of buffer to pull data into. |
size | of buffer area being pulled.. |
Implements ucommon::BufferProtocol.
void ucommon::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.
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 | ( | char * | path, |
fsys::access_t | access = fsys::ACCESS_RDWR , |
||
size_t | size = 512 |
||
) |
Construct a file buffer that opens an existing file.
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.
offset | to seek. |
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.
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.
offset | to truncate. |
Reimplemented from ucommon::fsys.