casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Member Functions | Protected Types | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
casa::vpf::VpContainer Class Reference

#include <VisibilityProcessing.h>

Inheritance diagram for casa::vpf::VpContainer:
casa::vpf::VisibilityProcessor

List of all members.

Classes

class  VpSet

Public Member Functions

 VpContainer (const String &name, const vector< String > &inputs=vector< String >(1,"In"), const vector< String > &outputs=vector< String >())
 Creates a VpContainer object providing the specified inputs and outputs.
virtual ~VpContainer ()
virtual void add (VisibilityProcessor *processor)
 Adds a VP to the container.
virtual void connect (VisibilityProcessor *sourceVp, const String &sourcePortName, VisibilityProcessor *sinkVp, const String &sinkPortName)
 Connects the specified output to the specified input.
virtual void connect (const String &sourcePortName, VisibilityProcessor *sinkVp, const String &sinkPortName)
virtual void connect (VisibilityProcessor *sourceVp, const String &sourcePortName, const String &sinkPortName)
virtual void chunkStart (const SubchunkIndex &sci)
 chunkStart is called to inform the VP that a new chunk is starting.
virtual void fillWithSequence (VisibilityProcessor *first,...)
 Fills the container with the specified set of VPs.
virtual
casa::asyncio::PrefetchColumns 
getPrefetchColumns () const
 Returns the columns that are required to be prefetched if async I/O is used.

Protected Types

typedef vector
< VisibilityProcessor * > 
VPs
typedef
boost::indirect_iterator
< VPs::const_iterator > 
const_iterator
typedef
boost::indirect_iterator
< VPs::iterator > 
iterator

Protected Member Functions

iterator begin ()
const_iterator begin () const
Bool contains (const VisibilityProcessor *) const
virtual ProcessingResult doProcessingImpl (ProcessingType processingType, VpData &inputData, const SubchunkIndex &subChunkIndex)
 Requests processing of the provided (possibly empty) input data.
Bool empty () const
iterator end ()
const_iterator end () const
virtual void processingStartImpl ()
 Called when data processing is about to beging; this allows the VP to perform any initialization that it desires now that it is completely connected into the graph.
size_t size () const
virtual void validateImpl ()
 Called to allow the node to validate its initial state.

Private Types

typedef std::map< VpPort, VpPortNetwork
typedef std::set< VpPortNetworkReverse
typedef boost::tuple
< VisibilityProcessor
*, VpData
ReadyVpAndData

Private Member Functions

ReadyVpAndData findReadyVp (VpSet &vpsWaiting, VpData &inputs, bool flushing) const
ReadyVpAndData findReadyVpFlushing (VpSet &vpsWaiting, VpData &inputs) const
ReadyVpAndData findReadyVpNormal (VpSet &vpsWaiting, VpData &inputs) const
bool follows (const VisibilityProcessor *a, const VisibilityProcessor *b) const
bool followsSet (const VisibilityProcessor *a, const VpSet &vpSet) const
void orderContents ()
void remapPorts (VpData &data, const VisibilityProcessor *)
pair< VpPort, VpPortvalidateConnectionPorts (VisibilityProcessor *sourceVp, const String &sourcePortName, VisibilityProcessor *sinkVp, const String &sinkPortName)

Private Attributes

Network network_p
NetworkReverse networkReverse_p
VPs vps_p
 backwards order.

Friends

class VisibilityProcessing

Detailed Description

Definition at line 493 of file VisibilityProcessing.h.


Member Typedef Documentation

typedef boost::indirect_iterator<VPs::const_iterator> casa::vpf::VpContainer::const_iterator [protected]

Definition at line 537 of file VisibilityProcessing.h.

typedef boost::indirect_iterator<VPs::iterator> casa::vpf::VpContainer::iterator [protected]

Definition at line 538 of file VisibilityProcessing.h.

typedef std::map<VpPort, VpPort> casa::vpf::VpContainer::Network [private]

Definition at line 556 of file VisibilityProcessing.h.

typedef std::set<VpPort> casa::vpf::VpContainer::NetworkReverse [private]

Definition at line 557 of file VisibilityProcessing.h.

Definition at line 558 of file VisibilityProcessing.h.

typedef vector<VisibilityProcessor *> casa::vpf::VpContainer::VPs [protected]

Definition at line 536 of file VisibilityProcessing.h.


Constructor & Destructor Documentation

casa::vpf::VpContainer::VpContainer ( const String name,
const vector< String > &  inputs = vector< String >(1,"In"),
const vector< String > &  outputs = vector< String >() 
)

Creates a VpContainer object providing the specified inputs and outputs.

These inputs and outputs will potentially be connected to the inputs and outputs of the VPs that are contained in the container.

virtual casa::vpf::VpContainer::~VpContainer ( ) [inline, virtual]

Definition at line 507 of file VisibilityProcessing.h.


Member Function Documentation

virtual void casa::vpf::VpContainer::add ( VisibilityProcessor processor) [virtual]

Adds a VP to the container.

Exception if VP is already in the container.

virtual void casa::vpf::VpContainer::chunkStart ( const SubchunkIndex ) [virtual]

chunkStart is called to inform the VP that a new chunk is starting.

Reimplemented from casa::vpf::VisibilityProcessor.

virtual void casa::vpf::VpContainer::connect ( VisibilityProcessor sourceVp,
const String sourcePortName,
VisibilityProcessor sinkVp,
const String sinkPortName 
) [virtual]

Connects the specified output to the specified input.

The VP pointer may be omitted if the port belongs to the container.

virtual void casa::vpf::VpContainer::connect ( const String sourcePortName,
VisibilityProcessor sinkVp,
const String sinkPortName 
) [virtual]
virtual void casa::vpf::VpContainer::connect ( VisibilityProcessor sourceVp,
const String sourcePortName,
const String sinkPortName 
) [virtual]
virtual ProcessingResult casa::vpf::VpContainer::doProcessingImpl ( ProcessingType  processingType,
VpData inputData,
const SubchunkIndex subChunkIndex 
) [protected, virtual]

Requests processing of the provided (possibly empty) input data.

This is called on each subchunk (then inputData will be nonempty) and at the end of a chunk and the end of the entire data set. These last two call types allow the VP to output any data that it might have been accumulating across multiple subchunks, etc.

Implements casa::vpf::VisibilityProcessor.

Bool casa::vpf::VpContainer::empty ( ) const [protected]
virtual void casa::vpf::VpContainer::fillWithSequence ( VisibilityProcessor first,
  ... 
) [virtual]

Fills the container with the specified set of VPs.

The container must be empty prior to this call.

ReadyVpAndData casa::vpf::VpContainer::findReadyVp ( VpSet vpsWaiting,
VpData inputs,
bool  flushing 
) const [private]
ReadyVpAndData casa::vpf::VpContainer::findReadyVpFlushing ( VpSet vpsWaiting,
VpData inputs 
) const [private]
ReadyVpAndData casa::vpf::VpContainer::findReadyVpNormal ( VpSet vpsWaiting,
VpData inputs 
) const [private]
bool casa::vpf::VpContainer::follows ( const VisibilityProcessor a,
const VisibilityProcessor b 
) const [private]
bool casa::vpf::VpContainer::followsSet ( const VisibilityProcessor a,
const VpSet vpSet 
) const [private]

Returns the columns that are required to be prefetched if async I/O is used.

Reimplemented from casa::vpf::VisibilityProcessor.

virtual void casa::vpf::VpContainer::processingStartImpl ( ) [protected, virtual]

Called when data processing is about to beging; this allows the VP to perform any initialization that it desires now that it is completely connected into the graph.

Reimplemented from casa::vpf::VisibilityProcessor.

void casa::vpf::VpContainer::remapPorts ( VpData data,
const VisibilityProcessor  
) [private]
size_t casa::vpf::VpContainer::size ( ) const [protected]
pair<VpPort,VpPort> casa::vpf::VpContainer::validateConnectionPorts ( VisibilityProcessor sourceVp,
const String sourcePortName,
VisibilityProcessor sinkVp,
const String sinkPortName 
) [private]
virtual void casa::vpf::VpContainer::validateImpl ( ) [protected, virtual]

Called to allow the node to validate its initial state.

An AipsError should be thrown if this node decides that it is invalid.

Implements casa::vpf::VisibilityProcessor.


Friends And Related Function Documentation

friend class VisibilityProcessing [friend]

Definition at line 495 of file VisibilityProcessing.h.


Member Data Documentation

Definition at line 568 of file VisibilityProcessing.h.

Definition at line 569 of file VisibilityProcessing.h.

backwards order.

Definition at line 571 of file VisibilityProcessing.h.


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