nidas  v1.2-1520
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
nidas::core::SampleAverager Class Reference

#include <SampleAverager.h>

Inheritance diagram for nidas::core::SampleAverager:
Inheritance graph
[legend]

Public Member Functions

 SampleAverager ()
 
 SampleAverager (const std::vector< const Variable * > &vars)
 
 SampleAverager (const std::vector< Variable * > &vars)
 
virtual ~SampleAverager ()
 
void setAveragePeriodSecs (float val)
 Set average period. More...
 
float getAveragePeriodSecs () const
 Get average period. More...
 
void addVariable (const Variable *var)
 
void addVariables (const std::vector< const Variable * > &)
 
SampleSourcegetRawSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
SampleSourcegetProcessedSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
std::list< const SampleTag * > getSampleTags () const
 Get the output SampleTags. More...
 
SampleTagIterator getSampleTagIterator () const
 Implementation of SampleSource::getSampleTagIterator(). More...
 
void addSampleClient (SampleClient *client) throw ()
 Implementation of SampleSource::addSampleClient(). More...
 
void removeSampleClient (SampleClient *client) throw ()
 Remove a SampleClient from this SampleSource. More...
 
void addSampleClientForTag (SampleClient *client, const SampleTag *) throw ()
 Add a Client for a given SampleTag. More...
 
void removeSampleClientForTag (SampleClient *client, const SampleTag *) throw ()
 Remove a SampleClient for a given SampleTag from this SampleSource. More...
 
int getClientCount () const throw ()
 How many SampleClients are currently in my list. More...
 
void flush () throw ()
 Implementation of Resampler::flush(). More...
 
const SampleStatsgetSampleStats () const
 
void connect (SampleSource *source) throw (nidas::util::InvalidParameterException)
 Connect the resampler to a SampleSource. More...
 
void disconnect (SampleSource *source) throw ()
 
bool receive (const Sample *s) throw ()
 Method called to pass a sample to this client. More...
 

Protected Member Functions

void init () throw ()
 

Private Member Functions

void addSampleTag (const SampleTag *tag) throw ()
 Add a SampleTag to this SampleSource. More...
 
void removeSampleTag (const SampleTag *tag) throw ()
 
 SampleAverager (const SampleAverager &)
 No copy. More...
 
SampleAverageroperator= (const SampleAverager &)
 No assignment. More...
 

Private Attributes

SampleSourceSupport _source
 
SampleTag _outSample
 
int _averagePeriodUsecs
 Length of average, in microseconds. More...
 
dsm_time_t _endTime
 end time of current statistics window. More...
 
std::map< Variable *, unsigned
int > 
_outVarIndices
 Index of each requested output variable in the output sample. More...
 
std::map< dsm_sample_id_t,
std::vector< unsigned int > > 
_inmap
 
std::map< dsm_sample_id_t,
std::vector< unsigned int > > 
_lenmap
 
std::map< dsm_sample_id_t,
std::vector< unsigned int > > 
_outmap
 
unsigned int _ndataValues
 
double * _sums
 
int * _cnts
 

Constructor & Destructor Documentation

SampleAverager::SampleAverager ( )
SampleAverager::SampleAverager ( const std::vector< const Variable * > &  vars)
SampleAverager::SampleAverager ( const std::vector< Variable * > &  vars)
SampleAverager::~SampleAverager ( )
virtual

References _cnts, and _sums.

nidas::core::SampleAverager::SampleAverager ( const SampleAverager )
private

No copy.

Member Function Documentation

void nidas::core::SampleAverager::addSampleClient ( SampleClient client)
throw (
)
inlinevirtual
void nidas::core::SampleAverager::addSampleClientForTag ( SampleClient client,
const SampleTag  
)
throw (
)
inlinevirtual
void nidas::core::SampleAverager::addSampleTag ( const SampleTag tag)
throw (
)
inlineprivatevirtual
void SampleAverager::addVariable ( const Variable var)
void SampleAverager::addVariables ( const std::vector< const Variable * > &  )

References addVariable().

Referenced by SampleAverager().

void SampleAverager::connect ( SampleSource source)
throw (nidas::util::InvalidParameterException
)
virtual
void SampleAverager::disconnect ( SampleSource source)
throw (
)
virtual
void SampleAverager::flush ( )
throw (
)
virtual
float nidas::core::SampleAverager::getAveragePeriodSecs ( ) const
inline

Get average period.

Returns
average period, in seconds.

References _averagePeriodUsecs, and USECS_PER_SEC.

int nidas::core::SampleAverager::getClientCount ( ) const
throw (
)
inlinevirtual

How many SampleClients are currently in my list.

Implements nidas::core::SampleSource.

References _source, and nidas::core::SampleSourceSupport::getClientCount().

SampleSource* nidas::core::SampleAverager::getProcessedSampleSource ( )
inlinevirtual

Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.

SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of processed samples.

Implements nidas::core::SampleSource.

References _source.

SampleSource* nidas::core::SampleAverager::getRawSampleSource ( )
inlinevirtual

Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.

SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of raw samples.

Implements nidas::core::SampleSource.

const SampleStats& nidas::core::SampleAverager::getSampleStats ( ) const
inlinevirtual
SampleTagIterator nidas::core::SampleAverager::getSampleTagIterator ( ) const
inlinevirtual
std::list<const SampleTag*> nidas::core::SampleAverager::getSampleTags ( ) const
inlinevirtual
void SampleAverager::init ( )
throw (
)
protected

References _cnts, _endTime, _ndataValues, and _sums.

SampleAverager& nidas::core::SampleAverager::operator= ( const SampleAverager )
private

No assignment.

bool SampleAverager::receive ( const Sample s)
throw (
)
virtual

Method called to pass a sample to this client.

This method is typically called by a SampleSource for each of its SampleClients when it has a sample ready. Returns true: success false: sample rejected. This is meant to signal a warning-type situation - like a socket not being available temporarily. True errors will be thrown as an IOException.

Implements nidas::core::SampleClient.

References nidas::core::DOUBLE_ST, nidas::core::FLOAT_ST, nidas::core::floatNAN, fp, nidas::core::SampleT< DataT >::getDataPtr(), nidas::core::Sample::getTimeTag(), nidas::core::Sample::setId(), nidas::core::Sample::setTimeTag(), and nidas::util::timeCeiling().

void nidas::core::SampleAverager::removeSampleClient ( SampleClient c)
throw (
)
inlinevirtual
void nidas::core::SampleAverager::removeSampleClientForTag ( SampleClient c,
const SampleTag  
)
throw (
)
inlinevirtual

Remove a SampleClient for a given SampleTag from this SampleSource.

The pointer to the SampleClient must remain valid, until after it is removed.

Implements nidas::core::SampleSource.

References _source, and nidas::core::SampleSourceSupport::removeSampleClient().

void nidas::core::SampleAverager::removeSampleTag ( const SampleTag tag)
throw (
)
inlineprivatevirtual
void nidas::core::SampleAverager::setAveragePeriodSecs ( float  val)
inline

Set average period.

Parameters
valaverage period, in seconds.

References _averagePeriodUsecs, _outSample, nidas::core::SampleTag::setRate(), and USECS_PER_SEC.

Referenced by SampleAverager().

Member Data Documentation

int nidas::core::SampleAverager::_averagePeriodUsecs
private

Length of average, in microseconds.

Referenced by flush(), getAveragePeriodSecs(), and setAveragePeriodSecs().

int* nidas::core::SampleAverager::_cnts
private

Referenced by flush(), init(), and ~SampleAverager().

dsm_time_t nidas::core::SampleAverager::_endTime
private

end time of current statistics window.

Referenced by flush(), and init().

std::map<dsm_sample_id_t,std::vector<unsigned int> > nidas::core::SampleAverager::_inmap
private
std::map<dsm_sample_id_t,std::vector<unsigned int> > nidas::core::SampleAverager::_lenmap
private
unsigned int nidas::core::SampleAverager::_ndataValues
private

Referenced by addVariable(), flush(), and init().

std::map<dsm_sample_id_t,std::vector<unsigned int> > nidas::core::SampleAverager::_outmap
private
SampleTag nidas::core::SampleAverager::_outSample
private
std::map<Variable*,unsigned int> nidas::core::SampleAverager::_outVarIndices
private

Index of each requested output variable in the output sample.

Referenced by addVariable().

SampleSourceSupport nidas::core::SampleAverager::_source
private
double* nidas::core::SampleAverager::_sums
private

Referenced by flush(), init(), and ~SampleAverager().


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