00001 #pragma ident "$Id: ProcessingVector.hpp 1351 2008-08-07 14:33:39Z architest $"
00002
00008 #ifndef PROCESSINGVECTOR_HPP
00009 #define PROCESSINGVECTOR_HPP
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <vector>
00035 #include "ProcessingClass.hpp"
00036
00037
00038 namespace gpstk
00039 {
00040
00043
00044
00080 class ProcessingVector : public ProcessingClass
00081 {
00082 public:
00083
00084
00086 ProcessingVector()
00087 { setIndex(); };
00088
00089
00094 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData);
00095
00096
00101 virtual gnssRinex& Process(gnssRinex& gData);
00102
00103
00105 virtual ProcessingClass* front(void)
00106 { return (procvector.front()); };
00107
00108
00110 virtual ProcessingClass* back(void)
00111 { return (procvector.back()); };
00112
00113
00115 ProcessingClass* operator[](int n)
00116 { return (procvector[n]); };
00117
00118
00120 virtual void push_back(ProcessingClass& pClass)
00121 { procvector.push_back( (&pClass) ); return; };
00122
00123
00125 virtual void pop_back(void)
00126 { procvector.pop_back(); return; };
00127
00128
00130 virtual bool empty(void) const
00131 { return (procvector.empty()); };
00132
00133
00135 virtual int size(void) const
00136 { return (procvector.size()); };
00137
00138
00140 virtual void clear(void)
00141 { return (procvector.clear()); };
00142
00143
00145 virtual int getIndex(void) const;
00146
00147
00149 virtual std::string getClassName(void) const;
00150
00151
00153 virtual ~ProcessingVector() {};
00154
00155
00156 private:
00157
00158
00160 std::vector<ProcessingClass*> procvector;
00161
00163 static int classIndex;
00164
00166 int index;
00167
00169 void setIndex(void)
00170 { index = classIndex++; };
00171
00172
00173 };
00174
00176
00177 }
00178 #endif // PROCESSINGVECTOR_HPP