27 #ifndef NIDAS_CORE_SAMPLEAVERAGER_H
28 #define NIDAS_CORE_SAMPLEAVERAGER_H
33 namespace nidas {
namespace core {
123 void flush() throw();
177 std::map<dsm_sample_id_t,std::vector<unsigned int> >
_inmap;
179 std::map<dsm_sample_id_t,std::vector<unsigned int> >
_lenmap;
181 std::map<dsm_sample_id_t,std::vector<unsigned int> >
_outmap;
void setAveragePeriodSecs(float val)
Set average period.
Definition: SampleAverager.h:52
void removeSampleClientForTag(SampleClient *client, const SampleTag *)
Remove a SampleClient for a given SampleTag from this SampleSource.
Definition: SampleAverager.h:110
std::map< Variable *, unsigned int > _outVarIndices
Index of each requested output variable in the output sample.
Definition: SampleAverager.h:175
Interface for a resampler, simply a SampleClient and a SampleSource.
Definition: Resampler.h:39
virtual ~SampleAverager()
Definition: SampleAverager.cc:74
int * _cnts
Definition: SampleAverager.h:187
void addSampleClient(SampleClient *client)
Implementation of SampleSource::addSampleClient().
Definition: SampleAverager.h:90
void removeSampleTag(const SampleTag *tag)
Definition: SampleSourceSupport.cc:67
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC...
Definition: Sample.h:61
Class describing a sampled variable.
Definition: Variable.h:46
const SampleStats & getSampleStats() const
Definition: SampleAverager.h:125
Pure virtual interface for a source of Samples.
Definition: SampleSource.h:48
SampleTagIterator getSampleTagIterator() const
Definition: SampleSourceSupport.cc:75
SampleSource * getRawSampleSource()
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
Definition: SampleAverager.h:67
void addSampleTag(const SampleTag *tag)
Add a SampleTag to this SampleSource.
Definition: SampleAverager.h:148
A source of samples.
Definition: SampleSourceSupport.h:47
void removeSampleClient(SampleClient *c)
Remove a SampleClient from this SampleSource This will also remove a SampleClient if it has been adde...
Definition: SampleSourceSupport.cc:88
void addSampleClient(SampleClient *c)
Add a SampleClient to this SampleSource.
Definition: SampleSourceSupport.cc:80
Pure virtual interface of a client of Samples.
Definition: SampleClient.h:38
Definition: SampleAverager.h:37
void connect(SampleSource *source)
Connect the resampler to a SampleSource.
Definition: SampleAverager.cc:97
const SampleStats & getSampleStats() const
Definition: SampleSourceSupport.h:149
void init()
Definition: SampleAverager.cc:210
SampleAverager()
Definition: SampleAverager.cc:41
double * _sums
Definition: SampleAverager.h:185
SampleSource * getProcessedSampleSource()
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
Definition: SampleAverager.h:69
virtual void setRate(double val)
Set sampling rate in samples/sec.
Definition: SampleTag.h:200
void disconnect(SampleSource *source)
Definition: SampleAverager.cc:205
std::list< const SampleTag * > getSampleTags() const
Get the output SampleTags.
Definition: SampleAverager.h:74
void removeSampleClient(SampleClient *client)
Remove a SampleClient from this SampleSource.
Definition: SampleAverager.h:95
unsigned int _ndataValues
Definition: SampleAverager.h:183
std::map< dsm_sample_id_t, std::vector< unsigned int > > _lenmap
Definition: SampleAverager.h:179
std::map< dsm_sample_id_t, std::vector< unsigned int > > _inmap
Definition: SampleAverager.h:177
Interface to a data sample.
Definition: Sample.h:189
Class for iterating over the SampleTags of a Project, Site, DSMConfig, or a SampleSource.
Definition: NidsIterators.h:217
float getAveragePeriodSecs() const
Get average period.
Definition: SampleAverager.h:61
SampleAverager & operator=(const SampleAverager &)
No assignment.
Class describing a group of variables that are sampled and handled together.
Definition: SampleTag.h:87
SampleSourceSupport _source
Definition: SampleAverager.h:158
int _averagePeriodUsecs
Length of average, in microseconds.
Definition: SampleAverager.h:165
A source of samples.
Definition: SampleStats.h:41
#define USECS_PER_SEC
Definition: ublox.cc:59
void addSampleClientForTag(SampleClient *client, const SampleTag *)
Add a Client for a given SampleTag.
Definition: SampleAverager.h:104
void removeSampleTag(const SampleTag *tag)
Definition: SampleAverager.h:153
dsm_time_t _endTime
end time of current statistics window.
Definition: SampleAverager.h:170
SampleTagIterator getSampleTagIterator() const
Implementation of SampleSource::getSampleTagIterator().
Definition: SampleAverager.h:82
void addVariables(const std::vector< const Variable * > &)
Definition: SampleAverager.cc:80
int getClientCount() const
How many SampleClients are currently in my list.
Definition: SampleSourceSupport.cc:136
void flush()
Implementation of Resampler::flush().
Definition: SampleAverager.cc:222
std::list< const SampleTag * > getSampleTags() const
What SampleTags am I a SampleSource for?
Definition: SampleSourceSupport.cc:54
SampleTag _outSample
Definition: SampleAverager.h:160
int getClientCount() const
How many SampleClients are currently in my list.
Definition: SampleAverager.h:115
bool receive(const Sample *s)
Method called to pass a sample to this client.
Definition: SampleAverager.cc:248
Definition: InvalidParameterException.h:35
void addSampleTag(const SampleTag *tag)
Add a SampleTag to this SampleSource.
Definition: SampleSourceSupport.cc:60
void addVariable(const Variable *var)
Definition: SampleAverager.cc:89
std::map< dsm_sample_id_t, std::vector< unsigned int > > _outmap
Definition: SampleAverager.h:181