USGS

Isis 3.0 Object Programmers' Reference

Home

ProcessByLine.h
Go to the documentation of this file.
1 #ifndef ProcessByLine_h
2 #define ProcessByLine_h
3 
25 #include "ProcessByBrick.h"
26 #include "Buffer.h"
27 namespace Isis {
28  class Cube;
29  class CubeAttributeInput;
30 
97 
98  public:
100  SetWrap(true);
101  };
102 
103  Isis::Cube *SetInputCube(const QString &parameter,
104  const int requirements = 0);
105  Isis::Cube *SetInputCube(const QString &file,
107  const int requirements = 0);
108  void SetInputCube(Isis::Cube *inCube);
109 
110  void StartProcess(void funct(Isis::Buffer &inout));
111 
112  void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out));
113 
114  void StartProcess(void
115  funct(std::vector<Isis::Buffer *> &in,
116  std::vector<Isis::Buffer *> &out));
117 
120  void VerifyCubeInPlace(void);
121 
132  template <typename Functor>
133  void ProcessCubeInPlace(const Functor & funct, bool threaded = true) {
135  ProcessByBrick::ProcessCubeInPlace(funct, threaded);
136  }
137 
142  void VerifyCubeIO(void);
143 
156  template <typename Functor>
157  void ProcessCube(const Functor & funct, bool threaded = true) {
158  VerifyCubeIO();
159  ProcessByBrick::ProcessCube(funct, threaded);
160  }
161 
168  void VerifyCubeIOList(void);
169 
183  template <typename Functor>
184  void ProcessCubes(const Functor & funct, bool threaded = true) {
186  ProcessByBrick::ProcessCubes(funct, threaded);
187  }
188  };
189 };
190 
191 #endif