#ifndef IMAGEANALYSIS_IMAGEHISTORY_H #define IMAGEANALYSIS_IMAGEHISTORY_H #include <imageanalysis/ImageTypedefs.h> #include <casacore/casa/namespace.h> namespace casac { class variant; } namespace casa { template <class T> class ImageHistory { // <summary> // Top level interface accessing image history data. // </summary> // <reviewed reviewer="" date="" tests="" demos=""> // </reviewed> // <prerequisite> // </prerequisite> // <etymology> // Image History access // </etymology> // <synopsis> // Top level interface for accessing image history. // </synopsis> public: ImageHistory() = delete; ImageHistory(const SPIIT image); // destructor ~ImageHistory() {} // add a line to the history void addHistory( const casacore::String& origin, const casacore::String& history ); void addHistory( const casacore::LogOrigin& origin, const casacore::String& history ); // add multiple history lines, all which have the same origin void addHistory( const casacore::String& origin, const std::vector<casacore::String>& history ); void addHistory( const casacore::LogOrigin& origin, const std::vector<casacore::String>& history ); void addHistory( const casacore::String& origin, const std::vector<string>& history ); void addHistory( const std::vector<std::pair<casacore::LogOrigin, casacore::String> >& history ); void addHistory( const std::vector<std::pair<casacore::String, casacore::String>>& history ); // erase all messages. Cannot be undone! void clear(); std::vector<casacore::String> get(casacore::Bool list) const; std::vector<string> getAsStdStrings(casacore::Bool list) const; // return a vector<String> containing a formatted application // summary. Nothing is written to them image that is useful for // history writing. static std::vector<std::pair<casacore::String, casacore::String>> getApplicationHistory( const casacore::LogOrigin& origin, const casacore::String& taskname, const vector<casacore::String>& paramNames, const vector<casac::variant>& paramValues, const casacore::String& imageName ); // <group> //Append the specified image's history to this image's history template <class U> void append(SPCIIU image); template <class U> void append(SPIIU image); // </group> casacore::String getClass() const { const static casacore::String s = "ImageHistory"; return s; } casacore::LogIO& getLogSink(); private: const SPIIT _image; }; } #ifndef AIPS_NO_TEMPLATE_SRC #include <imageanalysis/ImageAnalysis/ImageHistory.tcc> #endif #endif