DUDS
Distributed Update of Data from Something
duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT > Class Template Referenceabstract

A base class for receiving measurement signals from multiple Instruments. More...

#include <MeasurementSignalSink.hpp>

Inheritance diagram for duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >:
Collaboration diagram for duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >:

Classes

struct  MeasurementConnections
 Stores connections to a specific Insturment. More...
 

Public Types

typedef GenericInstrument< SVT, SQT, TVT, TQT > Instrument
 
typedef duds::data::GenericMeasurement< SVT, SQT, TVT, TQT > Measurement
 
typedef boost::signals2::signal< void(const std::shared_ptr< Instrument > &, const std::shared_ptr< const Measurement > &) > MesurementSignal
 The type used for event listeners that are told of measurments. More...
 

Public Member Functions

virtual ~GenericMeasurementSignalSink ()
 Disconnects from all signals. More...
 
bool disconnectAll (const InstrumentSptr &inst)
 Disconnects the group from both the new and old measurement signals from the given instrument. More...
 
void disconnectAll ()
 Disconnects the group from all signals. More...
 
bool disconnectNewMeasurement (const InstrumentSptr &inst)
 Disconnects from the new measurement signal of the given instrument. More...
 
bool disconnectOldMeasurement (const InstrumentSptr &inst)
 Disconnects from the old measurement signal of the given instrument. More...
 
boost::signals2::connection newMeasurementSource (const InstrumentSptr &inst, boost::signals2::connect_position at=boost::signals2::at_back)
 Connect this object to the new measurement signal of the given instrument, or return the existing connection. More...
 
boost::signals2::connection newMeasurementSource (const typename MesurementSignal::group_type &group, const Instrument &inst, boost::signals2::connect_position at=boost::signals2::at_back)
 
boost::signals2::connection oldMeasurementSource (const InstrumentSptr &inst, boost::signals2::connect_position at=boost::signals2::at_back)
 
boost::signals2::connection oldMeasurementSource (const typename MesurementSignal::group_type &group, const Instrument &inst, boost::signals2::connect_position at=boost::signals2::at_back)
 
void purgeDisconnections ()
 Removes any disconnected connection objects held by this object. More...
 

Protected Types

typedef std::map< Instrument *, MeasurementConnectionsConnectionMap
 Reduce typing and limit line length; no other reason. More...
 
typedef ConnectionMap ConnectionMapIterator
 

Protected Member Functions

virtual void handleNewMeasure (const std::shared_ptr< Instrument > &i, const std::shared_ptr< const Measurement > &m)=0
 Handles an incoming new measurement signal. More...
 
virtual void handleOldMeasure (const std::shared_ptr< Instrument > &i, const std::shared_ptr< const Measurement > &m)=0
 Handles an incoming old measurement signal. More...
 

Protected Attributes

ConnectionMap conns
 Stores connections keyed by Instrument pointer. More...
 

Detailed Description

template<class SVT, class SQT, class TVT, class TQT>
class duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >

A base class for receiving measurement signals from multiple Instruments.

Template Parameters
SVTSample value type
SQTSample quality type
TVTTime value type
TQTTime quality type
Author
Jeff Jackowski

Definition at line 26 of file MeasurementSignalSink.hpp.

Member Typedef Documentation

◆ ConnectionMap

template<class SVT , class SQT , class TVT , class TQT >
typedef std::map<Instrument*, MeasurementConnections> duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::ConnectionMap
protected

Reduce typing and limit line length; no other reason.

Definition at line 48 of file MeasurementSignalSink.hpp.

◆ ConnectionMapIterator

template<class SVT , class SQT , class TVT , class TQT >
typedef ConnectionMap duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::ConnectionMapIterator
protected

Definition at line 49 of file MeasurementSignalSink.hpp.

◆ Instrument

template<class SVT , class SQT , class TVT , class TQT >
typedef GenericInstrument<SVT, SQT, TVT, TQT> duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::Instrument

Definition at line 28 of file MeasurementSignalSink.hpp.

◆ Measurement

template<class SVT , class SQT , class TVT , class TQT >
typedef duds::data::GenericMeasurement<SVT, SQT, TVT, TQT> duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::Measurement

Definition at line 29 of file MeasurementSignalSink.hpp.

◆ MesurementSignal

template<class SVT , class SQT , class TVT , class TQT >
typedef boost::signals2::signal< void (const std::shared_ptr<Instrument> &, const std::shared_ptr<const Measurement> &) > duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::MesurementSignal

The type used for event listeners that are told of measurments.

Definition at line 36 of file MeasurementSignalSink.hpp.

Constructor & Destructor Documentation

◆ ~GenericMeasurementSignalSink()

template<class SVT , class SQT , class TVT , class TQT >
virtual duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::~GenericMeasurementSignalSink ( )
inlinevirtual

Disconnects from all signals.

Definition at line 79 of file MeasurementSignalSink.hpp.

Member Function Documentation

◆ disconnectAll() [1/2]

template<class SVT , class SQT , class TVT , class TQT >
bool duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::disconnectAll ( const InstrumentSptr &  inst)
inline

Disconnects the group from both the new and old measurement signals from the given instrument.

Parameters
instThe instrument to disconnect from.
Returns
True if a disconnection occured; false if there were no connections.

Definition at line 232 of file MeasurementSignalSink.hpp.

◆ disconnectAll() [2/2]

template<class SVT , class SQT , class TVT , class TQT >
void duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::disconnectAll ( )
inline

Disconnects the group from all signals.

Definition at line 250 of file MeasurementSignalSink.hpp.

Referenced by duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::~GenericMeasurementSignalSink().

◆ disconnectNewMeasurement()

template<class SVT , class SQT , class TVT , class TQT >
bool duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::disconnectNewMeasurement ( const InstrumentSptr &  inst)
inline

Disconnects from the new measurement signal of the given instrument.

Parameters
instThe instrument to disconnect from.
Returns
True if a disconnection occured; false if there was no connection.

Definition at line 156 of file MeasurementSignalSink.hpp.

◆ disconnectOldMeasurement()

template<class SVT , class SQT , class TVT , class TQT >
bool duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::disconnectOldMeasurement ( const InstrumentSptr &  inst)
inline

Disconnects from the old measurement signal of the given instrument.

Parameters
instThe instrument to disconnect from.
Returns
True if a disconnection occured; false if there was no connection.

Definition at line 210 of file MeasurementSignalSink.hpp.

◆ handleNewMeasure()

template<class SVT , class SQT , class TVT , class TQT >
virtual void duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::handleNewMeasure ( const std::shared_ptr< Instrument > &  i,
const std::shared_ptr< const Measurement > &  m 
)
protectedpure virtual

◆ handleOldMeasure()

template<class SVT , class SQT , class TVT , class TQT >
virtual void duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::handleOldMeasure ( const std::shared_ptr< Instrument > &  i,
const std::shared_ptr< const Measurement > &  m 
)
protectedpure virtual

◆ newMeasurementSource() [1/2]

template<class SVT , class SQT , class TVT , class TQT >
boost::signals2::connection duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::newMeasurementSource ( const InstrumentSptr &  inst,
boost::signals2::connect_position  at = boost::signals2::at_back 
)
inline

Connect this object to the new measurement signal of the given instrument, or return the existing connection.

Only one connection per signal per insturment is allowed. Attempts to make additional identical connections will result in the existing connection being returned.

Parameters
instThe Instrument that will be sending the new measurement signals.
atThe insertion position.

Definition at line 106 of file MeasurementSignalSink.hpp.

◆ newMeasurementSource() [2/2]

template<class SVT , class SQT , class TVT , class TQT >
boost::signals2::connection duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::newMeasurementSource ( const typename MesurementSignal::group_type &  group,
const Instrument inst,
boost::signals2::connect_position  at = boost::signals2::at_back 
)
inline

Definition at line 128 of file MeasurementSignalSink.hpp.

◆ oldMeasurementSource() [1/2]

template<class SVT , class SQT , class TVT , class TQT >
boost::signals2::connection duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::oldMeasurementSource ( const InstrumentSptr &  inst,
boost::signals2::connect_position  at = boost::signals2::at_back 
)
inline

Definition at line 171 of file MeasurementSignalSink.hpp.

◆ oldMeasurementSource() [2/2]

template<class SVT , class SQT , class TVT , class TQT >
boost::signals2::connection duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::oldMeasurementSource ( const typename MesurementSignal::group_type &  group,
const Instrument inst,
boost::signals2::connect_position  at = boost::signals2::at_back 
)
inline

Definition at line 187 of file MeasurementSignalSink.hpp.

◆ purgeDisconnections()

template<class SVT , class SQT , class TVT , class TQT >
void duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::purgeDisconnections ( )
inline

Removes any disconnected connection objects held by this object.

The connections will no longer be connected if the source of the signal is destroyed.

Definition at line 87 of file MeasurementSignalSink.hpp.

Member Data Documentation

◆ conns

template<class SVT , class SQT , class TVT , class TQT >
ConnectionMap duds::hardware::GenericMeasurementSignalSink< SVT, SQT, TVT, TQT >::conns
protected

Stores connections keyed by Instrument pointer.

The Instrument pointer must never be dereferenced and cannot be assumed to point to an existing object. It is also possible that the same address may be used for a different Instrument over time.

Definition at line 56 of file MeasurementSignalSink.hpp.


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