Commit 46d3467f0273135de2fb67883ad9ea22ffeec280
1 parent
8ebb4df8
Avoid mangling of log files after application pickling (#2421)
Showing
9 changed files
with
167 additions
and
178 deletions
pyext/ctlikelihood.i
| ... | ... | @@ -45,19 +45,19 @@ public: |
| 45 | 45 | cslikelihood(const std::string& name, |
| 46 | 46 | const std::string& version) : |
| 47 | 47 | ctlikelihood(name, version) {} |
| 48 | - cslikelihood(const std::string& name, | |
| 49 | - const std::string& version, | |
| 50 | - const GObservations& obs) : | |
| 51 | - ctlikelihood(name, version, obs) {} | |
| 52 | - cslikelihood(const std::string& name, | |
| 53 | - const std::string& version, | |
| 54 | - const std::vector<std::string>& args) : | |
| 55 | - ctlikelihood(name, version, args) {} | |
| 48 | + cslikelihood(const std::string& name, | |
| 49 | + const std::string& version, | |
| 50 | + const GApplicationPars& pars) : | |
| 51 | + ctlikelihood(name, version, pars) {} | |
| 56 | 52 | cslikelihood(const std::string& name, |
| 57 | 53 | const std::string& version, |
| 58 | 54 | int argc, |
| 59 | 55 | char* argv[]) : |
| 60 | 56 | ctlikelihood(name, version, argc, argv) {} |
| 57 | + cslikelihood(const std::string& name, | |
| 58 | + const std::string& version, | |
| 59 | + const GObservations& obs) : | |
| 60 | + ctlikelihood(name, version, obs) {} | |
| 61 | 61 | cslikelihood(const cslikelihood& app) : ctlikelihood(app) {} |
| 62 | 62 | virtual ~cslikelihood(void) {} |
| 63 | 63 | |
| ... | ... | @@ -84,16 +84,16 @@ public: |
| 84 | 84 | // Constructors and destructors |
| 85 | 85 | ctlikelihood(const std::string& name, |
| 86 | 86 | const std::string& version); |
| 87 | - ctlikelihood(const std::string& name, | |
| 88 | - const std::string& version, | |
| 89 | - const GObservations& obs); | |
| 90 | - ctlikelihood(const std::string& name, | |
| 91 | - const std::string& version, | |
| 92 | - const std::vector<std::string>& args); | |
| 87 | + ctlikelihood(const std::string& name, | |
| 88 | + const std::string& version, | |
| 89 | + const GApplicationPars& pars); | |
| 93 | 90 | ctlikelihood(const std::string& name, |
| 94 | 91 | const std::string& version, |
| 95 | 92 | int argc, |
| 96 | 93 | char* argv[]); |
| 94 | + ctlikelihood(const std::string& name, | |
| 95 | + const std::string& version, | |
| 96 | + const GObservations& obs); | |
| 97 | 97 | ctlikelihood(const ctlikelihood& app); |
| 98 | 98 | virtual ~ctlikelihood(void); |
| 99 | 99 | |
| ... | ... | @@ -125,16 +125,16 @@ public: |
| 125 | 125 | // Constructors and destructors |
| 126 | 126 | cslikelihood(const std::string& name, |
| 127 | 127 | const std::string& version); |
| 128 | - cslikelihood(const std::string& name, | |
| 129 | - const std::string& version, | |
| 130 | - const GObservations& obs); | |
| 131 | - cslikelihood(const std::string& name, | |
| 132 | - const std::string& version, | |
| 133 | - const std::vector<std::string>& args); | |
| 128 | + cslikelihood(const std::string& name, | |
| 129 | + const std::string& version, | |
| 130 | + const GApplicationPars& pars); | |
| 134 | 131 | cslikelihood(const std::string& name, |
| 135 | 132 | const std::string& version, |
| 136 | 133 | int ARGC, |
| 137 | 134 | char **ARGV); |
| 135 | + cslikelihood(const std::string& name, | |
| 136 | + const std::string& version, | |
| 137 | + const GObservations& obs); | |
| 138 | 138 | cslikelihood(const cslikelihood& app); |
| 139 | 139 | virtual ~cslikelihood(void); |
| 140 | 140 | ... | ... |
pyext/ctobservation.i
| ... | ... | @@ -45,19 +45,19 @@ public: |
| 45 | 45 | csobservation(const std::string& name, |
| 46 | 46 | const std::string& version) : |
| 47 | 47 | ctobservation(name, version) {} |
| 48 | - csobservation(const std::string& name, | |
| 49 | - const std::string& version, | |
| 50 | - const GObservations& obs) : | |
| 51 | - ctobservation(name, version, obs) {} | |
| 52 | - csobservation(const std::string& name, | |
| 53 | - const std::string& version, | |
| 54 | - const std::vector<std::string>& args) : | |
| 55 | - ctobservation(name, version, args) {} | |
| 48 | + csobservation(const std::string& name, | |
| 49 | + const std::string& version, | |
| 50 | + const GApplicationPars& pars) : | |
| 51 | + ctobservation(name, version, pars) {} | |
| 56 | 52 | csobservation(const std::string& name, |
| 57 | 53 | const std::string& version, |
| 58 | 54 | int argc, |
| 59 | 55 | char* argv[]) : |
| 60 | 56 | ctobservation(name, version, argc, argv) {} |
| 57 | + csobservation(const std::string& name, | |
| 58 | + const std::string& version, | |
| 59 | + const GObservations& obs) : | |
| 60 | + ctobservation(name, version, obs) {} | |
| 61 | 61 | csobservation(const csobservation& app) : ctobservation(app) {} |
| 62 | 62 | virtual ~csobservation(void) {} |
| 63 | 63 | |
| ... | ... | @@ -84,16 +84,16 @@ public: |
| 84 | 84 | // Constructors and destructors |
| 85 | 85 | ctobservation(const std::string& name, |
| 86 | 86 | const std::string& version); |
| 87 | - ctobservation(const std::string& name, | |
| 88 | - const std::string& version, | |
| 89 | - const GObservations& obs); | |
| 90 | - ctobservation(const std::string& name, | |
| 91 | - const std::string& version, | |
| 92 | - const std::vector<std::string>& args); | |
| 87 | + ctobservation(const std::string& name, | |
| 88 | + const std::string& version, | |
| 89 | + const GApplicationPars& pars); | |
| 93 | 90 | ctobservation(const std::string& name, |
| 94 | 91 | const std::string& version, |
| 95 | 92 | int ARGC, |
| 96 | 93 | char **ARGV); |
| 94 | + ctobservation(const std::string& name, | |
| 95 | + const std::string& version, | |
| 96 | + const GObservations& obs); | |
| 97 | 97 | ctobservation(const ctobservation& app); |
| 98 | 98 | virtual ~ctobservation(void); |
| 99 | 99 | |
| ... | ... | @@ -137,16 +137,16 @@ public: |
| 137 | 137 | // Constructors and destructors |
| 138 | 138 | csobservation(const std::string& name, |
| 139 | 139 | const std::string& version); |
| 140 | - csobservation(const std::string& name, | |
| 141 | - const std::string& version, | |
| 142 | - const GObservations& obs); | |
| 143 | - csobservation(const std::string& name, | |
| 144 | - const std::string& version, | |
| 145 | - const std::vector<std::string>& args); | |
| 140 | + csobservation(const std::string& name, | |
| 141 | + const std::string& version, | |
| 142 | + const GApplicationPars& pars); | |
| 146 | 143 | csobservation(const std::string& name, |
| 147 | 144 | const std::string& version, |
| 148 | 145 | int ARGC, |
| 149 | 146 | char **ARGV); |
| 147 | + csobservation(const std::string& name, | |
| 148 | + const std::string& version, | |
| 149 | + const GObservations& obs); | |
| 150 | 150 | csobservation(const csobservation& app); |
| 151 | 151 | virtual ~csobservation(void); |
| 152 | 152 | ... | ... |
pyext/ctool.i
| ... | ... | @@ -38,9 +38,9 @@ public: |
| 38 | 38 | // Constructors and destructors |
| 39 | 39 | cscript(const std::string& name, |
| 40 | 40 | const std::string& version) : ctool(name, version) {} |
| 41 | - cscript(const std::string& name, | |
| 42 | - const std::string& version, | |
| 43 | - const std::vector<std::string>& args) : ctool(name, version, args) {} | |
| 41 | + cscript(const std::string& name, | |
| 42 | + const std::string& version, | |
| 43 | + const GApplicationPars& pars) : ctool(name, version, pars) {} | |
| 44 | 44 | cscript(const std::string& name, |
| 45 | 45 | const std::string& version, |
| 46 | 46 | int argc, |
| ... | ... | @@ -75,9 +75,9 @@ public: |
| 75 | 75 | // Constructors and destructors |
| 76 | 76 | ctool(const std::string& name, |
| 77 | 77 | const std::string& version); |
| 78 | - ctool(const std::string& name, | |
| 79 | - const std::string& version, | |
| 80 | - const std::vector<std::string>& args); | |
| 78 | + ctool(const std::string& name, | |
| 79 | + const std::string& version, | |
| 80 | + const GApplicationPars& pars); | |
| 81 | 81 | ctool(const std::string& name, |
| 82 | 82 | const std::string& version, |
| 83 | 83 | int ARGC, |
| ... | ... | @@ -200,9 +200,15 @@ public: |
| 200 | 200 | class cscript : public ctool { |
| 201 | 201 | public: |
| 202 | 202 | // Constructors and destructors |
| 203 | - cscript(const std::string& name, const std::string& version); | |
| 204 | - cscript(const std::string& name, const std::string& version, | |
| 205 | - int ARGC, char **ARGV); | |
| 203 | + cscript(const std::string& name, | |
| 204 | + const std::string& version); | |
| 205 | + cscript(const std::string& name, | |
| 206 | + const std::string& version, | |
| 207 | + const GApplicationPars& pars); | |
| 208 | + cscript(const std::string& name, | |
| 209 | + const std::string& version, | |
| 210 | + int ARGC, | |
| 211 | + char **ARGV); | |
| 206 | 212 | cscript(const ctool& app); |
| 207 | 213 | virtual ~cscript(void); |
| 208 | 214 | ... | ... |
src/support/ctlikelihood.cpp
| ... | ... | @@ -55,7 +55,7 @@ |
| 55 | 55 | ***************************************************************************/ |
| 56 | 56 | ctlikelihood::ctlikelihood(const std::string& name, |
| 57 | 57 | const std::string& version) : |
| 58 | - ctobservation(name, version) | |
| 58 | + ctobservation(name, version) | |
| 59 | 59 | { |
| 60 | 60 | // Initialise members |
| 61 | 61 | init_members(); |
| ... | ... | @@ -66,19 +66,20 @@ ctlikelihood::ctlikelihood(const std::string& name, |
| 66 | 66 | |
| 67 | 67 | |
| 68 | 68 | /***********************************************************************//** |
| 69 | - * @brief Observations constructor | |
| 69 | + * @brief Application parameters constructor | |
| 70 | 70 | * |
| 71 | - * @param[in] name Likelihood tool name. | |
| 72 | - * @param[in] version Likelihood tool version. | |
| 73 | - * param[in] obs Observation container. | |
| 71 | + * @param[in] name Observation tool name. | |
| 72 | + * @param[in] version Observation tool version. | |
| 73 | + * @param[in] pars Application parameters. | |
| 74 | 74 | * |
| 75 | - * Constructs a likelihood tool from the @p name, @p version and an | |
| 76 | - * observation container. | |
| 75 | + * Constructs a likelihood tool from the @p name, @p version and the | |
| 76 | + * application parameters @p pars. See the equivalent ctool constructor | |
| 77 | + * for details. | |
| 77 | 78 | ***************************************************************************/ |
| 78 | -ctlikelihood::ctlikelihood(const std::string& name, | |
| 79 | - const std::string& version, | |
| 80 | - const GObservations& obs) : | |
| 81 | - ctobservation(name, version, obs) | |
| 79 | +ctlikelihood::ctlikelihood(const std::string& name, | |
| 80 | + const std::string& version, | |
| 81 | + const GApplicationPars& pars) : | |
| 82 | + ctobservation(name, version, pars) | |
| 82 | 83 | { |
| 83 | 84 | // Initialise members |
| 84 | 85 | init_members(); |
| ... | ... | @@ -93,15 +94,17 @@ ctlikelihood::ctlikelihood(const std::string& name, |
| 93 | 94 | * |
| 94 | 95 | * @param[in] name Likelihood tool name. |
| 95 | 96 | * @param[in] version Likelihood tool version. |
| 96 | - * @param[in] args Arguments vector. | |
| 97 | + * @param[in] argc Number of arguments in command line. | |
| 98 | + * @param[in] argv Array of command line arguments. | |
| 97 | 99 | * |
| 98 | 100 | * Constructs a likelihood tool from the @p name, @p version and command |
| 99 | 101 | * line arguments. See the equivalent ctool constructor for details. |
| 100 | 102 | ***************************************************************************/ |
| 101 | -ctlikelihood::ctlikelihood(const std::string& name, | |
| 102 | - const std::string& version, | |
| 103 | - const std::vector<std::string>& args) : | |
| 104 | - ctobservation(name, version, args) | |
| 103 | +ctlikelihood::ctlikelihood(const std::string& name, | |
| 104 | + const std::string& version, | |
| 105 | + int argc, | |
| 106 | + char *argv[]) : | |
| 107 | + ctobservation(name, version, argc, argv) | |
| 105 | 108 | { |
| 106 | 109 | // Initialise members |
| 107 | 110 | init_members(); |
| ... | ... | @@ -112,21 +115,19 @@ ctlikelihood::ctlikelihood(const std::string& name, |
| 112 | 115 | |
| 113 | 116 | |
| 114 | 117 | /***********************************************************************//** |
| 115 | - * @brief Command line constructor | |
| 118 | + * @brief Observations constructor | |
| 116 | 119 | * |
| 117 | 120 | * @param[in] name Likelihood tool name. |
| 118 | 121 | * @param[in] version Likelihood tool version. |
| 119 | - * @param[in] argc Number of arguments in command line. | |
| 120 | - * @param[in] argv Array of command line arguments. | |
| 122 | + * param[in] obs Observation container. | |
| 121 | 123 | * |
| 122 | - * Constructs a likelihood tool from the @p name, @p version and command | |
| 123 | - * line arguments. See the equivalent ctool constructor for details. | |
| 124 | + * Constructs a likelihood tool from the @p name, @p version and an | |
| 125 | + * observation container. | |
| 124 | 126 | ***************************************************************************/ |
| 125 | -ctlikelihood::ctlikelihood(const std::string& name, | |
| 126 | - const std::string& version, | |
| 127 | - int argc, | |
| 128 | - char *argv[]) : | |
| 129 | - ctobservation(name, version, argc, argv) | |
| 127 | +ctlikelihood::ctlikelihood(const std::string& name, | |
| 128 | + const std::string& version, | |
| 129 | + const GObservations& obs) : | |
| 130 | + ctobservation(name, version, obs) | |
| 130 | 131 | { |
| 131 | 132 | // Initialise members |
| 132 | 133 | init_members(); | ... | ... |
src/support/ctlikelihood.hpp
| ... | ... | @@ -44,16 +44,16 @@ public: |
| 44 | 44 | // Constructors and destructors |
| 45 | 45 | ctlikelihood(const std::string& name, |
| 46 | 46 | const std::string& version); |
| 47 | - ctlikelihood(const std::string& name, | |
| 48 | - const std::string& version, | |
| 49 | - const GObservations& obs); | |
| 50 | - ctlikelihood(const std::string& name, | |
| 51 | - const std::string& version, | |
| 52 | - const std::vector<std::string>& args); | |
| 47 | + ctlikelihood(const std::string& name, | |
| 48 | + const std::string& version, | |
| 49 | + const GApplicationPars& pars); | |
| 53 | 50 | ctlikelihood(const std::string& name, |
| 54 | 51 | const std::string& version, |
| 55 | 52 | int argc, |
| 56 | 53 | char* argv[]); |
| 54 | + ctlikelihood(const std::string& name, | |
| 55 | + const std::string& version, | |
| 56 | + const GObservations& obs); | |
| 57 | 57 | ctlikelihood(const ctlikelihood& app); |
| 58 | 58 | virtual ~ctlikelihood(void); |
| 59 | 59 | ... | ... |
src/support/ctobservation.cpp
| ... | ... | @@ -64,25 +64,24 @@ ctobservation::ctobservation(const std::string& name, |
| 64 | 64 | |
| 65 | 65 | |
| 66 | 66 | /***********************************************************************//** |
| 67 | - * @brief Observations constructor | |
| 67 | + * @brief Application parameters constructor | |
| 68 | 68 | * |
| 69 | 69 | * @param[in] name Observation tool name. |
| 70 | 70 | * @param[in] version Observation tool version. |
| 71 | - * param[in] obs Observation container. | |
| 71 | + * @param[in] pars Application parameters. | |
| 72 | 72 | * |
| 73 | - * Constructs a observation tool from the @p name, @p version and an | |
| 74 | - * observation container. | |
| 73 | + * Constructs a observation tool from the @p name, @p version and the | |
| 74 | + * application parameters @p pars. See the equivalent ctool constructor | |
| 75 | + * for details. | |
| 75 | 76 | ***************************************************************************/ |
| 76 | -ctobservation::ctobservation(const std::string& name, | |
| 77 | - const std::string& version, | |
| 78 | - const GObservations& obs) : ctool(name, version) | |
| 77 | +ctobservation::ctobservation(const std::string& name, | |
| 78 | + const std::string& version, | |
| 79 | + const GApplicationPars& pars) : | |
| 80 | + ctool(name, version, pars) | |
| 79 | 81 | { |
| 80 | 82 | // Initialise members |
| 81 | 83 | init_members(); |
| 82 | 84 | |
| 83 | - // Set observations | |
| 84 | - m_obs = obs; | |
| 85 | - | |
| 86 | 85 | // Return |
| 87 | 86 | return; |
| 88 | 87 | } |
| ... | ... | @@ -93,15 +92,16 @@ ctobservation::ctobservation(const std::string& name, |
| 93 | 92 | * |
| 94 | 93 | * @param[in] name Observation tool name. |
| 95 | 94 | * @param[in] version Observation tool version. |
| 96 | - * @param[in] args Arguments vector. | |
| 95 | + * @param[in] argc Number of arguments in command line. | |
| 96 | + * @param[in] argv Array of command line arguments. | |
| 97 | 97 | * |
| 98 | 98 | * Constructs a observation tool from the @p name, @p version and command |
| 99 | 99 | * line arguments. See the equivalent ctool constructor for details. |
| 100 | 100 | ***************************************************************************/ |
| 101 | -ctobservation::ctobservation(const std::string& name, | |
| 102 | - const std::string& version, | |
| 103 | - const std::vector<std::string>& args) : | |
| 104 | - ctool(name, version, args) | |
| 101 | +ctobservation::ctobservation(const std::string& name, | |
| 102 | + const std::string& version, | |
| 103 | + int argc, | |
| 104 | + char *argv[]) : ctool(name, version, argc, argv) | |
| 105 | 105 | { |
| 106 | 106 | // Initialise members |
| 107 | 107 | init_members(); |
| ... | ... | @@ -112,24 +112,25 @@ ctobservation::ctobservation(const std::string& name, |
| 112 | 112 | |
| 113 | 113 | |
| 114 | 114 | /***********************************************************************//** |
| 115 | - * @brief Command line constructor | |
| 115 | + * @brief Observations constructor | |
| 116 | 116 | * |
| 117 | 117 | * @param[in] name Observation tool name. |
| 118 | 118 | * @param[in] version Observation tool version. |
| 119 | - * @param[in] argc Number of arguments in command line. | |
| 120 | - * @param[in] argv Array of command line arguments. | |
| 119 | + * param[in] obs Observation container. | |
| 121 | 120 | * |
| 122 | - * Constructs a observation tool from the @p name, @p version and command | |
| 123 | - * line arguments. See the equivalent ctool constructor for details. | |
| 121 | + * Constructs a observation tool from the @p name, @p version and an | |
| 122 | + * observation container. | |
| 124 | 123 | ***************************************************************************/ |
| 125 | -ctobservation::ctobservation(const std::string& name, | |
| 126 | - const std::string& version, | |
| 127 | - int argc, | |
| 128 | - char *argv[]) : ctool(name, version, argc, argv) | |
| 124 | +ctobservation::ctobservation(const std::string& name, | |
| 125 | + const std::string& version, | |
| 126 | + const GObservations& obs) : ctool(name, version) | |
| 129 | 127 | { |
| 130 | 128 | // Initialise members |
| 131 | 129 | init_members(); |
| 132 | 130 | |
| 131 | + // Set observations | |
| 132 | + m_obs = obs; | |
| 133 | + | |
| 133 | 134 | // Return |
| 134 | 135 | return; |
| 135 | 136 | } | ... | ... |
src/support/ctobservation.hpp
| ... | ... | @@ -47,16 +47,16 @@ public: |
| 47 | 47 | // Constructors and destructors |
| 48 | 48 | ctobservation(const std::string& name, |
| 49 | 49 | const std::string& version); |
| 50 | - ctobservation(const std::string& name, | |
| 51 | - const std::string& version, | |
| 52 | - const GObservations& obs); | |
| 53 | - ctobservation(const std::string& name, | |
| 54 | - const std::string& version, | |
| 55 | - const std::vector<std::string>& args); | |
| 50 | + ctobservation(const std::string& name, | |
| 51 | + const std::string& version, | |
| 52 | + const GApplicationPars& pars); | |
| 56 | 53 | ctobservation(const std::string& name, |
| 57 | 54 | const std::string& version, |
| 58 | 55 | int argc, |
| 59 | 56 | char* argv[]); |
| 57 | + ctobservation(const std::string& name, | |
| 58 | + const std::string& version, | |
| 59 | + const GObservations& obs); | |
| 60 | 60 | ctobservation(const ctobservation& app); |
| 61 | 61 | virtual ~ctobservation(void); |
| 62 | 62 | ... | ... |
src/support/ctool.cpp
| ... | ... | @@ -92,19 +92,8 @@ ctool::ctool(const std::string& name, |
| 92 | 92 | // Initialise members |
| 93 | 93 | init_members(); |
| 94 | 94 | |
| 95 | - // If CTOOLS environment variable is set and if a parameter exists in | |
| 96 | - // the syspfiles folder then set syspfiles folder and reload parameter | |
| 97 | - // file | |
| 98 | - char* ptr = std::getenv("CTOOLS"); | |
| 99 | - if (ptr != NULL) { | |
| 100 | - std::string path = std::string(ptr) + "/syspfiles"; | |
| 101 | - std::string filename = path + "/" + par_filename(); | |
| 102 | - if (access(filename.c_str(), R_OK) == 0) { | |
| 103 | - m_pars.clear(); | |
| 104 | - m_pars.syspfiles(path); | |
| 105 | - m_pars.load(par_filename()); | |
| 106 | - } | |
| 107 | - } | |
| 95 | + // Synchronise parameter files | |
| 96 | + sync_pfiles(); | |
| 108 | 97 | |
| 109 | 98 | // Return |
| 110 | 99 | return; |
| ... | ... | @@ -112,49 +101,24 @@ ctool::ctool(const std::string& name, |
| 112 | 101 | |
| 113 | 102 | |
| 114 | 103 | /***********************************************************************//** |
| 115 | - * @brief Command line constructor | |
| 104 | + * @brief Application parameter constructor | |
| 116 | 105 | * |
| 117 | 106 | * @param[in] name Application name. |
| 118 | 107 | * @param[in] version Application version. |
| 119 | - * @param[in] args Arguments vector. | |
| 108 | + * @param[in] pars Application parameters. | |
| 120 | 109 | * |
| 121 | - * Constructs a ctool from the @p name, @p version and command line | |
| 122 | - * arguments. The constructor uses the equivalent GApplication constructor | |
| 110 | + * Constructs a ctool from the @p name, @p version and application parameters | |
| 111 | + * @p pars. The constructor uses the equivalent GApplication constructor | |
| 123 | 112 | * to set the parameter filename to "<name>.par" and the log filename to |
| 124 | - * "<name>".log. The parameters will be loaded from the parameter file. | |
| 125 | - * In addition, the constructor opens the log file. | |
| 126 | - * | |
| 127 | - * If the "--help" option is provided as command line argument a help text | |
| 128 | - * about the usage of the ctool will be shown in the console and the ctool | |
| 129 | - * will exit. No log file will be opened in that case. | |
| 113 | + * "<name>".log. The constructor opens the log file. | |
| 130 | 114 | ***************************************************************************/ |
| 131 | -ctool::ctool(const std::string& name, | |
| 132 | - const std::string& version, | |
| 133 | - const std::vector<std::string>& args) : GApplication(name, version, args) | |
| 115 | +ctool::ctool(const std::string& name, | |
| 116 | + const std::string& version, | |
| 117 | + const GApplicationPars& pars) : GApplication(name, version, pars) | |
| 134 | 118 | { |
| 135 | - // Catch --help option before doing anything else | |
| 136 | - if (need_help()) { | |
| 137 | - provide_help(); | |
| 138 | - exit(0); | |
| 139 | - } | |
| 140 | - | |
| 141 | 119 | // Initialise members |
| 142 | 120 | init_members(); |
| 143 | 121 | |
| 144 | - // If CTOOLS environment variable is set and if a parameter exists in | |
| 145 | - // the syspfiles folder then set syspfiles folder and reload parameter | |
| 146 | - // file | |
| 147 | - char* ptr = std::getenv("CTOOLS"); | |
| 148 | - if (ptr != NULL) { | |
| 149 | - std::string path = std::string(ptr) + "/syspfiles"; | |
| 150 | - std::string filename = path + "/" + par_filename(); | |
| 151 | - if (access(filename.c_str(), R_OK) == 0) { | |
| 152 | - m_pars.clear(); | |
| 153 | - m_pars.syspfiles(path); | |
| 154 | - m_pars.load(par_filename(), m_args); | |
| 155 | - } | |
| 156 | - } | |
| 157 | - | |
| 158 | 122 | // Open the log file |
| 159 | 123 | logFileOpen(); |
| 160 | 124 | |
| ... | ... | @@ -195,19 +159,8 @@ ctool::ctool(const std::string& name, |
| 195 | 159 | // Initialise members |
| 196 | 160 | init_members(); |
| 197 | 161 | |
| 198 | - // If CTOOLS environment variable is set and if a parameter exists in | |
| 199 | - // the syspfiles folder then set syspfiles folder and reload parameter | |
| 200 | - // file | |
| 201 | - char* ptr = std::getenv("CTOOLS"); | |
| 202 | - if (ptr != NULL) { | |
| 203 | - std::string path = std::string(ptr) + "/syspfiles"; | |
| 204 | - std::string filename = path + "/" + par_filename(); | |
| 205 | - if (access(filename.c_str(), R_OK) == 0) { | |
| 206 | - m_pars.clear(); | |
| 207 | - m_pars.syspfiles(path); | |
| 208 | - m_pars.load(par_filename(), m_args); | |
| 209 | - } | |
| 210 | - } | |
| 162 | + // Synchronise parameter files | |
| 163 | + sync_pfiles(); | |
| 211 | 164 | |
| 212 | 165 | // Open the log file |
| 213 | 166 | logFileOpen(); |
| ... | ... | @@ -370,6 +323,33 @@ void ctool::free_members(void) |
| 370 | 323 | |
| 371 | 324 | |
| 372 | 325 | /***********************************************************************//** |
| 326 | + * @brief Synchronise parameter files | |
| 327 | + * | |
| 328 | + * Make sure that the structure of the parameter files in the syspfiles | |
| 329 | + * folder is used as a reference. | |
| 330 | + ***************************************************************************/ | |
| 331 | +void ctool::sync_pfiles(void) | |
| 332 | +{ | |
| 333 | + // If CTOOLS environment variable is set and if a parameter file exists | |
| 334 | + // in the syspfiles folder then set syspfiles folder and reload | |
| 335 | + // parameter file | |
| 336 | + char* ptr = std::getenv("CTOOLS"); | |
| 337 | + if (ptr != NULL) { | |
| 338 | + std::string path = std::string(ptr) + "/syspfiles"; | |
| 339 | + std::string filename = path + "/" + par_filename(); | |
| 340 | + if (access(filename.c_str(), R_OK) == 0) { | |
| 341 | + m_pars.clear(); | |
| 342 | + m_pars.syspfiles(path); | |
| 343 | + m_pars.load(par_filename(), m_args); | |
| 344 | + } | |
| 345 | + } | |
| 346 | + | |
| 347 | + // Return | |
| 348 | + return; | |
| 349 | +} | |
| 350 | + | |
| 351 | + | |
| 352 | +/***********************************************************************//** | |
| 373 | 353 | * @brief Setup observation container |
| 374 | 354 | * |
| 375 | 355 | * @param[in] obs Observation container | ... | ... |
src/support/ctool.hpp
| ... | ... | @@ -52,9 +52,9 @@ public: |
| 52 | 52 | // Constructors and destructors |
| 53 | 53 | ctool(const std::string& name, |
| 54 | 54 | const std::string& version); |
| 55 | - ctool(const std::string& name, | |
| 56 | - const std::string& version, | |
| 57 | - const std::vector<std::string>& args); | |
| 55 | + ctool(const std::string& name, | |
| 56 | + const std::string& version, | |
| 57 | + const GApplicationPars& pars); | |
| 58 | 58 | ctool(const std::string& name, |
| 59 | 59 | const std::string& version, |
| 60 | 60 | int argc, |
| ... | ... | @@ -79,10 +79,11 @@ public: |
| 79 | 79 | protected: |
| 80 | 80 | #endif |
| 81 | 81 | // Protected methods |
| 82 | - void init_members(void); | |
| 83 | - void copy_members(const ctool& app); | |
| 84 | - void free_members(void); | |
| 85 | - const bool& read_ahead(void) const; | |
| 82 | + void init_members(void); | |
| 83 | + void copy_members(const ctool& app); | |
| 84 | + void free_members(void); | |
| 85 | + void sync_pfiles(void); | |
| 86 | + const bool& read_ahead(void) const; | |
| 86 | 87 | |
| 87 | 88 | // Protected high-level setup methods |
| 88 | 89 | void setup_observations(GObservations& obs, const bool& response = true, |
| ... | ... | @@ -154,7 +155,7 @@ protected: |
| 154 | 155 | protected: |
| 155 | 156 | // Protected methods |
| 156 | 157 | void provide_help(void) const; |
| 157 | - | |
| 158 | + | |
| 158 | 159 | // Protected members |
| 159 | 160 | bool m_use_xml; //!< Use XML file instead of FITS file for observations |
| 160 | 161 | }; | ... | ... |