diff --git a/ChangeLog b/ChangeLog index 13b33e4..62e95d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,9 @@ -2016-08-05 +2016-08-06 * Version 1.2.0 released ========================= + Add GApplication::pars() and GApplicationPar::current_value() methods (#1838) Add GLog is_open(), is_empty() and written_size() methods (#1837) Fix invalid pointer problem in GLog copies (#1823) Fix GSkyMap::publish() bug for empty sky maps (#1835) diff --git a/NEWS b/NEWS index 2139e4f..d1ff608 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ New Features and Important Changes in GammaLib 1.2.0 -5 August 2016 +6 August 2016 1. Introduction @@ -27,6 +27,8 @@ The following methods have been added: - GApplication::log_header1() - GApplication::log_header2() - GApplication::log_header3() +- GApplication::pars() +- GApplicationPar::current_value() - GLog::is_open() - GLog::is_empty() - GLog::written_size() @@ -83,6 +85,11 @@ the number of characters on disk. The GLog::max_size() method has been renamed to GLog::buffer_size since this is more explicit (#1837). +GApplication::pars() methods have been added to allow to retrieve or to set all +application parameters. The GApplicationPar::current_value() method has been +added to retrieve the current parameter value without querying for the parameter +(#1838). + 5. Base module -------------- diff --git a/README.md b/README.md index 08e5f1b..ce60b07 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ GammaLib information ==================== -* Version: 1.2.0.dev1 (5 August 2016) +* Version: 1.2.0.dev1 (6 August 2016) * Author: Juergen Knoedlseder (jurgen.knodlseder@irap.omp.eu) [![Build Status](https://cta-jenkins.irap.omp.eu/buildStatus/icon?job=gammalib-integrate-os)](https://cta-jenkins.irap.omp.eu/job/gammalib-integrate-os/) diff --git a/include/GApplication.hpp b/include/GApplication.hpp index 24370f1..69474f1 100644 --- a/include/GApplication.hpp +++ b/include/GApplication.hpp @@ -63,47 +63,49 @@ public: const GApplicationPar& operator[](const std::string& name) const; // Methods - void clear(void); - GApplication* clone(void) const; - std::string classname(void) const; - const std::string& name(void) const; - const std::string& version(void) const; - double telapse(void) const; - double celapse(void) const; - void logFileOpen(const bool& clobber = true); - void logFileClose(void); - bool logTerse(void) const; - bool logNormal(void) const; - bool logExplicit(void) const; - bool logVerbose(void) const; - bool logDebug(void) const; - bool clobber(void) const; - bool has_par(const std::string& name) const; - const std::string& par_filename(void) const; - const std::string& log_filename(void) const; - void log_header(void); - void log_trailer(void); - void log_string(const GChatter& chatter, - const std::string& string, - const bool& linefeed = true); - void log_value(const GChatter& chatter, - const std::string& name, - const std::string& value); - void log_value(const GChatter& chatter, - const std::string& name, - const int& value); - void log_value(const GChatter& chatter, - const std::string& name, - const double& value); - void log_header1(const GChatter& chatter, - const std::string& header); - void log_header2(const GChatter& chatter, - const std::string& header); - void log_header3(const GChatter& chatter, - const std::string& header); - void log_parameters(const GChatter& chatter); - const bool& need_help(void) const; - std::string print(const GChatter& chatter = NORMAL) const; + void clear(void); + GApplication* clone(void) const; + std::string classname(void) const; + const std::string& name(void) const; + const std::string& version(void) const; + double telapse(void) const; + double celapse(void) const; + void logFileOpen(const bool& clobber = true); + void logFileClose(void); + bool logTerse(void) const; + bool logNormal(void) const; + bool logExplicit(void) const; + bool logVerbose(void) const; + bool logDebug(void) const; + bool clobber(void) const; + bool has_par(const std::string& name) const; + const std::string& par_filename(void) const; + const std::string& log_filename(void) const; + void log_header(void); + void log_trailer(void); + void log_string(const GChatter& chatter, + const std::string& string, + const bool& linefeed = true); + void log_value(const GChatter& chatter, + const std::string& name, + const std::string& value); + void log_value(const GChatter& chatter, + const std::string& name, + const int& value); + void log_value(const GChatter& chatter, + const std::string& name, + const double& value); + void log_header1(const GChatter& chatter, + const std::string& header); + void log_header2(const GChatter& chatter, + const std::string& header); + void log_header3(const GChatter& chatter, + const std::string& header); + void log_parameters(const GChatter& chatter); + const bool& need_help(void) const; + const GApplicationPars& pars(void) const; + void pars(const GApplicationPars& pars); + std::string print(const GChatter& chatter = NORMAL) const; // Public members GLog log; //!< Application logger @@ -243,4 +245,29 @@ const bool& GApplication::need_help(void) const return (m_need_help); } + +/***********************************************************************//** + * @brief Return application parameters + * + * @return Application parameters. + ***************************************************************************/ +inline +const GApplicationPars& GApplication::pars(void) const +{ + return m_pars; +} + + +/***********************************************************************//** + * @brief Set application parameters + * + * @param[in] pars Application parameters. + ***************************************************************************/ +inline +void GApplication::pars(const GApplicationPars& pars) +{ + m_pars = pars; + return; +} + #endif /* GAPPLICATION_HPP */ diff --git a/include/GApplicationPar.hpp b/include/GApplicationPar.hpp index 9992a62..fa30b59 100644 --- a/include/GApplicationPar.hpp +++ b/include/GApplicationPar.hpp @@ -78,6 +78,7 @@ public: bool boolean(void); int integer(void); double real(void); + const std::string& current_value(void) const; const std::string& min(void) const; const std::string& max(void) const; const std::string& prompt(void) const; @@ -181,6 +182,18 @@ const std::string& GApplicationPar::mode(void) const /***********************************************************************//** + * @brief Returns current parameter value without querying + * + * @return Current parameter value + ***************************************************************************/ +inline +const std::string& GApplicationPar::current_value(void) const +{ + return m_value; +} + + +/***********************************************************************//** * @brief Returns parameter minimum * * @return Parameter minimum diff --git a/pyext/GApplication.i b/pyext/GApplication.i index 2c1c35b..88e2b5d 100644 --- a/pyext/GApplication.i +++ b/pyext/GApplication.i @@ -60,43 +60,46 @@ public: // Ignore base class methods and make methods private in Python by // prepending an underscore - %ignore clear(); - %ignore clone() const; - %ignore classname() const; - %rename(_name) name() const; - %rename(_version) version() const; - %rename(_logTerse) logTerse() const; - %rename(_logNormal) logNormal() const; - %rename(_logExplicit) logExplicit() const; - %rename(_logVerbose) logVerbose() const; - %rename(_logDebug) logDebug() const; - %rename(_clobber) clobber() const; - %rename(_has_par) has_par(const std::string& name) const; - %rename(_par_filename) par_filename() const; - %rename(_log_filename) log_filename() const; - %rename(_log_header) log_header(); - %rename(_log_trailer) log_trailer(); - %rename(_need_help) need_help() const; + %ignore clear; + %ignore clone; + %ignore classname; + %rename(_name) name; + %rename(_version) version; + %rename(_logTerse) logTerse; + %rename(_logNormal) logNormal; + %rename(_logExplicit) logExplicit; + %rename(_logVerbose) logVerbose; + %rename(_logDebug) logDebug; + %rename(_clobber) clobber; + %rename(_has_par) has_par; + %rename(_par_filename) par_filename; + %rename(_log_filename) log_filename; + %rename(_log_header) log_header; + %rename(_log_trailer) log_trailer; + %rename(_need_help) need_help; %rename(_log) log; + %rename(_pars) pars; // Methods - void clear(void); - GApplication* clone(void) const; - std::string classname(void) const; - const std::string& name(void) const; - const std::string& version(void) const; - bool logTerse(void) const; - bool logNormal(void) const; - bool logExplicit(void) const; - bool logVerbose(void) const; - bool logDebug(void) const; - bool clobber(void) const; - bool has_par(const std::string& name) const; - const std::string& par_filename(void) const; - const std::string& log_filename(void) const; - void log_header(void); - void log_trailer(void); - const bool& need_help(void) const; + void clear(void); + GApplication* clone(void) const; + std::string classname(void) const; + const std::string& name(void) const; + const std::string& version(void) const; + bool logTerse(void) const; + bool logNormal(void) const; + bool logExplicit(void) const; + bool logVerbose(void) const; + bool logDebug(void) const; + bool clobber(void) const; + bool has_par(const std::string& name) const; + const std::string& par_filename(void) const; + const std::string& log_filename(void) const; + void log_header(void); + void log_trailer(void); + const bool& need_help(void) const; + const GApplicationPars& pars(void) const; + void pars(const GApplicationPars& pars); // Public members GLog log; //!< Application logger diff --git a/pyext/GApplicationPar.i b/pyext/GApplicationPar.i index deec490..29bd4a9 100644 --- a/pyext/GApplicationPar.i +++ b/pyext/GApplicationPar.i @@ -66,6 +66,7 @@ public: bool boolean(void); int integer(void); double real(void); + const std::string& current_value(void) const; const std::string& min(void) const; const std::string& max(void) const; const std::string& prompt(void) const;