DataProviderPipelineFactory.qc.dox.h
// -*- mode: c++; indent-tabs-mode: nil -*-
// assume local scope for variables, do not use "$" signs
// require type definitions everywhere
// enable all warnings
// allow weak references
namespace DataProvider {
public struct PipelineFactoryInfo {
*hash<auto> opts;
int num_queues;
bool bulk;
};
hashdecl PipelineQueueInfo {
int id;
list<auto> elems();
int size;
};
class DataProviderPipelineFactory {
public:
protected:
*hash<PipelineOptionInfo> opts;
hash<string, hash<PipelineQueueInfo>> pmap;
bool do_bulk = True;
public:
constructor(*hash<PipelineOptionInfo> opts);
hash<PipelineFactoryInfo> getInfo();
DataProviderPipeline create(*hash<PipelineOptionInfo> opts);
append(AbstractDataProcessor processor);
append(int id, AbstractDataProcessor processor);
int appendQueue(int id);
protected:
checkUpdateQueue(softstring id);
public:
protected:
processQueue(DataProviderPipeline pipe, int id, hash<PipelineQueueInfo> queue);
public:
};
};
DataProvider::AbstractDataProcessor
Defines an abstract class for accepting data and outputting optionally transformed or filtered data.
Definition: AbstractDataProcessor.qc.dox.h:33
DataProvider::DataProviderPipelineFactory
A factory class for creating DataProviderPipeline objects.
Definition: DataProviderPipelineFactory.qc.dox.h:61
DataProvider::DataProviderPipelineFactory::checkUpdateQueue
checkUpdateQueue(softstring id)
Checks if the given queue exists.
DataProvider::DataProviderPipelineFactory::getInfo
hash< PipelineFactoryInfo > getInfo()
Returns pipeline factory info.
DataProvider::DataProviderPipelineFactory::create
DataProviderPipeline create(*hash< PipelineOptionInfo > opts)
Creates a new DataProviderPipeline object.
DataProvider::DataProviderPipelineFactory::processQueue
processQueue(DataProviderPipeline pipe, int id, hash< PipelineQueueInfo > queue)
Creates a queue in a pipeline.
DataProvider::DataProviderPipelineFactory::constructor
constructor(*hash< PipelineOptionInfo > opts)
Creates the object with the given options.
DataProvider::DataProviderPipelineFactory::appendQueue
int appendQueue(int id)
Appends a new queue to an existing pipeline and returns the new queue ID.
DataProvider::DataProviderPipelineFactory::do_bulk
bool do_bulk
Bulk flag.
Definition: DataProviderPipelineFactory.qc.dox.h:74
DataProvider::DataProviderPipelineFactory::append
append(AbstractDataProcessor processor)
Appends a data processor to the default pipeline.
DataProvider::DataProviderPipelineFactory::append
append(int id, AbstractDataProcessor processor)
Appends a data processor to a pipeline.
DataProvider::DataProviderPipelineFactory::pmap
hash< string, hash< PipelineQueueInfo > > pmap
Hash of queues keyed by queue ID.
Definition: DataProviderPipelineFactory.qc.dox.h:71
DataProvider::DataProviderPipelineFactory::opts
*hash< PipelineOptionInfo > opts
Options for the pipelines.
Definition: DataProviderPipelineFactory.qc.dox.h:68
DataProvider::DataProviderPipeline
Defines a class for passing data through record processors.
Definition: DataProviderPipeline.qc.dox.h:207
True
const True
DataProvider
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
DataProvider::elems
list< auto > elems()
Queue elements; either AbstractDataProcessor objects or a list of PipelineQueueInfo hashes.
DataProvider::PipelineQueueInfo
hashdecl PipelineQueueInfo
Internal struct for pipeline queue info.
Definition: DataProviderPipelineFactory.qc.dox.h:46
DataProvider::size
int size
Maximum queue size.
Definition: DataProviderPipelineFactory.qc.dox.h:54
DataProvider::PipelineFactoryInfo
Pipeline factory info.
Definition: DataProviderPipelineFactory.qc.dox.h:34
DataProvider::PipelineFactoryInfo::opts
*hash< auto > opts
Options for new pipelines.
Definition: DataProviderPipelineFactory.qc.dox.h:36
DataProvider::PipelineFactoryInfo::num_queues
int num_queues
Number of pipeline queues.
Definition: DataProviderPipelineFactory.qc.dox.h:39
DataProvider::PipelineFactoryInfo::bulk
bool bulk
Flag that indicates if the pipelines to be created are capable of bulk record processing.
Definition: DataProviderPipelineFactory.qc.dox.h:42