1 #ifndef teca_threaded_programmable_algorithm_h
2 #define teca_threaded_programmable_algorithm_h
4 #include "teca_metadata.h"
5 #include "teca_dataset.h"
6 #include "teca_threaded_algorithm.h"
7 #include "teca_programmable_algorithm.h"
73 virtual int set_name(
const std::string &name);
76 {
return this->class_name; }
91 void use_default_report_action();
92 void use_default_request_action();
93 void use_default_execute_action();
103 TECA_ALGORITHM_CALLBACK_PROPERTY(
104 report_callback_t, report_callback)
116 TECA_ALGORITHM_CALLBACK_PROPERTY(
117 request_callback_t, request_callback)
128 TECA_ALGORITHM_CALLBACK_PROPERTY(
129 threaded_execute_callback_t, execute_callback)
136 const std::vector<teca_metadata> &input_md)
override;
138 std::vector<teca_metadata> get_upstream_request(
140 const std::vector<teca_metadata> &input_md,
143 const_p_teca_dataset execute(
unsigned int port,
144 const std::vector<const_p_teca_dataset> &input_data,
148 report_callback_t report_callback;
149 request_callback_t request_callback;
150 threaded_execute_callback_t execute_callback;