USGS

Isis 3.0 Object Programmers' Reference

Home

ProcessByLine.h

Go to the documentation of this file.
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 &parameter,
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