Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Config.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_PSRDADA_CONFIG_H
25 #define SKA_CHEETAH_PSRDADA_CONFIG_H
26 
27 #include "cheetah/utils/Config.h"
28 #include <panda/ProcessingEngine.h>
29 #include <panda/ProcessingEngineConfig.h>
30 #include <sys/types.h> // key_t
31 
32 namespace ska {
33 namespace cheetah {
34 namespace psrdada {
35 
41 #ifdef ENABLE_PSRDADA
42 class Config : public cheetah::utils::Config
43 {
44  public:
45  typedef panda::ProcessingEngine Engine;
46  Config();
47  ~Config();
48 
52  key_t dada_key() const;
53 
57  int number_of_samples() const;
58 
62  void dada_key(key_t const& key);
63 
67  void number_of_samples(int const& samples);
68 
72  Engine& engine() const;
73 
77  unsigned number_of_threads() const;
78 
79  protected:
80  void add_options(OptionsDescriptionEasyInit& add_options) override;
81 
82  private:
83  mutable std::unique_ptr<Engine> _engine;
84  panda::ProcessingEngineConfig _engine_config;
85  key_t _dada_key;
86  int _number_of_samples;
87 };
88 #else // ENABLE_PSRDADA
89 // a dummy Config
91 {
92  public:
94  ~Config() {};
95 
96  protected:
97  void add_options(OptionsDescriptionEasyInit&) override {};
98 };
99 
100 #endif // ENABLE_PSRDADA
101 
102 
103 } // namespace psrdada
104 } // namespace cheetah
105 } // namespace ska
106 
107 #endif // SKA_CHEETAH_PSRDADA_CONFIG_H
SigProcDadaStream configuration parameters.
Definition: Config.h:90
Base class for module configuration.
Definition: Config.h:42
Some limits and constants for FLDO.
Definition: Brdz.h:35