1 #ifndef WIRECELL_IQUEUEDOUTNODE 2 #define WIRECELL_IQUEUEDOUTNODE 6 #include <boost/any.hpp> 17 typedef std::shared_ptr<IQueuedoutNodeBase>
pointer;
24 virtual bool operator()(
const boost::any& anyin, queuedany& out) = 0;
36 template <
typename InputType,
typename OutputType>
40 typedef std::shared_ptr<IQueuedoutNodeBase>
pointer;
52 const input_pointer& in = boost::any_cast<
const input_pointer&>(anyin);
54 bool ok = (*this)(in, outq);
55 if (!ok)
return false;
63 virtual bool operator()(
const input_pointer& in, output_queue& outq) = 0;
67 return std::vector<std::string>{
typeid(input_type).
name()};
71 return std::vector<std::string>{
typeid(output_type).
name()};
virtual std::vector< std::string > input_types()
virtual ~IQueuedoutNode()
virtual ~IQueuedoutNodeBase()
virtual bool operator()(const boost::any &anyin, queuedany &out)=0
The calling signature:
std::deque< output_pointer > output_queue
std::deque< boost::any > queuedany
std::shared_ptr< IQueuedoutNodeBase > pointer
std::shared_ptr< IQueuedoutNodeBase > pointer
virtual NodeCategory category()
Return the behavior category type.
virtual std::vector< std::string > output_types()
std::shared_ptr< const OutputType > output_pointer
virtual bool operator()(const boost::any &anyin, queuedany &outanyq)
The calling signature:
std::shared_ptr< const InputType > input_pointer
virtual int concurrency()
By default assume all subclasses maintain state.