Dashel::Stream Class Referenceabstract

A data stream, with low-level (not-endian safe) read/write functions. More...

`#include <dashel.h>`

Inheritance diagram for Dashel::Stream:

## Public Member Functions

void | fail (DashelException::Source s, int se, const char *reason)
| Set stream to failed state. More...
bool | failed () const
| Query failed state of stream. More...
const std::string & | getFailReason () const
| Returns the reason the stream has failed. More...
const std::string & | getProtocolName () const
| Returns the protocol name of the stream.
std::string | getTargetName () const
| Returns the name of the target. More...
const std::string & | getTargetParameter (const char *param) const
| Returns the value of a parameter extracted from the target. More...
const ParameterSet | getTarget () const
| Returns the target description. More...
virtual void | write (const void *data, const size_t size)=0
| Write data to the stream. More...
template<typename T >
void | write (T v)
| Write a variable of basic type to the stream. More...
virtual void | flush ()=0
| Flushes stream. More...
virtual void | read (void *data, size_t size)=0
| Reads data from the stream. More...
template<typename T >
T | read ()
| Read a variable of basic type from the stream. More...

## Protected Member Functions

| Stream (const std::string &protocolName)
| Constructor.
virtual | ~Stream ()
| Virtual destructor, to ensure calls to destructors of sub-classes.

## Protected Attributes

ParameterSet | target
| The target description.
std::string | protocolName
| The protocol name.

## Friends

class | Hub

## Detailed Description

A data stream, with low-level (not-endian safe) read/write functions.

## Member Function Documentation

void Dashel::Stream::fail | ( | DashelException::Source | s,
|  | int | se,
|  | const char * | reason
| ) |  |

Set stream to failed state.

Parameters

  s | Source of failure
  se | System error code
  reason | The logical reason as a human readable string.

bool Dashel::Stream::failed | ( |  | ) | const

inline

Query failed state of stream.

Returns
  true if stream has failed.

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.

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.

const ParameterSet Dashel::Stream::getTarget | ( |  | ) | const

inline

Returns the target description.

Returns
  The set of parameters describing this target

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

References Dashel::ParameterSet::getString().

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.

References Dashel::ParameterSet::get().

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.

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.

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.

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

  v | variable to write.

The documentation for this class was generated from the following file:

- dashel/dashel.h