00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef MOOCHO_TRACKER_XML_SUMMARY_HPP
00030 #define MOOCHO_TRACKER_XML_SUMMARY_HPP
00031
00032 #include "IterationPack_Algorithm.hpp"
00033 #include "IterationPack_AlgorithmTracker.hpp"
00034 #include "MoochoPack_Types.hpp"
00035
00036 namespace MoochoPack {
00037
00038
00039 using IterationPack::Algorithm;
00040 using IterationPack::EAlgoReturn;
00041
00045 class MoochoTrackerXMLSummary
00046 : public IterationPack::AlgorithmTracker
00047 {
00048 public:
00049
00051 MoochoTrackerXMLSummary(
00052 const Teuchos::RCP<std::ostream> &journal_out
00053 ,const std::string xml_filename
00054 ,const std::string problem_name
00055 ,const std::string algorithm_description
00056 );
00057
00059
00060
00062
00063
00065
00066
00067 void output_pre_file() const;
00068
00071
00073 void output_iteration(const Algorithm& algo) const;
00075 void output_final(const Algorithm& algo, EAlgoReturn algo_return) const;
00076
00078
00079 protected:
00080
00082 void open_problem_element( std::ostream& out, const Algorithm& algo) const;
00083 void close_problem_element( std::ostream& out) const;
00084
00085 private:
00086
00087 mutable value_type obj_value_;
00088 mutable value_type c_norm_value_;
00089
00090 std::string xml_filename_;
00091 std::string problem_name_;
00092 std::string algorithm_description_;
00093
00094
00095 MoochoTrackerXMLSummary();
00096
00097 };
00098
00099 }
00100
00101 #endif // RSQP_TRACK_SUMMARY_STD_H