|
Isis 3.0 Object Programmers' Reference |
Home |
00001 #ifndef ProcessByLine_h 00002 #define ProcessByLine_h 00003 00025 #include "ProcessByBrick.h" 00026 #include "Buffer.h" 00027 namespace Isis { 00028 class Cube; 00029 class CubeAttributeInput; 00030 00096 class ProcessByLine : public Isis::ProcessByBrick { 00097 00098 public: 00099 ProcessByLine(): ProcessByBrick() { 00100 SetWrap(true); 00101 }; 00102 00103 Isis::Cube *SetInputCube(const QString ¶meter, 00104 const int requirements = 0); 00105 Isis::Cube *SetInputCube(const QString &file, 00106 Isis::CubeAttributeInput &att, 00107 const int requirements = 0); 00108 void SetInputCube(Isis::Cube *inCube); 00109 00110 void StartProcess(void funct(Isis::Buffer &inout)); 00111 00112 void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out)); 00113 00114 void StartProcess(void 00115 funct(std::vector<Isis::Buffer *> &in, 00116 std::vector<Isis::Buffer *> &out)); 00117 00120 void VerifyCubeInPlace(void); 00121 00132 template <typename Functor> 00133 void ProcessCubeInPlace(const Functor & funct, bool threaded = true) { 00134 VerifyCubeInPlace(); 00135 ProcessByBrick::ProcessCubeInPlace(funct, threaded); 00136 } 00137 00142 void VerifyCubeIO(void); 00143 00156 template <typename Functor> 00157 void ProcessCube(const Functor & funct, bool threaded = true) { 00158 VerifyCubeIO(); 00159 ProcessByBrick::ProcessCube(funct, threaded); 00160 } 00161 00168 void VerifyCubeIOList(void); 00169 00183 template <typename Functor> 00184 void ProcessCubes(const Functor & funct, bool threaded = true) { 00185 VerifyCubeIOList(); 00186 ProcessByBrick::ProcessCubes(funct, threaded); 00187 } 00188 }; 00189 }; 00190 00191 #endif