![]() |
PIDUINO
|
Abstract base class for input/output devices. More...
#include <iodevice.h>
Public Types | |
enum | OpenModeFlag { NotOpen = 0x0000 , Append = std::ios_base::app , AtEnd = std::ios_base::ate , Binary = std::ios_base::binary , ReadOnly = std::ios_base::in , WriteOnly = std::ios_base::out , ReadWrite = ReadOnly | WriteOnly , Truncate = std::ios_base::trunc , IosModes = Append | AtEnd | Binary | ReadOnly | WriteOnly | Truncate , Unbuffered = (Truncate << 1) } |
Flags that specify how the device is to be opened. More... | |
typedef Flags< OpenModeFlag > | OpenMode |
Type representing a combination of OpenModeFlag values. | |
Public Member Functions | |
IoDevice () | |
Constructs a new IoDevice object. | |
virtual | ~IoDevice () |
Destroys the IoDevice object. | |
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 bool | open (OpenMode mode) |
Opens the device with the specified open mode. | |
virtual void | close () |
Closes the device. | |
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. | |
Protected Member Functions | |
IoDevice (Private &dd) | |
Constructs an IoDevice with a given private implementation. | |
Protected Attributes | |
std::unique_ptr< Private > | d_ptr |
Pointer to the private implementation. | |
Abstract base class for input/output devices.
The IoDevice class provides a generic interface for devices that support input and/or output operations. It defines common functionality for file-like objects, such as files, sockets, or pipes, and provides methods to query and control the device's state and mode of operation.
Derived classes should implement the pure virtual methods to provide device-specific behavior.
Definition at line 37 of file iodevice.h.
Type representing a combination of OpenModeFlag values.
Definition at line 70 of file iodevice.h.
Flags that specify how the device is to be opened.
These flags control the behavior of the device when it is opened. They can be combined using bitwise OR.
Definition at line 48 of file iodevice.h.
Piduino::IoDevice::IoDevice | ( | ) |
Constructs a new IoDevice object.
|
virtual |
Destroys the IoDevice object.
|
protected |
Constructs an IoDevice with a given private implementation.
dd | Reference to the private implementation. |
|
virtual |
Closes the device.
Reimplemented in Piduino::Converter, Piduino::FileDevice, Piduino::I2cDev, and Piduino::SpiDev.
|
virtual |
Returns the code of the last error.
|
virtual |
Returns a human-readable description of the last error.
bool Piduino::IoDevice::isBuffered | ( | ) | const |
Returns true if the device is buffered.
bool Piduino::IoDevice::isDebug | ( | ) | const |
Returns true if debug mode is enabled.
|
virtual |
Returns true if the device is currently open.
bool Piduino::IoDevice::isReadable | ( | ) | const |
Returns true if the device is readable.
|
virtual |
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.
bool Piduino::IoDevice::isTextModeEnabled | ( | ) | const |
Returns true if text mode is enabled.
bool Piduino::IoDevice::isWritable | ( | ) | const |
Returns true if the device is writable.
|
virtual |
Opens the device with the specified open mode.
mode | The open mode flags. |
Reimplemented in Piduino::Converter, Piduino::I2cDev, Piduino::SpiDev, and Piduino::FileDevice.
OpenMode Piduino::IoDevice::openMode | ( | ) | const |
Returns the current open mode of the device.
void Piduino::IoDevice::setDebug | ( | bool | enabled | ) |
Enables or disables debug mode for the device.
enabled | True to enable debug mode, false to disable. |
void Piduino::IoDevice::setTextModeEnabled | ( | bool | enabled | ) |
Enables or disables text mode for the device.
enabled | True to enable text mode, false to disable. |
|
protected |
Pointer to the private implementation.
Definition at line 190 of file iodevice.h.