Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
BeamConfig.h
1 /*
2  * The MIT License (MIT)
3  *
4  * Copyright (c) 2016 The SKA organisation
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all
14  * copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  * SOFTWARE.
23  */
24 #ifndef SKA_CHEETAH_PIPELINE_BEAMCONFIG_H
25 #define SKA_CHEETAH_PIPELINE_BEAMCONFIG_H
26 
27 #include "cheetah/pipeline/DataConfig.h"
28 #include "cheetah/data/DataSrcConfig.h"
29 #include "cheetah/sigproc/Config.h"
30 #include "cheetah/psrdada/Config.h"
31 #include "cheetah/rcpt/Config.h"
32 #include "cheetah/rcpt_low/Config.h"
33 #include "panda/ConfigModule.h"
34 #include "panda/Thread.h"
35 #include "panda/ThreadConfig.h"
36 
37 namespace ska {
38 namespace cheetah {
39 namespace pipeline {
40 
47 template<typename NumericalT>
48 class BeamConfig : public utils::Config
49 {
50  typedef utils::Config BaseT;
52 
53  public:
54  BeamConfig(std::string const& tag_name = "beam");
55  ~BeamConfig();
56 
60  panda::ThreadConfig const& thread_config() const;
61 
65  sigproc::Config const& sigproc_config() const;
66 
70  psrdada::Config const& psrdada_config() const;
71 
75  rcpt::Config const& rcpt_config() const;
76 
80  rcpt_low::Config const& rcpt_low_config() const;
81 
85  void thread_config(panda::ThreadConfig const& thread_config);
86 
90  DataConfigType const& data_config() const;
91 
95  void active(bool status);
96 
100  bool active() const;
101 
102  protected:
103  void add_options(OptionsDescriptionEasyInit& add_options) override;
104 
105  private:
106  bool _active;
107  panda::ThreadConfig _thread_config;
108  sigproc::Config _sigproc_config;
109  psrdada::Config _psrdada_config;
110  rcpt::Config _rcpt_config;
111  rcpt_low::Config _rcpt_low_config;
112  data::DataSrcConfig _data_src_config;
113  DataConfigType _data_config;
114 };
115 
116 } // namespace pipeline
117 } // namespace cheetah
118 } // namespace ska
119 #include "detail/BeamConfig.cpp"
120 
121 #endif // SKA_CHEETAH_PIPELINE_BEAMCONFIG_H
SigProcDadaStream configuration parameters.
Definition: Config.h:90
configurable parameters for the rcpt
Definition: Config.h:42
rcpt::Config const & rcpt_config() const
return the rcpt config
Definition: BeamConfig.cpp:77
bool active() const
sget the enabled status of the beam
Definition: BeamConfig.cpp:102
Base class for module configuration.
Definition: Config.h:42
SigProc configuration parameters.
Definition: Config.h:39
DataConfigType const & data_config() const
return the data export specific configuration parameters
Definition: BeamConfig.cpp:53
psrdada::Config const & psrdada_config() const
return the psrdada config
Definition: BeamConfig.cpp:65
sigproc::Config const & sigproc_config() const
return the sigproc config
Definition: BeamConfig.cpp:59
Some limits and constants for FLDO.
Definition: Brdz.h:35
panda::ThreadConfig const & thread_config() const
return the thread config
Definition: BeamConfig.cpp:83
Parse configuration parameters for a single beam in the pipeline instance of cheetah.
Definition: BeamConfig.h:48
rcpt_low::Config const & rcpt_low_config() const
return the rcpt_low config
Definition: BeamConfig.cpp:71
configurable parameters for the rcpt
Definition: Config.h:42