File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
Pipeline.h
1 #ifndef Pipeline_h
2 #define Pipeline_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include <vector>
11 
12 #include <QString>
13 
14 #include "PipelineApplication.h"
15 
16 namespace Isis {
17  class FileName;
18 
151  class Pipeline {
152  public:
153  Pipeline(const QString &procAppName = "");
154  ~Pipeline();
155 
156  void Prepare();
157  void Run();
158 
159  void SetInputFile(const char *inputParam);
160  void SetInputFile(const QString &inputParam);
161  void SetInputFile(const char *inputParam, const char *virtualBandsParam);
162  void SetInputFile(const QString &inputParam, const QString &virtualBandsParam);
163  void SetInputListFile(const char *inputParam);
164  void SetInputListFile(const QString &inputParam);
165  void SetInputFile(const FileName &inputFileName);
166  void SetInputListFile(const FileName &inputFileName);
167 
168  void SetOutputFile(const char *outputParam);
169  void SetOutputFile(const QString &outputParam);
170  void SetOutputFile(const FileName &outputFile);
171  void SetOutputListFile(const char *outputFileNameParam);
172  void SetOutputListFile(const QString &outputFileNameParam);
173  void SetOutputListFile(const FileName &outputFileNameList);
174  void KeepTemporaryFiles(bool keep);
177  return p_keepTemporary;
178  }
179 
180  void AddPause();
181  void AddToPipeline(const QString &appname);
182  void AddToPipeline(const QString &appname, const QString &identifier);
183  PipelineApplication &Application(const QString &identifier);
184  PipelineApplication &Application(const int &index);
185 
186  void SetFirstApplication(const QString &appname);
187  void SetLastApplication(const QString &appname);
188 
189  friend std::ostream &operator<<(std::ostream &os, Pipeline &pipeline);
190 
192  QString Name() const {
193  return p_procAppName;
194  }
196  int Size() const {
197  return (int)p_apps.size();
198  }
199 
207  QString OriginalInput(unsigned int branch) {
208  return ((branch < p_originalInput.size()) ? p_originalInput[branch] : "");
209  }
210 
213  return p_originalInput.size();
214  }
215 
225  if (p_originalBranches.size() > 0){
226  return p_originalBranches.size();
227  }
228  return p_inputBranches.size();
229  }
230 
233  std::vector<QString> OriginalBranches() {
234  if (p_originalBranches.size() > 0){
235  return p_originalBranches;
236  }
237  return p_inputBranches;
238  }
239 
240  QString FinalOutput(int branch = 0, bool addModifiers = true);
241  QString TemporaryFolder();
242 
243  void EnableAllApplications();
244 
252  void AddOriginalBranch(QString branch){
253  int size = (int)p_inputBranches.size();
254  if (size == 1) {
255  p_originalBranches.push_back(branch);
256  }
257  else {
258  for (int i=0; i<size; i++) {
259  p_originalBranches.push_back(p_inputBranches[i] + "." + branch);
260  }
261  }
262  }
263 
271  void SetContinue(bool pbFlag) {
272  p_continue = pbFlag;
273  };
274 
275  private:
276  int p_pausePosition;
277  QString p_procAppName;
278  std::vector<QString> p_originalInput;
279  std::vector<QString> p_inputBranches;
280  std::vector<QString> p_originalBranches;
281  std::vector<QString> p_finalOutput;
282  std::vector<QString> p_virtualBands;
285  std::vector< PipelineApplication * > p_apps;
286  std::vector< QString > p_appIdentifiers;
287  bool p_outputListNeedsModifiers;
288  bool p_continue;
289  };
290 };
291 
292 #endif
Isis::Pipeline::SetOutputFile
void SetOutputFile(const char *outputParam)
This method is used to set the final output file.
Definition: Pipeline.cpp:441
Isis::Pipeline::SetLastApplication
void SetLastApplication(const QString &appname)
This method disables all applications after to this one.
Definition: Pipeline.cpp:778
Isis::Pipeline::p_continue
bool p_continue
continue the execution even if exception is encountered.
Definition: Pipeline.h:288
Isis::PipelineApplication
This class represents one application in the pipeline.
Definition: PipelineApplication.h:46
Isis::Pipeline::p_finalOutput
std::vector< QString > p_finalOutput
The final output file (empty if needs calculated)
Definition: Pipeline.h:281
Isis::Pipeline::p_appIdentifiers
std::vector< QString > p_appIdentifiers
The strings to identify the pipeline applications.
Definition: Pipeline.h:286
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::Pipeline::p_procAppName
QString p_procAppName
The name of the pipeline.
Definition: Pipeline.h:277
Isis::Pipeline::Pipeline
Pipeline(const QString &procAppName="")
This is the one and only Pipeline constructor.
Definition: Pipeline.cpp:36
Isis::Pipeline::TemporaryFolder
QString TemporaryFolder()
This method returns the user's temporary folder for temporary files.
Definition: Pipeline.cpp:882
Isis::Pipeline::AddOriginalBranch
void AddOriginalBranch(QString branch)
Start off the branches directly from the pipeline.
Definition: Pipeline.h:252
Isis::Pipeline::FinalOutput
QString FinalOutput(int branch=0, bool addModifiers=true)
This gets the final output for the specified branch; this is necessary for the PipelineApplications t...
Definition: Pipeline.cpp:805
Isis::Pipeline::p_originalInput
std::vector< QString > p_originalInput
The original input file.
Definition: Pipeline.h:278
Isis::Pipeline::SetFirstApplication
void SetFirstApplication(const QString &appname)
This method disables all applications up to this one.
Definition: Pipeline.cpp:748
Isis::Pipeline::OriginalBranches
std::vector< QString > OriginalBranches()
Returns the names of the original branches of the pipeline (input files * branches if any)
Definition: Pipeline.h:233
Isis::Pipeline::p_virtualBands
std::vector< QString > p_virtualBands
The virtual bands string.
Definition: Pipeline.h:282
Isis::Pipeline::SetInputListFile
void SetInputListFile(const char *inputParam)
This method is used to set the original input files.
Definition: Pipeline.cpp:339
Isis::Pipeline::p_keepTemporary
bool p_keepTemporary
True if keeping temporary files.
Definition: Pipeline.h:283
Isis::Pipeline::KeepTemporaryFiles
bool KeepTemporaryFiles()
Returns true if temporary files will not be deleted, false if they will.
Definition: Pipeline.h:176
Isis::Pipeline::SetContinue
void SetContinue(bool pbFlag)
Set the continue flag.
Definition: Pipeline.h:271
Isis::Pipeline::p_originalBranches
std::vector< QString > p_originalBranches
The input file(s) + original branches from pipeline.
Definition: Pipeline.h:280
Isis::Pipeline::AddToPipeline
void AddToPipeline(const QString &appname)
Add a new program to the pipeline.
Definition: Pipeline.cpp:643
Isis::Pipeline::SetInputFile
void SetInputFile(const char *inputParam)
This method is used to set the original input file.
Definition: Pipeline.cpp:292
Isis::Pipeline::Name
QString Name() const
Returns the name of the pipeline.
Definition: Pipeline.h:192
Isis::Pipeline::OriginalInput
QString OriginalInput(unsigned int branch)
Returns the initial input file for the pipeline.
Definition: Pipeline.h:207
Isis::Pipeline::OriginalInputSize
int OriginalInputSize()
Returns the number of input files.
Definition: Pipeline.h:212
Isis::Pipeline::EnableAllApplications
void EnableAllApplications()
This method re-enables all applications.
Definition: Pipeline.cpp:896
Isis::Pipeline::Run
void Run()
This method executes the pipeline.
Definition: Pipeline.cpp:199
Isis::Pipeline
This class helps to call other Isis Applications in a Pipeline.
Definition: Pipeline.h:151
Isis::Pipeline::Size
int Size() const
Returns the number of applications in the pipeline.
Definition: Pipeline.h:196
Isis::Pipeline::Application
PipelineApplication & Application(const QString &identifier)
This is an accessor to get a specific PipelineApplication.
Definition: Pipeline.cpp:696
Isis::Pipeline::SetOutputListFile
void SetOutputListFile(const char *outputFileNameParam)
This method is used to set an output list file.
Definition: Pipeline.cpp:487
Isis::Pipeline::Prepare
void Prepare()
This method is the core of the pipeline class.
Definition: Pipeline.cpp:69
Isis::Pipeline::p_addedCubeatt
bool p_addedCubeatt
True if the "cubeatt" program was added.
Definition: Pipeline.h:284
Isis::Pipeline::~Pipeline
~Pipeline()
This destroys the pipeline.
Definition: Pipeline.cpp:49
Isis::Pipeline::p_apps
std::vector< PipelineApplication * > p_apps
The pipeline applications.
Definition: Pipeline.h:285
Isis::Pipeline::OriginalBranchesSize
int OriginalBranchesSize()
Returns the total number of input branches Original branches = Number of input files * Number of bran...
Definition: Pipeline.h:224
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Pipeline::AddPause
void AddPause()
Add a pause to the pipeline.
Definition: Pipeline.cpp:558
Isis::Pipeline::p_inputBranches
std::vector< QString > p_inputBranches
Branches for input list.
Definition: Pipeline.h:279

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:59