1 #ifndef WIRECELL_ISOURCENODE 2 #define WIRECELL_ISOURCENODE 6 #include <boost/any.hpp> 16 typedef std::shared_ptr<ISourceNodeBase>
pointer;
29 template <
typename OutputType>
36 typedef std::shared_ptr<signature_type>
pointer;
48 return typeid(signature_type).
name();
53 bool ok = (*this)(out);
54 if (!ok)
return false;
61 virtual bool operator()(output_pointer& out) = 0;
65 return std::vector<std::string>{
typeid(output_type).
name()};
ISourceNode< OutputType > signature_type
virtual bool operator()(boost::any &anyout)
virtual std::string signature()
Set the signature for all subclasses.
virtual bool operator()(boost::any &anyout)=0
virtual NodeCategory category()
Return the behavior category type.
std::shared_ptr< const OutputType > output_pointer
virtual NodeCategory category()
Return the behavior category type.
virtual std::vector< std::string > output_types()
virtual ~ISourceNodeBase()
std::shared_ptr< ISourceNodeBase > pointer
std::shared_ptr< signature_type > pointer