1 #ifndef WIRECELL_IJOINNODE 2 #define WIRECELL_IJOINNODE 8 #include <boost/any.hpp> 21 typedef std::shared_ptr<IJoinNodeBase>
pointer;
28 virtual bool operator()(
const any_vector& anyin, boost::any& anyout) = 0;
41 template <
typename InputTuple,
typename OutputType>
57 auto intup = ih.from_any(anyv);
60 bool ok = (*this)(intup, out);
67 virtual bool operator()(
const input_tuple_type& intup, output_pointer& out) = 0;
72 return iph.type_names();
76 return std::vector<std::string>{
typeid(output_type).
name()};
virtual NodeCategory category()
Return the behavior category type.
virtual std::vector< std::string > input_types()
virtual bool operator()(const any_vector &anyin, boost::any &anyout)=0
The calling signature:
std::vector< boost::any > any_vector
port_helper_type::template WrappedConst< std::shared_ptr >::type input_tuple_type
tuple_helper< InputTuple > port_helper_type
tuple_helper< input_tuple_type > input_helper_type
std::shared_ptr< const OutputType > output_pointer
virtual std::vector< std::string > output_types()
virtual bool operator()(const any_vector &anyv, boost::any &anyout)
The calling signature:
virtual int concurrency()
Join nodes can usually do their thing stateless.
std::shared_ptr< IJoinNodeBase > pointer