CARMA C++
Pipeline.h
Go to the documentation of this file.
1 
7 #ifndef CARMA_PIPELINE_PIPELINE_H
8 #define CARMA_PIPELINE_PIPELINE_H
9 
10 #include "carma/correlator/lib/CorrelatorDataPtr.h"
11 
12 #include <memory>
13 
14 namespace carma {
15 
16  namespace monitor {
17  class AstroSubsystem;
18  class PipelineSubsystem;
19  }
20 
21  namespace correlator {
22  namespace lib {
23  class CorrelatorData;
24  } // namespace lib
25  } // namespace correlator
26 
27  namespace pipeline {
28 
29  class Stage;
30 
31  class Pipeline {
32  public:
33 
41  explicit
42  Pipeline( carma::monitor::PipelineSubsystem & monitorData,
43  carma::monitor::AstroSubsystem & astroMonitor,
44  long monitorWriteDelayMs,
45  bool autowrite);
46 
47  virtual ~Pipeline( );
48 
52  void pushStageBack( Stage & stage );
53 
57  void clear( );
58 
62  void processCorrelatorData(
63  carma::correlator::lib::CorrelatorDataPtr data ) const;
64 
68  void incrementMissedMonitorInfo( int by = 1 );
69 
70  private:
71 
72  Pipeline( const Pipeline & );
73  Pipeline & operator=( const Pipeline & );
74 
75  class Pimpl;
76  const ::std::auto_ptr<Pimpl> pimpl_;
77 
78  }; // class Pipeline
79 
80  } // namespace pipeline
81 } // namespace carma
82 #endif
Abstract base class for retrieving pipeline monitor system components common between the spectral lin...