00001 #pragma ident "$Id: DeltaOp.hpp 2614 2011-05-24 06:47:03Z yanweignss $"
00002
00009 #ifndef GPSTK_DELTAOP_HPP
00010 #define GPSTK_DELTAOP_HPP
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include "TypeID.hpp"
00037 #include "ProcessingClass.hpp"
00038
00039
00040 namespace gpstk
00041 {
00042
00045
00127 class DeltaOp : public ProcessingClass
00128 {
00129 public:
00130
00131
00135 DeltaOp()
00136 : deleteMissingSats(true), updateCSFlag(true)
00137 { diffTypes.insert(TypeID::prefitC); setIndex(); };
00138
00139
00154 DeltaOp( const satTypeValueMap& gData,
00155 const bool& delSats = true )
00156 : refData(gData), deleteMissingSats(delSats), updateCSFlag(true)
00157 { diffTypes.insert(TypeID::prefitC); setIndex(); };
00158
00159
00174 DeltaOp( const satTypeValueMap& gData,
00175 const TypeID& difftype,
00176 const bool& delSats = true )
00177 : refData(gData), deleteMissingSats(delSats), updateCSFlag(true)
00178 { diffTypes.insert(difftype); setIndex(); };
00179
00180
00195 DeltaOp( const satTypeValueMap& gData,
00196 const TypeIDSet& diffSet,
00197 const bool& delSats = true )
00198 : refData(gData), deleteMissingSats(delSats), updateCSFlag(true),
00199 diffTypes(diffSet)
00200 { setIndex(); };
00201
00202
00217 DeltaOp( const gnssSatTypeValue& gData,
00218 const bool& delSats = true )
00219 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true)
00220 { diffTypes.insert(TypeID::prefitC); setIndex(); };
00221
00222
00237 DeltaOp( const gnssSatTypeValue& gData,
00238 const TypeID& difftype,
00239 const bool& delSats = true )
00240 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true)
00241 { diffTypes.insert(difftype); setIndex(); };
00242
00243
00258 DeltaOp( const gnssSatTypeValue& gData,
00259 const TypeIDSet& diffSet,
00260 const bool& delSats = true )
00261 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true),
00262 diffTypes(diffSet)
00263 { setIndex(); };
00264
00265
00279 DeltaOp( const gnssRinex& gData,
00280 const bool& delSats = true )
00281 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true)
00282 { diffTypes.insert(TypeID::prefitC); setIndex(); };
00283
00284
00298 DeltaOp( const gnssRinex& gData,
00299 const TypeID& difftype,
00300 const bool& delSats = true )
00301 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true)
00302 { diffTypes.insert(difftype); setIndex(); };
00303
00304
00318 DeltaOp( const gnssRinex& gData,
00319 const TypeIDSet& diffSet,
00320 const bool& delSats = true )
00321 : refData(gData.body), deleteMissingSats(delSats), updateCSFlag(true),
00322 diffTypes(diffSet)
00323 { setIndex(); };
00324
00325
00332 virtual DeltaOp& setRefData(const satTypeValueMap& gData)
00333 { refData = gData; return (*this); };
00334
00335
00342 virtual DeltaOp& setRefData(const gnssSatTypeValue& gData)
00343 { return setRefData( gData.body ); };
00344
00345
00352 virtual DeltaOp& setRefData(const gnssRinex& gData)
00353 { return setRefData( gData.body ); };
00354
00355
00358 virtual satTypeValueMap getRefData(void) const
00359 { return refData; };
00360
00361
00369 virtual DeltaOp& setDeleteMissingSats(const bool& deleteSats)
00370 { deleteMissingSats = deleteSats; return (*this); };
00371
00372
00375 virtual bool getDeleteMissingSats(void) const
00376 { return deleteMissingSats; };
00377
00378
00386 virtual DeltaOp& setDiffType(const TypeID& difftype)
00387 { diffTypes.clear(); diffTypes.insert(difftype); return (*this); };
00388
00389
00395 virtual DeltaOp& addDiffType(const TypeID& difftype)
00396 { diffTypes.insert(difftype); return (*this); };
00397
00398
00406 virtual DeltaOp& setDiffTypeSet(const TypeIDSet& diffSet)
00407 { diffTypes.clear(); diffTypes = diffSet; return (*this); };
00408
00409
00415 virtual DeltaOp& addDiffTypeSet(const TypeIDSet& diffSet);
00416
00417
00419 virtual TypeIDSet getDiffTypeSet(void) const
00420 { return diffTypes; };
00421
00422
00429 virtual satTypeValueMap& Process(satTypeValueMap& gData)
00430 throw(ProcessingException);
00431
00432
00439 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00440 throw(ProcessingException)
00441 { Process(gData.body); return gData; };
00442
00443
00450 virtual gnssRinex& Process(gnssRinex& gData)
00451 throw(ProcessingException)
00452 { Process(gData.body); return gData; };
00453
00454
00456 virtual int getIndex(void) const;
00457
00458
00460 virtual std::string getClassName(void) const;
00461
00462
00464 virtual ~DeltaOp() {};
00465
00466
00467 private:
00468
00469
00471 satTypeValueMap refData;
00472
00473
00476 bool updateCSFlag;
00477
00478
00481 bool deleteMissingSats;
00482
00483
00485 TypeIDSet diffTypes;
00486
00487
00489 static int classIndex;
00490
00492 int index;
00493
00495 void setIndex(void)
00496 { index = classIndex++; };
00497
00498
00499 };
00500
00502
00503 }
00504 #endif // GPSTK_DELTAOP_HPP