Commit 630e281e4632ce407c56d4668c62f3c8a8d3c4ec
1 parent
997dc354
Added default argument to extno() and extver()
Integrate code (default extno and extver handling in GFilename).
Showing
4 changed files
with
67 additions
and
29 deletions
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& 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& 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 | } | ... | ... |