Public Types | Public Member Functions | List of all members
WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity > Class Template Referenceabstract

#include <IFaninNode.h>

Inheritance diagram for WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >:
WireCell::IFaninNodeBase WireCell::INode WireCell::IComponent< INode > WireCell::Interface

Public Types

typedef InputType input_type
 
typedef OutputType output_type
 
typedef std::shared_ptr< const InputType > input_pointer
 
typedef std::shared_ptr< const OutputType > output_pointer
 
typedef std::vector< input_pointerinput_vector
 
- Public Types inherited from WireCell::IFaninNodeBase
typedef std::shared_ptr< IFaninNodeBasepointer
 
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 ~IFaninNode ()
 
virtual bool operator() (const any_vector &anyv, boost::any &anyout)
 The calling signature: More...
 
virtual bool operator() (const input_vector &invec, output_pointer &out)=0
 
virtual std::vector< std::stringinput_types ()
 
virtual std::vector< std::stringoutput_types ()
 
- Public Member Functions inherited from WireCell::IFaninNodeBase
virtual ~IFaninNodeBase ()
 
virtual NodeCategory category ()
 Return the behavior category type. More...
 
virtual int concurrency ()
 Fanin 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 OutputType, int FaninMultiplicity = 3>
class WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >

Definition at line 39 of file IFaninNode.h.

Member Typedef Documentation

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
typedef std::shared_ptr<const InputType> WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::input_pointer

Definition at line 44 of file IFaninNode.h.

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
typedef InputType WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::input_type

Definition at line 42 of file IFaninNode.h.

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
typedef std::vector<input_pointer> WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::input_vector

Definition at line 46 of file IFaninNode.h.

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
typedef std::shared_ptr<const OutputType> WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::output_pointer

Definition at line 45 of file IFaninNode.h.

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
typedef OutputType WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::output_type

Definition at line 43 of file IFaninNode.h.

Constructor & Destructor Documentation

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
virtual WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::~IFaninNode ( )
inlinevirtual

Definition at line 48 of file IFaninNode.h.

48 {}

Member Function Documentation

template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
virtual std::vector<std::string> WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::input_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Reimplemented in WireCell::IClusterFanin, WireCell::Img::BlobSetSync, WireCell::IFrameFanin, WireCell::IBlobSetFanin, and WireCell::Gen::FrameFanin.

Definition at line 70 of file IFaninNode.h.

70  {
71  std::vector<std::string> ret(FaninMultiplicity, std::string(typeid(input_type).name()));
72  return ret;
73  }
static QCString name
Definition: declinfo.cpp:673
std::string string
Definition: nybbler.cc:12
InputType input_type
Definition: IFaninNode.h:42
template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
virtual bool WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::operator() ( const any_vector anyin,
boost::any &  anyout 
)
inlinevirtual

The calling signature:

Implements WireCell::IFaninNodeBase.

Definition at line 50 of file IFaninNode.h.

50  {
51  input_vector invec;
52  for (auto a : anyv) {
53  auto in = boost::any_cast<input_pointer>(a);
54  invec.push_back(in);
55  }
56  output_pointer out;
57  bool ok = (*this)(invec, out);
58  if (ok) {
59  anyout = out;
60  }
61  return ok;
62  }
std::vector< input_pointer > input_vector
Definition: IFaninNode.h:46
std::shared_ptr< const InputType > input_pointer
Definition: IFaninNode.h:44
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
std::shared_ptr< const OutputType > output_pointer
Definition: IFaninNode.h:45
template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
virtual bool WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::operator() ( const input_vector invec,
output_pointer out 
)
pure virtual
template<typename InputType, typename OutputType, int FaninMultiplicity = 3>
virtual std::vector<std::string> WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >::output_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 75 of file IFaninNode.h.

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

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