C++ SDK Documentation  9.0
Vertica::SourceIterator Class Referenceabstract

Constructs a set of Sources to be used by an IterativeSourceFactory. More...

Inheritance diagram for Vertica::SourceIterator:
Inheritance graph
Collaboration diagram for Vertica::SourceIterator:
Collaboration graph

Public Member Functions

virtual UnsizedUDSourcecreateNextSource (ServerInterface &srvInterface)=0
 Create the next UDSource to process. More...
 
virtual void destroy (ServerInterface &srvInterface, NodeSpecifyingPlanContext &planCtxt)
 Tear down this SourceIterator. More...
 
virtual size_t getNumberOfSources ()=0
 
virtual size_t getSizeOfSource (size_t sourceNum)
 
virtual void setup (ServerInterface &srvInterface, NodeSpecifyingPlanContext &planCtxt)
 Set up this SourceIterator. More...
 

Detailed Description

Constructs a set of Sources to be used by an IterativeSourceFactory.

Wrappers to help construct and manage UDLs createNextSource() will be called repeatedly until it returns NULL. Each resulting Source will be read to completion, and the contained data passed to the Filter and Parser.

Member Function Documentation

virtual UnsizedUDSource* Vertica::SourceIterator::createNextSource ( ServerInterface srvInterface)
pure virtual

Create the next UDSource to process.

Should return NULL if no further sources are available for processing.

Note that the previous Source may still be open and in use on a different thread when this function is called.

Returns
a new Source instance corresponding to a new input stream

Implemented in Vertica::DefaultSourceIterator.

virtual void Vertica::SourceIterator::destroy ( ServerInterface srvInterface,
NodeSpecifyingPlanContext planCtxt 
)
inlinevirtual

Tear down this SourceIterator.

Should perform clean-up that should not take place in the destructor due to the exception-handling semantics of destructors.

virtual size_t Vertica::SourceIterator::getNumberOfSources ( )
pure virtual
Returns
the total number of Sources that this factory will produce

Implemented in Vertica::DefaultSourceIterator.

Referenced by Vertica::SourceFactory::getDesiredThreads().

virtual size_t Vertica::SourceIterator::getSizeOfSource ( size_t  sourceNum)
inlinevirtual
Returns
the raw-data size of the sourceNum'th source that will be produced by createNextSource(). Should return vint_null if the size is unknown.

This value is used as a hint, and is used by the "load_streams" table to display load progress. If incorrect or not set, "load_streams" may contain incorrect or unhelpful information.

Reimplemented in Vertica::DefaultSourceIterator.

virtual void Vertica::SourceIterator::setup ( ServerInterface srvInterface,
NodeSpecifyingPlanContext planCtxt 
)
inlinevirtual

Set up this SourceIterator.

Should perform setup that should not take place in the constructor due to the exception-handling semantics of constructors