Public Types | Public Member Functions | List of all members
WireCell::IJoinNode< InputTuple, OutputType > Class Template Referenceabstract

#include <IJoinNode.h>

Inheritance diagram for WireCell::IJoinNode< InputTuple, OutputType >:
WireCell::IJoinNodeBase WireCell::INode WireCell::IComponent< INode > WireCell::Interface

Public Types

typedef tuple_helper< InputTuple > port_helper_type
 
typedef port_helper_type::template WrappedConst< std::shared_ptr >::type input_tuple_type
 
typedef tuple_helper< input_tuple_typeinput_helper_type
 
typedef OutputType output_type
 
typedef std::shared_ptr< const OutputType > output_pointer
 
- Public Types inherited from WireCell::IJoinNodeBase
typedef std::shared_ptr< IJoinNodeBasepointer
 
typedef std::vector< boost::any > any_vector
 
- Public Types inherited from WireCell::INode
enum  NodeCategory {
  unknown, sourceNode, sinkNode, functionNode,
  queuedoutNode, joinNode, splitNode, faninNode,
  fanoutNode, multioutNode, hydraNode
}
 
- Public Types inherited from WireCell::IComponent< INode >
typedef std::shared_ptr< INodepointer
 Access subclass facet by pointer. More...
 
typedef std::vector< pointervector
 Vector of shared pointers. More...
 
- Public Types inherited from WireCell::Interface
typedef std::shared_ptr< Interfacepointer
 

Public Member Functions

virtual ~IJoinNode ()
 
virtual bool operator() (const any_vector &anyv, boost::any &anyout)
 The calling signature: More...
 
virtual bool operator() (const input_tuple_type &intup, output_pointer &out)=0
 
virtual std::vector< std::stringinput_types ()
 
virtual std::vector< std::stringoutput_types ()
 
- Public Member Functions inherited from WireCell::IJoinNodeBase
virtual ~IJoinNodeBase ()
 
virtual NodeCategory category ()
 Return the behavior category type. More...
 
virtual int concurrency ()
 Join nodes can usually do their thing stateless. More...
 
- Public Member Functions inherited from WireCell::INode
virtual ~INode ()
 
virtual std::string signature ()=0
 
virtual void reset ()
 
- Public Member Functions inherited from WireCell::IComponent< INode >
virtual ~IComponent ()
 
- Public Member Functions inherited from WireCell::Interface
virtual ~Interface ()
 

Detailed Description

template<typename InputTuple, typename OutputType>
class WireCell::IJoinNode< InputTuple, OutputType >

Definition at line 42 of file IJoinNode.h.

Member Typedef Documentation

template<typename InputTuple, typename OutputType>
typedef tuple_helper<input_tuple_type> WireCell::IJoinNode< InputTuple, OutputType >::input_helper_type

Definition at line 47 of file IJoinNode.h.

template<typename InputTuple, typename OutputType>
typedef port_helper_type::template WrappedConst<std::shared_ptr>::type WireCell::IJoinNode< InputTuple, OutputType >::input_tuple_type

Definition at line 46 of file IJoinNode.h.

template<typename InputTuple, typename OutputType>
typedef std::shared_ptr<const OutputType> WireCell::IJoinNode< InputTuple, OutputType >::output_pointer

Definition at line 51 of file IJoinNode.h.

template<typename InputTuple, typename OutputType>
typedef OutputType WireCell::IJoinNode< InputTuple, OutputType >::output_type

Definition at line 49 of file IJoinNode.h.

template<typename InputTuple, typename OutputType>
typedef tuple_helper<InputTuple> WireCell::IJoinNode< InputTuple, OutputType >::port_helper_type

Definition at line 45 of file IJoinNode.h.

Constructor & Destructor Documentation

template<typename InputTuple, typename OutputType>
virtual WireCell::IJoinNode< InputTuple, OutputType >::~IJoinNode ( )
inlinevirtual

Definition at line 53 of file IJoinNode.h.

53 {}

Member Function Documentation

template<typename InputTuple, typename OutputType>
virtual std::vector<std::string> WireCell::IJoinNode< InputTuple, OutputType >::input_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 70 of file IJoinNode.h.

70  {
71  port_helper_type iph;
72  return iph.type_names();
73  }
tuple_helper< InputTuple > port_helper_type
Definition: IJoinNode.h:45
template<typename InputTuple, typename OutputType>
virtual bool WireCell::IJoinNode< InputTuple, OutputType >::operator() ( const any_vector anyin,
boost::any &  anyout 
)
inlinevirtual

The calling signature:

Implements WireCell::IJoinNodeBase.

Definition at line 55 of file IJoinNode.h.

55  {
57  auto intup = ih.from_any(anyv);
58 
59  output_pointer out;
60  bool ok = (*this)(intup, out);
61  if (ok) {
62  anyout = out;
63  }
64  return ok;
65  }
tuple_helper< input_tuple_type > input_helper_type
Definition: IJoinNode.h:47
std::shared_ptr< const OutputType > output_pointer
Definition: IJoinNode.h:51
template<typename InputTuple, typename OutputType>
virtual bool WireCell::IJoinNode< InputTuple, OutputType >::operator() ( const input_tuple_type intup,
output_pointer out 
)
pure virtual
template<typename InputTuple, typename OutputType>
virtual std::vector<std::string> WireCell::IJoinNode< InputTuple, OutputType >::output_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 75 of file IJoinNode.h.

75  {
76  return std::vector<std::string>{typeid(output_type).name()};
77  }
static QCString name
Definition: declinfo.cpp:673
OutputType output_type
Definition: IJoinNode.h:49

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