Public Types | Public Member Functions | List of all members
WireCell::INode Class Referenceabstract

#include <INode.h>

Inheritance diagram for WireCell::INode:
WireCell::IComponent< INode > WireCell::Interface ITbbNode WireCell::IFaninNodeBase WireCell::IFanoutNodeBase WireCell::IFunctionNodeBase WireCell::IHydraNodeBase WireCell::IJoinNodeBase WireCell::IQueuedoutNodeBase WireCell::ISinkNodeBase WireCell::ISourceNodeBase WireCell::ISplitNodeBase

Public Types

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 ~INode ()
 
virtual NodeCategory category ()=0
 Return the behavior category type. More...
 
virtual std::string signature ()=0
 
virtual int concurrency ()
 
virtual std::vector< std::stringinput_types ()
 
virtual std::vector< std::stringoutput_types ()
 
virtual void reset ()
 
- Public Member Functions inherited from WireCell::IComponent< INode >
virtual ~IComponent ()
 
- Public Member Functions inherited from WireCell::Interface
virtual ~Interface ()
 

Detailed Description

A data flow node

Definition at line 16 of file INode.h.

Member Enumeration Documentation

Enumerator
unknown 
sourceNode 
sinkNode 
functionNode 
queuedoutNode 
joinNode 
splitNode 
faninNode 
fanoutNode 
multioutNode 
hydraNode 

Definition at line 21 of file INode.h.

21  {
22  unknown,
23  sourceNode, // one pointer output
24  sinkNode, // one pointer input
25  functionNode, // one pointer input / output
26  queuedoutNode, // one pointer input, queue of output
27  joinNode, // tuple input, pointer output
28  splitNode, // pointer input, tuple output
29  faninNode, // vector input, pointer output
30  fanoutNode, // pointer input, vector output
31  multioutNode, // pointer input multi-queue output
32  hydraNode, // multi-queue input and output
33  };

Constructor & Destructor Documentation

INode::~INode ( )
virtual

Definition at line 146 of file IfaceDesctructors.cxx.

146 {}

Member Function Documentation

virtual NodeCategory WireCell::INode::category ( )
pure virtual
virtual int WireCell::INode::concurrency ( )
inlinevirtual
virtual std::vector<std::string> WireCell::INode::input_types ( )
inlinevirtual

Reimplemented in WireCell::IHydraNode< InputTuple, OutputTuple >, WireCell::IHydraNode< in_tuple_t, out_tuple_t >, WireCell::IHydraNode< std::tuple< IDepo, IDepo >, std::tuple< IDepo > >, WireCell::ISplitNode< InputType, OutputTuple >, WireCell::ISplitNode< IFrame, std::tuple< IFrame, IFrame > >, WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >, WireCell::IJoinNode< InputTuple, OutputType >, WireCell::IFaninNode< IFrame, IFrame, 0 >, WireCell::IFaninNode< ICluster, ICluster, 0 >, WireCell::IFaninNode< IBlobSet, IBlobSet, 0 >, WireCell::IJoinNode< std::tuple< IFrame, IFrame >, IFrame >, WireCell::IFanoutNode< InputType, OutputType, FanoutMultiplicity >, WireCell::IQueuedoutNode< InputType, OutputType >, WireCell::IFanoutNode< IFrame, IFrame, 0 >, WireCell::IFanoutNode< IBlobSet::vector, IBlobSet, 0 >, WireCell::IFanoutNode< ISlice, ISlice, 0 >, WireCell::IFanoutNode< IDepo, IDepo, 0 >, WireCell::IFanoutNode< IDepoSet, IDepoSet, 0 >, WireCell::IQueuedoutNode< IDepo, IDiffusion >, WireCell::IQueuedoutNode< IFrame, ISlice >, WireCell::IQueuedoutNode< IDepo, IDepoSet >, WireCell::IQueuedoutNode< IBlobSet, IBlobSet >, WireCell::IQueuedoutNode< IBlobSet, ICluster >, WireCell::IQueuedoutNode< IDepo, IFrame >, WireCell::IQueuedoutNode< IDepo, IDepo >, WireCell::IFunctionNode< InputType, OutputType >, WireCell::IFunctionNode< IWireParameters, IWire::vector >, WireCell::IFunctionNode< IDepoSet, IFrame >, WireCell::IFunctionNode< ISlice, IStripeSet >, WireCell::IFunctionNode< IWire::vector, IWireSummary >, WireCell::IFunctionNode< ICluster, IFrame >, WireCell::IFunctionNode< IFrame, ISliceFrame >, WireCell::IFunctionNode< IFrame, IFrame >, WireCell::IFunctionNode< ISlice, IBlobSet >, WireCell::IFunctionNode< IDepo, IDepo >, WireCell::IFunctionNode< ICluster, ICluster >, WireCell::ISinkNode< InputType >, WireCell::ISinkNode< IFrame >, WireCell::ISinkNode< PointVector >, WireCell::ISinkNode< ICluster >, WireCell::ISinkNode< IBlobSet >, WireCell::ISinkNode< IStripeSet >, WireCell::ISinkNode< ISliceFrame >, WireCell::ISinkNode< ScalarField >, WireCell::ISinkNode< IDepo >, WireCell::IClusterFanin, WireCell::Img::BlobSetSync, WireCell::IFrameFanin, WireCell::IBlobSetFanin, and WireCell::Gen::FrameFanin.

Definition at line 53 of file INode.h.

53  {
54  return std::vector<std::string> ();
55  }
virtual std::vector<std::string> WireCell::INode::output_types ( )
inlinevirtual

Reimplemented in WireCell::IHydraNode< InputTuple, OutputTuple >, WireCell::IHydraNode< in_tuple_t, out_tuple_t >, WireCell::IHydraNode< std::tuple< IDepo, IDepo >, std::tuple< IDepo > >, WireCell::IFaninNode< InputType, OutputType, FaninMultiplicity >, WireCell::IJoinNode< InputTuple, OutputType >, WireCell::ISplitNode< InputType, OutputTuple >, WireCell::IFaninNode< IFrame, IFrame, 0 >, WireCell::IFaninNode< ICluster, ICluster, 0 >, WireCell::IFaninNode< IBlobSet, IBlobSet, 0 >, WireCell::IJoinNode< std::tuple< IFrame, IFrame >, IFrame >, WireCell::ISplitNode< IFrame, std::tuple< IFrame, IFrame > >, WireCell::IFanoutNode< InputType, OutputType, FanoutMultiplicity >, WireCell::IFanoutNode< IFrame, IFrame, 0 >, WireCell::IFanoutNode< IBlobSet::vector, IBlobSet, 0 >, WireCell::IFanoutNode< ISlice, ISlice, 0 >, WireCell::IFanoutNode< IDepo, IDepo, 0 >, WireCell::IFanoutNode< IDepoSet, IDepoSet, 0 >, WireCell::IQueuedoutNode< InputType, OutputType >, WireCell::IQueuedoutNode< IDepo, IDiffusion >, WireCell::IQueuedoutNode< IFrame, ISlice >, WireCell::IQueuedoutNode< IDepo, IDepoSet >, WireCell::IQueuedoutNode< IBlobSet, IBlobSet >, WireCell::IQueuedoutNode< IBlobSet, ICluster >, WireCell::IQueuedoutNode< IDepo, IFrame >, WireCell::IQueuedoutNode< IDepo, IDepo >, WireCell::IFunctionNode< InputType, OutputType >, WireCell::IFunctionNode< IWireParameters, IWire::vector >, WireCell::IFunctionNode< IDepoSet, IFrame >, WireCell::IFunctionNode< ISlice, IStripeSet >, WireCell::IFunctionNode< IWire::vector, IWireSummary >, WireCell::IFunctionNode< ICluster, IFrame >, WireCell::IFunctionNode< IFrame, ISliceFrame >, WireCell::IFunctionNode< IFrame, IFrame >, WireCell::IFunctionNode< ISlice, IBlobSet >, WireCell::IFunctionNode< IDepo, IDepo >, WireCell::IFunctionNode< ICluster, ICluster >, WireCell::ISourceNode< OutputType >, WireCell::ISourceNode< IFrame >, WireCell::ISourceNode< IWire::vector >, WireCell::ISourceNode< IDepo >, WireCell::SigProc::ChannelSplitter, WireCell::IFrameFanout, WireCell::ISliceFanout, WireCell::IBlobSetFanout, WireCell::IDepoFanout, WireCell::IDepoSetFanout, WireCell::Gen::FrameFanout, WireCell::Gen::DepoSetFanout, WireCell::Img::SliceFanout, and WireCell::Gen::DepoFanout.

Definition at line 58 of file INode.h.

58  {
59  return std::vector<std::string> ();
60  }
virtual void WireCell::INode::reset ( void  )
inlinevirtual

Optional hook to be implemented in order to reset after an end of stream is encountered. Fixme: this should be removed.

Reimplemented in WireCell::Gen::Drifter, WireCell::Diffuser, and WireCell::Gen::TruthTraceID.

Definition at line 65 of file INode.h.

65  {
66  }
virtual std::string WireCell::INode::signature ( )
pure virtual

The signature is string unique to all classes that implement a particular calling signature. These should be defined in lower level interfaces such as a mythical IMyFooToBarConverter.

Implemented in MyHydra, WireCell::ISourceNode< OutputType >, WireCell::ISourceNode< IFrame >, WireCell::ISourceNode< IWire::vector >, WireCell::ISourceNode< IDepo >, WireCell::IFunctionNode< InputType, OutputType >, WireCell::IFunctionNode< IWireParameters, IWire::vector >, WireCell::IFunctionNode< IDepoSet, IFrame >, WireCell::IFunctionNode< ISlice, IStripeSet >, WireCell::IFunctionNode< IWire::vector, IWireSummary >, WireCell::IFunctionNode< ICluster, IFrame >, WireCell::IFunctionNode< IFrame, ISliceFrame >, WireCell::IFunctionNode< IFrame, IFrame >, WireCell::IFunctionNode< ISlice, IBlobSet >, WireCell::IFunctionNode< IDepo, IDepo >, WireCell::IFunctionNode< ICluster, ICluster >, WireCell::IFrameSlicer, WireCell::IDuctor, WireCell::IDiffuser, WireCell::IFrameFilter, WireCell::IFrameSlices, WireCell::IDrifter, WireCell::IDepoCollector, WireCell::IDepoFramer, WireCell::IClusterFilter, WireCell::IWireGenerator, WireCell::IClustering, WireCell::IFrameJoiner, WireCell::ITiling, WireCell::IBlobSetProcessor, WireCell::IClusterFanin, WireCell::IDepoFilter, WireCell::IDepoSource, WireCell::IFrameFanout, WireCell::IFrameSink, WireCell::ISliceStriper, WireCell::IStripeSetSink, WireCell::IDepoMerger, WireCell::IFrameFanin, WireCell::ISliceFanout, WireCell::IBlobSetFanin, WireCell::IBlobSetFanout, WireCell::IBlobSetSink, WireCell::IClusterFramer, WireCell::IClusterSink, WireCell::IDepoFanout, WireCell::IDepoSetFanout, WireCell::IDepoSink, WireCell::IPointFieldSink, WireCell::IScalarFieldSink, WireCell::ISliceFrameSink, WireCell::IWireSource, WireCell::IWireSummarizer, and WireCell::IFrameSplitter.


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