MetriVis Overview | Download | User Manual | Development
Reference Overview | Design Documentation | Reference Backend | Reference Frontend

src/pipeline/Pipeline.h

Go to the documentation of this file.
00001 /*
00002  *   MetriVis - Metrics Visualization Application
00003  *
00004  *
00005  *   License notice:
00006  *
00007  *   This program is free software: you can redistribute it and/or modify
00008  *   it under the terms of the GNU General Public License as published by
00009  *   the Free Software Foundation, either version 3 of the License, or
00010  *   (at your option) any later version.
00011  *
00012  *   This program is distributed in the hope that it will be useful,
00013  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *   GNU General Public License for more details.
00016  *
00017  *   You should have received a copy of the GNU General Public License
00018  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  */
00021 
00022 #ifndef _METRIVIS_PIPELINE_H
00023 #define _METRIVIS_PIPELINE_H
00024 
00032 #include <string>
00033 #include <vector>
00034 
00035 
00036 namespace metrivis {
00037 
00038 
00039 class PipelineProcess;
00040 
00041 
00050 class Pipeline {
00051 
00052 
00053 public:
00054 
00060   Pipeline() {
00061     Reset();
00062   }
00063 
00069   virtual ~Pipeline() {
00070     ClearPipeline();
00071   }
00072 
00080   void Execute();
00081 
00082 
00090   void Reset();
00091 
00092 
00101   const std::string& GetResult() const;
00102 
00103 
00109   PipelineProcess* GetPipeline(int index) const {
00110     return pipeline_processes_[index];
00111   }
00112 
00113 
00114 protected:
00115 
00124   void AppendProcess(PipelineProcess* pipeline_process);
00125 
00126 
00132   void ClearPipeline();
00133 
00134 
00135 private:
00136 
00137   Pipeline(const Pipeline& pipeline);
00138   Pipeline operator=(const Pipeline& pipeline);
00139 
00140 
00141 public:
00142 
00144   enum {
00145     PL_PIPELINE_0 = 0,
00146     PL_PIPELINE_1,
00147     PL_PIPELINE_2,
00148     PL_PIPELINE_3,
00149     PL_PIPELINE_4,
00150     PL_PIPELINE_5
00151   };
00152 
00153 protected:
00154 
00155 
00156   std::vector<PipelineProcess*> pipeline_processes_; 
00157 
00158   std::string result_; 
00159 };
00160 
00161 }
00162 #endif // _METRIVIS_PIPELINE_H

Generated on Fri Feb 29 16:47:19 2008 for MetriVis by  doxygen 1.5.3