Public Types | Public Member Functions | List of all members
WireCell::ISplitNode< InputType, OutputTuple > Class Template Referenceabstract

#include <ISplitNode.h>

Inheritance diagram for WireCell::ISplitNode< InputType, OutputTuple >:
WireCell::ISplitNodeBase WireCell::INode WireCell::IComponent< INode > WireCell::Interface

Public Types

typedef tuple_helper< OutputTuple > port_helper_type
 
typedef port_helper_type::template WrappedConst< std::shared_ptr >::type output_tuple_type
 
typedef tuple_helper< output_tuple_typeoutput_helper_type
 
typedef InputType input_type
 
typedef std::shared_ptr< const InputType > input_pointer
 
- Public Types inherited from WireCell::ISplitNodeBase
typedef std::shared_ptr< ISplitNodeBasepointer
 
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 ~ISplitNode ()
 
virtual bool operator() (const boost::any &anyin, any_vector &anyvout)
 The calling signature: More...
 
virtual bool operator() (const input_pointer &in, output_tuple_type &out)=0
 
virtual std::vector< std::stringinput_types ()
 
virtual std::vector< std::stringoutput_types ()
 
- Public Member Functions inherited from WireCell::ISplitNodeBase
virtual ~ISplitNodeBase ()
 
virtual NodeCategory category ()
 Return the behavior category type. More...
 
virtual int concurrency ()
 Split 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 InputType, typename OutputTuple>
class WireCell::ISplitNode< InputType, OutputTuple >

Definition at line 42 of file ISplitNode.h.

Member Typedef Documentation

template<typename InputType, typename OutputTuple>
typedef std::shared_ptr<const InputType> WireCell::ISplitNode< InputType, OutputTuple >::input_pointer

Definition at line 51 of file ISplitNode.h.

template<typename InputType, typename OutputTuple>
typedef InputType WireCell::ISplitNode< InputType, OutputTuple >::input_type

Definition at line 49 of file ISplitNode.h.

template<typename InputType, typename OutputTuple>
typedef tuple_helper<output_tuple_type> WireCell::ISplitNode< InputType, OutputTuple >::output_helper_type

Definition at line 47 of file ISplitNode.h.

template<typename InputType, typename OutputTuple>
typedef port_helper_type::template WrappedConst<std::shared_ptr>::type WireCell::ISplitNode< InputType, OutputTuple >::output_tuple_type

Definition at line 46 of file ISplitNode.h.

template<typename InputType, typename OutputTuple>
typedef tuple_helper<OutputTuple> WireCell::ISplitNode< InputType, OutputTuple >::port_helper_type

Definition at line 45 of file ISplitNode.h.

Constructor & Destructor Documentation

template<typename InputType, typename OutputTuple>
virtual WireCell::ISplitNode< InputType, OutputTuple >::~ISplitNode ( )
inlinevirtual

Definition at line 53 of file ISplitNode.h.

53 {}

Member Function Documentation

template<typename InputType, typename OutputTuple>
virtual std::vector<std::string> WireCell::ISplitNode< InputType, OutputTuple >::input_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 71 of file ISplitNode.h.

71  {
72  return std::vector<std::string>{typeid(input_type).name()};
73  }
static QCString name
Definition: declinfo.cpp:673
InputType input_type
Definition: ISplitNode.h:49
template<typename InputType, typename OutputTuple>
virtual bool WireCell::ISplitNode< InputType, OutputTuple >::operator() ( const boost::any &  anyin,
any_vector anyout 
)
inlinevirtual

The calling signature:

Implements WireCell::ISplitNodeBase.

Definition at line 55 of file ISplitNode.h.

55  {
56  const input_pointer& in = boost::any_cast<const input_pointer&>(anyin);
57 
58  output_tuple_type outtup;
60 
61  bool ok = (*this)(in,outtup);
62  if (ok) {
63  anyvout = oh.as_any(outtup);
64  }
65  return ok;
66  }
port_helper_type::template WrappedConst< std::shared_ptr >::type output_tuple_type
Definition: ISplitNode.h:46
std::shared_ptr< const InputType > input_pointer
Definition: ISplitNode.h:51
tuple_helper< output_tuple_type > output_helper_type
Definition: ISplitNode.h:47
template<typename InputType, typename OutputTuple>
virtual bool WireCell::ISplitNode< InputType, OutputTuple >::operator() ( const input_pointer in,
output_tuple_type out 
)
pure virtual
template<typename InputType, typename OutputTuple>
virtual std::vector<std::string> WireCell::ISplitNode< InputType, OutputTuple >::output_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 75 of file ISplitNode.h.

75  {
76  port_helper_type oph;
77  return oph.type_names();
78  }
tuple_helper< OutputTuple > port_helper_type
Definition: ISplitNode.h:45

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