SourceXtractorPlusPlus  0.13
Please provide a description of the project.
FitsFileManager.h
Go to the documentation of this file.
1 
17 /*
18  * FitsFileManager.h
19  *
20  * Created on: Sep 19, 2019
21  * Author: mschefer
22  */
23 
24 #ifndef _SEFRAMEWORK_FITS_FITSFILEMANAGER_H_
25 #define _SEFRAMEWORK_FITS_FITSFILEMANAGER_H_
26 
27 #include <memory>
28 #include <string>
29 #include <list>
30 #include <vector>
31 #include <unordered_map>
32 
33 #include <fitsio.h>
34 
35 namespace SourceXtractor {
36 
37 class FitsFile;
38 
39 class FitsFileManager : public std::enable_shared_from_this<FitsFileManager> {
40 public:
41 
42  FitsFileManager(unsigned int max_open_files = 500);
43  virtual ~FitsFileManager();
44 
45  void closeAllFiles();
46 
48  if (s_instance == nullptr) {
49  s_instance = std::make_shared<FitsFileManager>();
50  }
51  return s_instance;
52  }
53 
54  std::shared_ptr<FitsFile> getFitsFile(const std::string& filename, bool writeable=false);
55 
57 
60 
61 private:
63 
64  unsigned int m_max_open_files;
66 
68 
69  void closeExtraFiles();
70 };
71 
72 }
73 
74 #endif /* _SEFRAMEWORK_FITS_FITSFILEMANAGER_H_ */
SourceXtractor::FitsFileManager::~FitsFileManager
virtual ~FitsFileManager()
Definition: FitsFileManager.cpp:42
std::string
STL class.
std::shared_ptr
STL class.
std::list< std::string >
conf.filename
string filename
Definition: conf.py:63
SourceXtractor::FitsFileManager::m_max_open_files
unsigned int m_max_open_files
Definition: FitsFileManager.h:64
SourceXtractor::FitsFileManager::m_open_files
std::list< std::string > m_open_files
Definition: FitsFileManager.h:65
SourceXtractor::FitsFileManager::closeExtraFiles
void closeExtraFiles()
Definition: FitsFileManager.cpp:68
SourceXtractor::FitsFileManager::closeAndPurgeFile
void closeAndPurgeFile(const std::string &filename)
Definition: FitsFileManager.cpp:79
SourceXtractor
Definition: Aperture.h:30
SourceXtractor::FitsFileManager::getInstance
static std::shared_ptr< FitsFileManager > getInstance()
Definition: FitsFileManager.h:47
std::enable_shared_from_this
SourceXtractor::FitsFileManager::s_instance
static std::shared_ptr< FitsFileManager > s_instance
Definition: FitsFileManager.h:67
SourceXtractor::FitsFileManager::closeAllFiles
void closeAllFiles()
Definition: FitsFileManager.cpp:46
SourceXtractor::FitsFileManager
Definition: FitsFileManager.h:39
SourceXtractor::FitsFileManager::m_fits_files
std::unordered_map< std::string, std::shared_ptr< FitsFile > > m_fits_files
Definition: FitsFileManager.h:62
SourceXtractor::FitsFileManager::reportOpenedFile
void reportOpenedFile(const std::string &filename)
Definition: FitsFileManager.cpp:88
SourceXtractor::FitsFileManager::getFitsFile
std::shared_ptr< FitsFile > getFitsFile(const std::string &filename, bool writeable=false)
Definition: FitsFileManager.cpp:52
std::unordered_map
STL class.
SourceXtractor::FitsFileManager::FitsFileManager
FitsFileManager(unsigned int max_open_files=500)
Definition: FitsFileManager.cpp:39
SourceXtractor::FitsFileManager::reportClosedFile
void reportClosedFile(const std::string &filename)
Definition: FitsFileManager.cpp:75