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

#include <IQueuedoutNode.h>

Inheritance diagram for WireCell::IQueuedoutNode< InputType, OutputType >:
WireCell::IQueuedoutNodeBase WireCell::INode WireCell::IComponent< INode > WireCell::Interface

Public Types

typedef std::shared_ptr< IQueuedoutNodeBasepointer
 
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::deque< output_pointeroutput_queue
 
- Public Types inherited from WireCell::IQueuedoutNodeBase
typedef std::shared_ptr< IQueuedoutNodeBasepointer
 
typedef std::deque< boost::any > queuedany
 
- 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 ~IQueuedoutNode ()
 
virtual bool operator() (const boost::any &anyin, queuedany &outanyq)
 The calling signature: More...
 
virtual bool operator() (const input_pointer &in, output_queue &outq)=0
 The calling signature: More...
 
virtual std::vector< std::stringinput_types ()
 
virtual std::vector< std::stringoutput_types ()
 
- Public Member Functions inherited from WireCell::IQueuedoutNodeBase
virtual ~IQueuedoutNodeBase ()
 
virtual NodeCategory category ()
 Return the behavior category type. More...
 
virtual int concurrency ()
 By default assume all subclasses maintain state. 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>
class WireCell::IQueuedoutNode< InputType, OutputType >

Definition at line 37 of file IQueuedoutNode.h.

Member Typedef Documentation

template<typename InputType, typename OutputType>
typedef std::shared_ptr<const InputType> WireCell::IQueuedoutNode< InputType, OutputType >::input_pointer

Definition at line 44 of file IQueuedoutNode.h.

template<typename InputType, typename OutputType>
typedef InputType WireCell::IQueuedoutNode< InputType, OutputType >::input_type

Definition at line 42 of file IQueuedoutNode.h.

template<typename InputType, typename OutputType>
typedef std::shared_ptr<const OutputType> WireCell::IQueuedoutNode< InputType, OutputType >::output_pointer

Definition at line 45 of file IQueuedoutNode.h.

template<typename InputType, typename OutputType>
typedef std::deque<output_pointer> WireCell::IQueuedoutNode< InputType, OutputType >::output_queue

Definition at line 46 of file IQueuedoutNode.h.

template<typename InputType, typename OutputType>
typedef OutputType WireCell::IQueuedoutNode< InputType, OutputType >::output_type

Definition at line 43 of file IQueuedoutNode.h.

template<typename InputType, typename OutputType>
typedef std::shared_ptr<IQueuedoutNodeBase> WireCell::IQueuedoutNode< InputType, OutputType >::pointer

Definition at line 40 of file IQueuedoutNode.h.

Constructor & Destructor Documentation

template<typename InputType, typename OutputType>
virtual WireCell::IQueuedoutNode< InputType, OutputType >::~IQueuedoutNode ( )
inlinevirtual

Definition at line 48 of file IQueuedoutNode.h.

48 {}

Member Function Documentation

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

Reimplemented from WireCell::INode.

Definition at line 66 of file IQueuedoutNode.h.

66  {
67  return std::vector<std::string>{typeid(input_type).name()};
68  }
static QCString name
Definition: declinfo.cpp:673
template<typename InputType, typename OutputType>
virtual bool WireCell::IQueuedoutNode< InputType, OutputType >::operator() ( const boost::any &  anyin,
queuedany out 
)
inlinevirtual

The calling signature:

Implements WireCell::IQueuedoutNodeBase.

Definition at line 51 of file IQueuedoutNode.h.

51  {
52  const input_pointer& in = boost::any_cast<const input_pointer&>(anyin);
53  output_queue outq;
54  bool ok = (*this)(in, outq);
55  if (!ok) return false;
56  for (auto o : outq) { // transfer typed to any
57  outanyq.push_back(o);
58  }
59  return true;
60  }
std::deque< output_pointer > output_queue
std::shared_ptr< const InputType > input_pointer
template<typename InputType, typename OutputType>
virtual bool WireCell::IQueuedoutNode< InputType, OutputType >::operator() ( const input_pointer in,
output_queue outq 
)
pure virtual
template<typename InputType, typename OutputType>
virtual std::vector<std::string> WireCell::IQueuedoutNode< InputType, OutputType >::output_types ( )
inlinevirtual

Reimplemented from WireCell::INode.

Definition at line 70 of file IQueuedoutNode.h.

70  {
71  return std::vector<std::string>{typeid(output_type).name()};
72  }
static QCString name
Definition: declinfo.cpp:673

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