TECA
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
teca_programmable_reduce Class Reference

#include <teca_programmable_reduce.h>

Inheritance diagram for teca_programmable_reduce:
teca_index_reduce teca_threaded_algorithm teca_algorithm

Public Member Functions

std::shared_ptr< teca_programmable_reduceshared_from_this ()
 
std::shared_ptr< teca_programmable_reduce const > shared_from_this () const
 
 teca_programmable_reduce (const teca_programmable_reduce &src)=delete
 
 teca_programmable_reduce (teca_programmable_reduce &&src)=delete
 
teca_programmable_reduceoperator= (const teca_programmable_reduce &src)=delete
 
teca_programmable_reduceoperator= (teca_programmable_reduce &&src)=delete
 
int set_name (const std::string &name)
 
const char * get_class_name () const override
 
void set_report_callback (const report_callback_t &v)
 
const report_callback_t & get_report_callback () const
 
report_callback_t & get_report_callback ()
 
void set_request_callback (const request_callback_t &v)
 
const request_callback_t & get_request_callback () const
 
request_callback_t & get_request_callback ()
 
void set_reduce_callback (const reduce_callback_t &v)
 
const reduce_callback_t & get_reduce_callback () const
 
reduce_callback_t & get_reduce_callback ()
 
void set_finalize_callback (const finalize_callback_t &v)
 
const finalize_callback_t & get_finalize_callback () const
 
finalize_callback_t & get_finalize_callback ()
 
- Public Member Functions inherited from teca_index_reduce
 teca_index_reduce (const teca_index_reduce &src)=delete
 
 teca_index_reduce (teca_index_reduce &&src)=delete
 
teca_index_reduceoperator= (const teca_index_reduce &src)=delete
 
teca_index_reduceoperator= (teca_index_reduce &&src)=delete
 
void set_start_index (const long &v)
 
const long & get_start_index () const
 
void set_end_index (const long &v)
 
const long & get_end_index () const
 
- Public Member Functions inherited from teca_threaded_algorithm
std::shared_ptr< teca_threaded_algorithmshared_from_this ()
 
std::shared_ptr< teca_threaded_algorithm const > shared_from_this () const
 
 teca_threaded_algorithm (const teca_threaded_algorithm &src)=delete
 
 teca_threaded_algorithm (teca_threaded_algorithm &&src)=delete
 
teca_threaded_algorithmoperator= (const teca_threaded_algorithm &src)=delete
 
teca_threaded_algorithmoperator= (teca_threaded_algorithm &&src)=delete
 
const char * get_class_name () const override
 
void set_thread_pool_size (int n_threads)
 
unsigned int get_thread_pool_size () const noexcept
 
void set_verbose (const int &v)
 
const int & get_verbose () const
 
void set_bind_threads (const int &v)
 
const int & get_bind_threads () const
 
void set_stream_size (const int &v)
 
const int & get_stream_size () const
 
void set_poll_interval (const long long &v)
 
const long long & get_poll_interval () const
 
void set_data_request_queue (const p_teca_data_request_queue &queue)
 
- Public Member Functions inherited from teca_algorithm
 teca_algorithm (const teca_algorithm &src)=delete
 
 teca_algorithm (teca_algorithm &&src)=delete
 
teca_algorithmoperator= (const teca_algorithm &src)=delete
 
teca_algorithmoperator= (teca_algorithm &&src)=delete
 
void set_communicator (MPI_Comm comm)
 
MPI_Comm get_communicator ()
 
virtual teca_algorithm_output_port get_output_port (unsigned int port=0)
 
void set_input_connection (const teca_algorithm_output_port &port)
 
virtual void set_input_connection (unsigned int id, const teca_algorithm_output_port &port)
 
virtual void remove_input_connection (unsigned int id)
 
void clear_input_connections ()
 
const_p_teca_dataset get_output_data (unsigned int port=0)
 
void pop_cache (unsigned int port=0, int top=0)
 
void set_cache_size (unsigned int n)
 
virtual int update ()
 
virtual int update (unsigned int port)
 
virtual teca_metadata update_metadata (unsigned int port=0)
 
void set_executive (p_teca_algorithm_executive exe)
 
p_teca_algorithm_executive get_executive ()
 
virtual void to_stream (std::ostream &s) const
 
virtual void from_stream (std::istream &s)
 

Static Public Member Functions

static p_teca_programmable_reduce New ()
 
- Static Public Member Functions inherited from teca_threaded_algorithm
static p_teca_threaded_algorithm New ()
 

Protected Member Functions

p_teca_dataset reduce (const const_p_teca_dataset &left, const const_p_teca_dataset &right) override
 
p_teca_dataset finalize (const const_p_teca_dataset &input) override
 
std::vector< teca_metadatainitialize_upstream_request (unsigned int port, const std::vector< teca_metadata > &input_md, const teca_metadata &request) override
 
teca_metadata initialize_output_metadata (unsigned int port, const std::vector< teca_metadata > &input_md) override
 
- Protected Member Functions inherited from teca_index_reduce
std::vector< teca_metadataget_upstream_request (unsigned int port, const std::vector< teca_metadata > &input_md, const teca_metadata &request) override
 
const_p_teca_dataset execute (unsigned int port, const std::vector< const_p_teca_dataset > &input_data, const teca_metadata &request, int streaming) override
 
teca_metadata get_output_metadata (unsigned int port, const std::vector< teca_metadata > &input_md) override
 
- Protected Member Functions inherited from teca_threaded_algorithm
const_p_teca_dataset execute (unsigned int port, const std::vector< const_p_teca_dataset > &input_data, const teca_metadata &request) override
 
const_p_teca_dataset request_data (teca_algorithm_output_port &port, const teca_metadata &request) override
 
- Protected Member Functions inherited from teca_algorithm
void set_number_of_input_connections (unsigned int n)
 
void set_number_of_output_ports (unsigned int n)
 
virtual void set_modified ()
 
void set_modified (unsigned int port)
 
virtual teca_metadata get_cache_key (unsigned int port, const teca_metadata &request) const
 
virtual teca_metadata get_output_metadata (teca_algorithm_output_port &current)
 
virtual int validate_cache (teca_algorithm_output_port &current)
 
virtual void clear_modified (teca_algorithm_output_port current)
 
const_p_teca_dataset get_output_data (unsigned int port, const teca_metadata &request)
 
int cache_output_data (unsigned int port, const teca_metadata &request, const_p_teca_dataset &data)
 
void clear_cache (unsigned int port)
 
unsigned int get_number_of_input_connections ()
 
teca_algorithm_output_port & get_input_connection (unsigned int i)
 
void clear_modified (unsigned int port)
 
int get_modified (unsigned int port) const
 

Detailed Description

callbacks implement a reduction on teca_datasets over time steps. user provides reduce callable that takes 2 datasets and produces a thrid reduced dataset. callbacks should be threadsafe as this is a parallel operation. see teca_index_reduce for details of parallelization.


The documentation for this class was generated from the following files: