1 #ifndef teca_cf_writer_h
2 #define teca_cf_writer_h
4 #include "teca_config.h"
6 #include "teca_threaded_algorithm.h"
7 #include "teca_metadata.h"
84 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
85 TECA_SET_ALGORITHM_PROPERTIES()
93 TECA_ALGORITHM_PROPERTY(std::
string, file_name)
103 TECA_ALGORITHM_PROPERTY(std::
string, date_format)
110 TECA_ALGORITHM_PROPERTY(
long, first_step)
117 TECA_ALGORITHM_PROPERTY(
long, last_step)
129 enum {invalid=0, number_of_steps=1, daily=2, monthly=3, seasonal=4, yearly=5};
130 TECA_ALGORITHM_PROPERTY_V(
int, layout)
132 void set_layout_to_number_of_steps() { this->set_layout(number_of_steps); }
133 void set_layout_to_daily() { this->set_layout(daily); }
134 void set_layout_to_monthly() { this->set_layout(monthly); }
135 void set_layout_to_seasonal() { this->set_layout(seasonal); }
136 void set_layout_to_yearly() { this->set_layout(yearly); }
139 int set_layout(
const std::string &layout);
144 if ((mode == number_of_steps) || (mode == daily) ||
145 (mode == monthly) || (mode == seasonal) || (mode == yearly))
158 TECA_ALGORITHM_PROPERTY(
unsigned int, steps_per_file)
165 TECA_ALGORITHM_PROPERTY(
int, mode_flags)
179 TECA_ALGORITHM_PROPERTY(
int, use_unlimited_dim)
189 TECA_ALGORITHM_PROPERTY(
int, compression_level)
197 TECA_ALGORITHM_PROPERTY(
int, flush_files)
207 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, point_array)
214 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, information_array)
225 const_p_teca_dataset execute(
unsigned int port,
226 const std::vector<const_p_teca_dataset> &input_data,
232 std::vector<
teca_metadata> get_upstream_request(
unsigned int port,
241 std::
string file_name;
242 std::
string date_format;
246 unsigned int steps_per_file;
248 int use_unlimited_dim;
249 int compression_level;
252 std::vector<std::
string> point_arrays;
253 std::vector<std::
string> information_arrays;
256 internals_t *internals;