|
| | FileDevice () |
| |
| | FileDevice (int fd) |
| |
| | FileDevice (const std::string &path) |
| |
| virtual | ~FileDevice () |
| |
| virtual bool | open (OpenMode mode=ReadWrite) |
| |
| virtual void | close () |
| |
| virtual void | setPath (const std::string &path) |
| |
| virtual std::string | path () const |
| |
| bool | setFd (int fd) |
| |
| int | fd () const |
| |
| bool | isOurFile () const |
| |
| virtual ssize_t | write (const char *data, size_t maxSize) |
| |
| ssize_t | write (const char *str) |
| |
| ssize_t | write (const std::string &str) |
| |
| virtual ssize_t | read (char *data, size_t maxSize) |
| |
| OpenMode | openMode () const |
| | Returns the current open mode of the device.
|
| |
| virtual bool | isOpen () const |
| | Returns true if the device is currently open.
|
| |
| bool | isReadable () const |
| | Returns true if the device is readable.
|
| |
| bool | isWritable () const |
| | Returns true if the device is writable.
|
| |
| bool | isBuffered () const |
| | Returns true if the device is buffered.
|
| |
| virtual bool | isSequential () const |
| | Returns true if this device is sequential; otherwise returns false.
|
| |
| void | setTextModeEnabled (bool enabled) |
| | Enables or disables text mode for the device.
|
| |
| bool | isTextModeEnabled () const |
| | Returns true if text mode is enabled.
|
| |
| void | setDebug (bool enabled) |
| | Enables or disables debug mode for the device.
|
| |
| bool | isDebug () const |
| | Returns true if debug mode is enabled.
|
| |
| virtual std::string | errorString () const |
| | Returns a human-readable description of the last error.
|
| |
| virtual int | error () const |
| | Returns the code of the last error.
|
| |
Provides an interface for reading from and writing to files.
FileDevice is an I/O device for reading and writing binary and text files (with std::iostream features
- See also
- FileDevice::ios()).
The file name is usually passed in the constructor, but it can be set at any time using setFileName(). FileDevice expects the file separator to be '/' regardless of operating system.
The file is opened with open(), closed with close().
Data is usually read and written using std::iostream with ios(), but you can also call the functions read() and write().
Definition at line 45 of file filedevice.h.
| virtual bool Piduino::IoDevice::isSequential |
( |
| ) |
const |
|
virtualinherited |
Returns true if this device is sequential; otherwise returns false.
Sequential devices, as opposed to random-access devices, have no concept of a start, an end, a size, or a current position, and do not support seeking. You can only read from the device when it reports that data is available. The most common example of a sequential device is a network socket. On Unix, special files such as /dev/zero and fifo pipes are sequential. Regular files, on the other hand, do support random access. They have both a size and a current position, and they also support seeking backwards and forwards in the data stream. Regular files are non-sequential.
The IoDevice implementation returns false.
- Returns
- True if the device is sequential, false otherwise.
| virtual ssize_t Piduino::FileDevice::read |
( |
char * |
data, |
|
|
size_t |
maxSize |
|
) |
| |
|
virtual |
Reads at most maxSize bytes from the device into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a device opened in WriteOnly mode, this function returns -1.
0 is returned when no more data is available for reading. However, reading past the end of the stream is considered an error, so this function returns -1 in those cases (that is, reading on a closed socket or after a process has died).
- See also
- write()
Reimplemented in Piduino::FileStream, and Piduino::Terminal.
| virtual void Piduino::FileDevice::setPath |
( |
const std::string & |
path | ) |
|
|
virtual |
Sets the path of the file. The path can have no prefix, a relative path, or an absolute path.
Do not call this function if the file has already been opened, if so, the file is closed before the path is modified.
If the file name has no path or a relative path, the path used will be the application's current directory path at the time of the open() call.
Note that the directory separator is "/".
- See also
- path()