Commit 630e281e4632ce407c56d4668c62f3c8a8d3c4ec

Authored by Jürgen Knödlseder
1 parent 997dc354

Added default argument to extno() and extver()

Integrate code (default extno and extver handling in GFilename).
include/GFilename.hpp
... ... @@ -61,8 +61,8 @@ public:
61 61 int length(void) const;
62 62 const std::string& filename(void) const;
63 63 std::string extname(const std::string& defaultname = "") const;
64   - const int& extno(void) const;
65   - const int& extver(void) const;
  64 + int extno(const int& defaultno = -1) const;
  65 + int extver(const int& defaultver = 0) const;
66 66 bool has_extname(void) const;
67 67 bool has_extno(void) const;
68 68 bool has_extver(void) const;
... ... @@ -77,7 +77,7 @@ protected:
77 77  
78 78 // Protected members
79 79 std::string m_filename; //!< Filename (with stripped extension info)
80   - std::string m_extname; //!< Extension name
  80 + std::string m_extname; //!< Extension name ("": not set)
81 81 int m_extno; //!< Extension number (-1: not set)
82 82 int m_extver; //!< Extension version (0: not set)
83 83 };
... ... @@ -146,30 +146,6 @@ const std::string&amp; GFilename::filename(void) const
146 146  
147 147  
148 148 /***********************************************************************//**
149   - * @brief Return extension number
150   - *
151   - * @return Extension number (-1 if not set).
152   - ***************************************************************************/
153   -inline
154   -const int& GFilename::extno(void) const
155   -{
156   - return (m_extno);
157   -}
158   -
159   -
160   -/***********************************************************************//**
161   - * @brief Return extension version
162   - *
163   - * @return Extension version (0 if not set).
164   - ***************************************************************************/
165   -inline
166   -const int& GFilename::extver(void) const
167   -{
168   - return (m_extver);
169   -}
170   -
171   -
172   -/***********************************************************************//**
173 149 * @brief Signal if filename has an extension name
174 150 *
175 151 * @return True if filename has an extension name, false otherwise.
... ...
pyext/GFilename.i
... ... @@ -53,8 +53,8 @@ public:
53 53 int length(void) const;
54 54 const std::string& filename(void) const;
55 55 std::string extname(const std::string& defaultname = "") const;
56   - const int& extno(void) const;
57   - const int& extver(void) const;
  56 + int extno(const int& defaultno = -1) const;
  57 + int extver(const int& defaultver = 0) const;
58 58 bool has_extname(void) const;
59 59 bool has_extno(void) const;
60 60 bool has_extver(void) const;
... ...
src/support/GFilename.cpp
... ... @@ -225,6 +225,56 @@ std::string GFilename::extname(const std::string&amp; defaultname) const
225 225  
226 226  
227 227 /***********************************************************************//**
  228 + * @brief Return extension number
  229 + *
  230 + * @param[in] defaultno Default extension number (default: -11).
  231 + * @return Integer containing extension number.
  232 + *
  233 + * Returns the extension number. If no extension number is given the number
  234 + * provided by the @p defaultno argument will be used. By default, the
  235 + * @p defaultno parameter is set to -1.
  236 + ***************************************************************************/
  237 +int GFilename::extno(const int& defaultno) const
  238 +{
  239 + // Set the extension number
  240 + int extno = m_extno;
  241 +
  242 + // If no extension number is set, the use the default extension number
  243 + if (!has_extno()) {
  244 + extno = defaultno;
  245 + }
  246 +
  247 + // Return extension number
  248 + return (extno);
  249 +}
  250 +
  251 +
  252 +/***********************************************************************//**
  253 + * @brief Return extension version number
  254 + *
  255 + * @param[in] defaultver Default extension version number (default: 0).
  256 + * @return Integer containing extension version number.
  257 + *
  258 + * Returns the extension version number. If no extension version number is
  259 + * given the number provided by the @p defaultver argument will be used. By
  260 + * default, the @p defaultextver parameter is set to 0.
  261 + ***************************************************************************/
  262 +int GFilename::extver(const int& defaultver) const
  263 +{
  264 + // Set the extension version
  265 + int extver = m_extver;
  266 +
  267 + // If no extension version is set, the use the default extension version
  268 + if (!has_extver()) {
  269 + extver = defaultver;
  270 + }
  271 +
  272 + // Return extension version
  273 + return (extver);
  274 +}
  275 +
  276 +
  277 +/***********************************************************************//**
228 278 * @brief Print file name information
229 279 *
230 280 * @param[in] chatter Chattiness (default: NORMAL).
... ...
test/test_GSupport.cpp
... ... @@ -768,6 +768,18 @@ void TestGSupport::test_filename(void)
768 768 "Expected \"LUCKY\" extension name, "
769 769 "found \""+filename.extname()+"\"");
770 770  
  771 + // Test default extension number
  772 + filename = "myfile.fits";
  773 + test_value(filename.extno(1), 1);
  774 + filename = "myfile.fits[3]";
  775 + test_value(filename.extno(1), 3);
  776 +
  777 + // Test default extension version
  778 + filename = "myfile.fits";
  779 + test_value(filename.extver(1), 1);
  780 + filename = "myfile.fits[3,3]";
  781 + test_value(filename.extver(1), 3);
  782 +
771 783 // Return
772 784 return;
773 785 }
... ...