dashel  1.3.3
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
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:
Dashel::PacketStream

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 >
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
sSource of failure
seSystem error code
reasonThe 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
paramthe 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
dataPointer to the memory where the read data should be stored.
sizeAmount 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
dataPointer to the data to write.
sizeAmount of data to write in bytes.
template<typename T >
void Dashel::Stream::write ( v)
inline

Write a variable of basic type to the stream.

This function does not perform any endian conversion.

Parameters
vvariable to write.

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