13#ifndef GDALALG_MATERIALIZE_INCLUDED
14#define GDALALG_MATERIALIZE_INCLUDED
16#include "gdalalg_abstract_pipeline.h"
17#include "gdalalg_raster_pipeline.h"
18#include "gdalalg_vector_pipeline.h"
26template <
class BaseStepAlgorithm,
int nDatasetType>
27class GDALMaterializeStepAlgorithm
28 :
public BaseStepAlgorithm
31 static constexpr const char *NAME =
"materialize";
32 static constexpr const char *DESCRIPTION =
33 "Materialize a piped dataset on disk to increase the efficiency of the "
36 bool IsNativelyStreamingCompatible()
const override
41 bool GeneratesFilesFromUserInput()
const override
43 return !this->m_outputDataset.GetName().empty();
47 explicit GDALMaterializeStepAlgorithm(
const char *helpURL);
49 int GetInputType()
const override
54 int GetOutputType()
const override
64template <
class BaseStepAlgorithm,
int nDatasetType>
65GDALMaterializeStepAlgorithm<BaseStepAlgorithm, nDatasetType>::
66 GDALMaterializeStepAlgorithm(
const char *helpURL)
67 : BaseStepAlgorithm(NAME, DESCRIPTION, helpURL,
68 GDALPipelineStepAlgorithm::ConstructorOptions()
69 .SetAddDefaultArguments(false))
77class GDALMaterializeRasterAlgorithm final
78 :
public GDALMaterializeStepAlgorithm<GDALRasterPipelineStepAlgorithm,
82 static constexpr const char *HELP_URL =
83 "/programs/gdal_raster_materialize.html";
85 GDALMaterializeRasterAlgorithm();
88 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
95class GDALMaterializeVectorAlgorithm final
96 :
public GDALMaterializeStepAlgorithm<GDALVectorPipelineStepAlgorithm,
100 static constexpr const char *HELP_URL =
101 "/programs/gdal_vector_materialize.html";
103 GDALMaterializeVectorAlgorithm();
106 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;