Dashel::Stream Class Reference
A data stream, with low-level (not-endian safe) read/write functions.
More...
#include <dashel.h>
List of all members.
Public Member Functions |
void | fail (DashelException::Source s, int se, const char *reason) |
| Set stream to failed state.
|
bool | failed () const |
| Query failed state of stream.
|
virtual void | flush ()=0 |
| Flushes stream.
|
const std::string & | getFailReason () const |
| Returns the reason the stream has failed.
|
const std::string & | getProtocolName () const |
| Returns the protocol name of the stream.
|
std::string | getTargetName () const |
| Returns the name of the target.
|
const std::string & | getTargetParameter (const char *param) const |
| Returns the value of a parameter extracted from the target.
|
template<typename T > |
T | read () |
| Read a variable of basic type from the stream.
|
virtual void | read (void *data, size_t size)=0 |
| Reads data from the stream.
|
template<typename T > |
void | write (T v) |
| Write a variable of basic type to the stream.
|
virtual void | write (const void *data, const size_t size)=0 |
| Write data to the stream.
|
Protected Member Functions |
| Stream (const std::string &protocolName) |
| Constructor.
|
virtual | ~Stream () |
| Virtual destructor, to ensure calls to destructors of sub-classes.
|
Protected Attributes |
std::string | protocolName |
| The protocol name.
|
ParameterSet | target |
| The target description.
|
Private Attributes |
bool | failedFlag |
| A flag indicating that the stream has failed.
|
std::string | failReason |
| The human readable reason describing why the stream has failed.
|
Friends |
class | Hub |
Detailed Description
A data stream, with low-level (not-endian safe) read/write functions.
Definition at line 262 of file dashel.h.
Constructor & Destructor Documentation
Dashel::Stream::Stream |
( |
const std::string & |
protocolName |
) |
[inline, protected] |
virtual Dashel::Stream::~Stream |
( |
|
) |
[inline, protected, virtual] |
Virtual destructor, to ensure calls to destructors of sub-classes.
Definition at line 284 of file dashel.h.
Member Function Documentation
Set stream to failed state.
- Parameters:
-
| s | Source of failure |
| se | System error code |
| reason | The logical reason as a human readable string. |
Definition at line 108 of file dashel-posix.cpp.
bool Dashel::Stream::failed |
( |
|
) |
const [inline] |
Query failed state of stream.
- Returns:
- true if stream has failed.
Definition at line 297 of file dashel.h.
virtual void Dashel::Stream::flush |
( |
|
) |
[pure virtual] |
Flushes stream.
Calling this function requests the stream to be flushed, this may ensure that data is written to physical media or actually sent over a wire. The exact performed function depends on the stream type and operating system.
Implemented in Dashel::SocketStream, Dashel::SocketServerStream, Dashel::FileDescriptorStream, Dashel::SerialStream, Dashel::MemoryPacketStream, Dashel::SocketServerStream, Dashel::StdinStream, Dashel::StdoutStream, Dashel::FileStream, and Dashel::SocketStream.
const std::string& Dashel::Stream::getFailReason |
( |
|
) |
const [inline] |
Returns the reason the stream has failed.
- Returns:
- the reason the stream has failed, or an empty string if fail() is false.
Definition at line 302 of file dashel.h.
const std::string& Dashel::Stream::getProtocolName |
( |
|
) |
const [inline] |
Returns the protocol name of the stream.
Definition at line 305 of file dashel.h.
std::string Dashel::Stream::getTargetName |
( |
|
) |
const [inline] |
Returns the name of the target.
The name of the target contains all parameters and the protocol name.
- Returns:
- Name of the target
Definition at line 312 of file dashel.h.
const std::string& Dashel::Stream::getTargetParameter |
( |
const char * |
param |
) |
const [inline] |
Returns the value of a parameter extracted from the target.
- Parameters:
-
| param | the name of the parameter |
- Returns:
- A string containing the parameter.
Definition at line 318 of file dashel.h.
template<typename T >
T Dashel::Stream::read |
( |
|
) |
[inline] |
Read a variable of basic type from the stream.
This function does not perform any endian conversion.
- Returns:
- variable to read.
Definition at line 362 of file dashel.h.
virtual void Dashel::Stream::read |
( |
void * |
data, |
|
|
size_t |
size | |
|
) |
| | [pure virtual] |
Reads data from the stream.
Reads all requested data from the stream, blocking until all the data has been read, or some error occurs. Errors are signaled by throwing a DashelException exception, which may be caused either by device errors or reaching the end of file.
- Parameters:
-
| data | Pointer to the memory where the read data should be stored. |
| size | Amount of data to read in bytes. |
Implemented in Dashel::SocketStream, Dashel::SocketServerStream, Dashel::FileDescriptorStream, Dashel::MemoryPacketStream, Dashel::SocketServerStream, Dashel::StdinStream, Dashel::StdoutStream, Dashel::FileStream, and Dashel::SocketStream.
template<typename T >
void Dashel::Stream::write |
( |
T |
v |
) |
[inline] |
Write a variable of basic type to the stream.
This function does not perform any endian conversion.
- Parameters:
-
Definition at line 335 of file dashel.h.
virtual void Dashel::Stream::write |
( |
const void * |
data, |
|
|
const size_t |
size | |
|
) |
| | [pure virtual] |
Write data to the stream.
Writes all requested data to the stream, blocking until all the data has been written, or some error occurs. Errors are signaled by throwing a DashelException exception. This function does not flush devices, therefore the data may not really have been written on return, but only been buffered. In order to flush the stream, call flush().
- Parameters:
-
| data | Pointer to the data to write. |
| size | Amount of data to write in bytes. |
Implemented in Dashel::SocketStream, Dashel::SocketServerStream, Dashel::FileDescriptorStream, Dashel::MemoryPacketStream, Dashel::SocketServerStream, Dashel::StdinStream, Dashel::StdoutStream, Dashel::FileStream, and Dashel::SocketStream.
Friends And Related Function Documentation
friend class Hub [friend] |
Member Data Documentation
A flag indicating that the stream has failed.
Definition at line 266 of file dashel.h.
The human readable reason describing why the stream has failed.
Definition at line 268 of file dashel.h.
The protocol name.
Definition at line 274 of file dashel.h.
The target description.
Definition at line 272 of file dashel.h.
The documentation for this class was generated from the following files: