nidas v1.2.3
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.
 
float getAveragePeriodSecs () const
 Get average period.
 
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.
 
SampleSourcegetProcessedSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
 
std::list< const SampleTag * > getSampleTags () const
 Get the output SampleTags.
 
SampleTagIterator getSampleTagIterator () const
 Implementation of SampleSource::getSampleTagIterator().
 
void addSampleClient (SampleClient *client) throw ()
 Implementation of SampleSource::addSampleClient().
 
void removeSampleClient (SampleClient *client) throw ()
 Remove a SampleClient from this SampleSource.
 
void addSampleClientForTag (SampleClient *client, const SampleTag *) throw ()
 Add a Client for a given SampleTag.
 
void removeSampleClientForTag (SampleClient *client, const SampleTag *) throw ()
 Remove a SampleClient for a given SampleTag from this SampleSource.
 
int getClientCount () const throw ()
 How many SampleClients are currently in my list.
 
void flush () throw ()
 Implementation of Resampler::flush().
 
const SampleStatsgetSampleStats () const
 
void connect (SampleSource *source)
 Connect the resampler to a SampleSource.
 
void disconnect (SampleSource *source) throw ()
 
bool receive (const Sample *s) throw ()
 Method called to pass a sample to this client.
 

Protected Member Functions

void init () throw ()
 

Private Member Functions

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

Private Attributes

SampleSourceSupport _source
 
SampleTag _outSample
 
int _averagePeriodUsecs
 Length of average, in microseconds.
 
dsm_time_t _endTime
 end time of current statistics window.
 
std::map< Variable *, unsigned int_outVarIndices
 Index of each requested output variable in the output sample.
 
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() [1/4]

SampleAverager::SampleAverager ( )

◆ SampleAverager() [2/4]

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

◆ SampleAverager() [3/4]

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

◆ ~SampleAverager()

SampleAverager::~SampleAverager ( )
virtual

References _cnts, and _sums.

◆ SampleAverager() [4/4]

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

No copy.

Member Function Documentation

◆ addSampleClient()

void nidas::core::SampleAverager::addSampleClient ( SampleClient * client)
throw ( )
inlinevirtual

◆ addSampleClientForTag()

void nidas::core::SampleAverager::addSampleClientForTag ( SampleClient * client,
const SampleTag *  )
throw ( )
inlinevirtual

◆ addSampleTag()

void nidas::core::SampleAverager::addSampleTag ( const SampleTag * tag)
throw ( )
inlineprivatevirtual

◆ addVariable()

void SampleAverager::addVariable ( const Variable * var)

◆ addVariables()

void SampleAverager::addVariables ( const std::vector< const Variable * > & )

◆ connect()

void SampleAverager::connect ( SampleSource * source)
virtual

◆ disconnect()

void SampleAverager::disconnect ( SampleSource * source)
throw ( )
virtual

◆ flush()

void SampleAverager::flush ( )
throw ( )
virtual

◆ getAveragePeriodSecs()

float nidas::core::SampleAverager::getAveragePeriodSecs ( ) const
inline

Get average period.

Returns
average period, in seconds.

References _averagePeriodUsecs, and USECS_PER_SEC.

◆ getClientCount()

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

How many SampleClients are currently in my list.

Exceptions

)

Implements nidas::core::SampleSource.

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

◆ getProcessedSampleSource()

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.

◆ getRawSampleSource()

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.

◆ getSampleStats()

const SampleStats & nidas::core::SampleAverager::getSampleStats ( ) const
inlinevirtual

◆ getSampleTagIterator()

SampleTagIterator nidas::core::SampleAverager::getSampleTagIterator ( ) const
inlinevirtual

◆ getSampleTags()

std::list< const SampleTag * > nidas::core::SampleAverager::getSampleTags ( ) const
inlinevirtual

Get the output SampleTags.

Implements nidas::core::SampleSource.

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

◆ init()

void SampleAverager::init ( )
throw ( )
protected

References _cnts, _endTime, _ndataValues, and _sums.

Referenced by connect().

◆ operator=()

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

No assignment.

◆ receive()

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.

Exceptions

)

Implements nidas::core::SampleClient.

References nidas::core::DOUBLE_ST, nidas::core::FLOAT_ST, nidas::core::floatNAN, nidas::util::UTime::format(), fp, nidas::core::getSample(), and nidas::util::timeCeiling().

◆ removeSampleClient()

void nidas::core::SampleAverager::removeSampleClient ( SampleClient * c)
throw ( )
inlinevirtual

◆ removeSampleClientForTag()

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.

Exceptions

)

Implements nidas::core::SampleSource.

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

◆ removeSampleTag()

void nidas::core::SampleAverager::removeSampleTag ( const SampleTag * )
throw ( )
inlineprivatevirtual

◆ setAveragePeriodSecs()

void nidas::core::SampleAverager::setAveragePeriodSecs ( float val)
inline

Member Data Documentation

◆ _averagePeriodUsecs

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

Length of average, in microseconds.

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

◆ _cnts

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

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

◆ _endTime

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

end time of current statistics window.

Referenced by flush(), and init().

◆ _inmap

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

Referenced by connect().

◆ _lenmap

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

Referenced by connect().

◆ _ndataValues

unsigned int nidas::core::SampleAverager::_ndataValues
private

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

◆ _outmap

std::map<dsm_sample_id_t,std::vector<unsigned int> > nidas::core::SampleAverager::_outmap
private

Referenced by connect().

◆ _outSample

SampleTag nidas::core::SampleAverager::_outSample
private

◆ _outVarIndices

std::map<Variable*,unsigned int> nidas::core::SampleAverager::_outVarIndices
private

Index of each requested output variable in the output sample.

Referenced by addVariable(), and connect().

◆ _source

SampleSourceSupport nidas::core::SampleAverager::_source
private

◆ _sums

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

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


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