1 #ifndef CARMA_PIPELINE_CATCHDATA_H
2 #define CARMA_PIPELINE_CATCHDATA_H
4 #include "carma/pipeline/DataContainer.h"
5 #include "carma/pipeline/pipelineUtils.h"
6 #include "carma/util/FrameAlignedTimer.h"
21 namespace correlator {
23 class CorrelatorListener;
29 class PipelineSubsystem;
52 long monitorWriteDelayMs,
53 int corrDataWriteDelayMs,
54 const std::string & channelPrefix,
55 const std::string & channelSuffix,
77 struct CorrelatorDataStatsInfo;
78 struct SharedMonitorInfo;
84 void performUpdate(
bool firstTime,
85 size_t * numBandsHighWaterMark,
88 static void harvestCorrelatorDataStatsInfo(
89 CorrelatorDataStatsInfo * cdsi,
92 static void monitorUpdateThread(
CatchData & This );
94 class MonitorUpdateTQRH;
99 void processMonitorPoints(
const CorrelatorDataStatsInfo & cdsi );
100 void fillMonitorData( )
const;
101 void computeStats(
const CorrelatorDataStatsInfo & cdsi );
103 const PipelineType pt_;
104 const int waitTimeInMillis_;
106 carma::pipeline::DataContainer _dataContainer;
107 ::std::list<carma::correlator::lib::CorrelatorListener *> _listeners;
109 mutable std::auto_ptr< carma::monitor::PipelineSubsystem > monitorData_;
110 ::std::vector< DataCollectorN * > collectors_;
112 ::std::auto_ptr< SharedMonitorInfo > smi_;
116 ::pthread_t monitorUpdateThread_;
Class used to mediate the merging and writing of a data object at specific times. ...
unsigned int frameType
Half second frames since Jan 1, 2000.
virtual ~CatchData()
Shuts down timer and releases any memory.
Class used to represents bands of Correlator Data.
Interface for those wishing to receive notification of arriving Correlator Data.
Class for creating, managing and serving requests to CORBA servants.
A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. ...
void addCorrelatorListener(carma::correlator::lib::CorrelatorListener *cListener)
add a listener for receiving the dataFrame after data have been collected
Various type definitions for util classes.
CatchData(PipelineType pt, long monitorWriteDelayMs, int corrDataWriteDelayMs, const std::string &channelPrefix, const std::string &channelSuffix, carma::corba::Server &server)
Creates all necessary objects.
Timer object that fires at a fixed offset after every Nth CARMA frame time.