WireCellToolkit
Wire Cell Simulation, Signal Process and Reconstruction Toolki for Liquid Argon Detectors
WireCell::IHydraNode< InputTuple, OutputTuple > Class Template Referenceabstract

#include <IHydraNode.h>

Inheritance diagram for WireCell::IHydraNode< InputTuple, OutputTuple >:
Collaboration diagram for WireCell::IHydraNode< InputTuple, OutputTuple >:

Public Types

typedef InputTuple input_tuple_type
 
typedef OutputTuple output_tuple_type
 
typedef shared_queued< InputTuple > input_shqed
 
typedef shared_queued< OutputTuple > output_shqed
 
typedef input_shqed::shared_queued_tuple_type input_queues_type
 
typedef output_shqed::shared_queued_tuple_type output_queues_type
 
- Public Types inherited from WireCell::IHydraNodeBase
typedef std::shared_ptr< IHydraNodeBasepointer
 
typedef std::deque< boost::any > any_queue
 
typedef std::vector< any_queueany_queue_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 ~IHydraNode ()
 
virtual bool operator() (any_queue_vector &anyinq, any_queue_vector &anyoutq)
 Translate call from any to types and back. More...
 
virtual bool operator() (input_queues_type &inqs, output_queues_type &outqs)=0
 Typed interface for subclass to implement. More...
 
virtual std::vector< std::string > input_types ()
 
virtual std::vector< std::string > output_types ()
 
- Public Member Functions inherited from WireCell::IHydraNodeBase
virtual ~IHydraNodeBase ()
 
virtual NodeCategory category ()
 Return the behavior category type. More...
 
virtual int concurrency ()
 By default assume hydra nodes can 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 OutputTuple>
class WireCell::IHydraNode< InputTuple, OutputTuple >

A hydra with input and output fixed at compile-time with tuples.

Definition at line 50 of file IHydraNode.h.

Member Typedef Documentation

◆ input_queues_type

template<typename InputTuple, typename OutputTuple>
typedef input_shqed::shared_queued_tuple_type WireCell::IHydraNode< InputTuple, OutputTuple >::input_queues_type

Definition at line 59 of file IHydraNode.h.

◆ input_shqed

template<typename InputTuple, typename OutputTuple>
typedef shared_queued<InputTuple> WireCell::IHydraNode< InputTuple, OutputTuple >::input_shqed

Definition at line 56 of file IHydraNode.h.

◆ input_tuple_type

template<typename InputTuple, typename OutputTuple>
typedef InputTuple WireCell::IHydraNode< InputTuple, OutputTuple >::input_tuple_type

Definition at line 53 of file IHydraNode.h.

◆ output_queues_type

template<typename InputTuple, typename OutputTuple>
typedef output_shqed::shared_queued_tuple_type WireCell::IHydraNode< InputTuple, OutputTuple >::output_queues_type

Definition at line 60 of file IHydraNode.h.

◆ output_shqed

template<typename InputTuple, typename OutputTuple>
typedef shared_queued<OutputTuple> WireCell::IHydraNode< InputTuple, OutputTuple >::output_shqed

Definition at line 57 of file IHydraNode.h.

◆ output_tuple_type

template<typename InputTuple, typename OutputTuple>
typedef OutputTuple WireCell::IHydraNode< InputTuple, OutputTuple >::output_tuple_type

Definition at line 54 of file IHydraNode.h.

Constructor & Destructor Documentation

◆ ~IHydraNode()

template<typename InputTuple, typename OutputTuple>
virtual WireCell::IHydraNode< InputTuple, OutputTuple >::~IHydraNode ( )
inlinevirtual

Definition at line 62 of file IHydraNode.h.

Member Function Documentation

◆ input_types()

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

Reimplemented from WireCell::INode.

Definition at line 88 of file IHydraNode.h.

◆ operator()() [1/2]

template<typename InputTuple, typename OutputTuple>
virtual bool WireCell::IHydraNode< InputTuple, OutputTuple >::operator() ( any_queue_vector anyinq,
any_queue_vector anyoutq 
)
inlinevirtual

Translate call from any to types and back.

Implements WireCell::IHydraNodeBase.

Definition at line 65 of file IHydraNode.h.

◆ operator()() [2/2]

template<typename InputTuple, typename OutputTuple>
virtual bool WireCell::IHydraNode< InputTuple, OutputTuple >::operator() ( input_queues_type inqs,
output_queues_type outqs 
)
pure virtual

Typed interface for subclass to implement.

◆ output_types()

template<typename InputTuple, typename OutputTuple>
virtual std::vector<std::string> WireCell::IHydraNode< InputTuple, OutputTuple >::output_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 93 of file IHydraNode.h.


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