00001 #pragma ident "$Id: GPSAlmanacStore.hpp 2401 2010-04-20 15:18:44Z renfroba $"
00002
00003
00004
00005
00006
00007
00008
00009
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
00035
00036
00037
00045 #ifndef GPSTK_GPSALMANACSTORE_HPP
00046 #define GPSTK_GPSALMANACSTORE_HPP
00047
00048 #include <iostream>
00049 #include <string>
00050 #include <map>
00051
00052 #include "XvtStore.hpp"
00053 #include "SatID.hpp"
00054 #include "AlmOrbit.hpp"
00055 #include "EngAlmanac.hpp"
00056
00057 namespace gpstk
00058 {
00061
00065 class GPSAlmanacStore : public XvtStore<SatID>
00066 {
00067 public:
00068
00069 GPSAlmanacStore()
00070 throw()
00071 : initialTime(DayTime::END_OF_TIME),
00072 finalTime(DayTime::BEGINNING_OF_TIME)
00073 {}
00074
00075 virtual ~GPSAlmanacStore()
00076 {}
00077
00086 virtual Xvt getXvt(const SatID id, const DayTime& t)
00087 const throw(InvalidRequest);
00088
00102 virtual Xvt getXvtMostRecentXmit(const SatID id, const DayTime& t)
00103 const throw(InvalidRequest);
00104
00109 virtual void dump(std::ostream& s = std::cout, short detail = 0)
00110 const throw();
00111
00112
00116 virtual void edit(const DayTime& tmin,
00117 const DayTime& tmax = DayTime(DayTime::END_OF_TIME))
00118 throw();
00119
00120
00125 virtual DayTime getInitialTime()
00126 const throw(InvalidRequest)
00127 {return initialTime;}
00128
00129
00134 virtual DayTime getFinalTime()
00135 const throw(InvalidRequest)
00136 {return finalTime;}
00137
00138 virtual bool velocityIsPresent()
00139 const throw()
00140 {return true;}
00141
00142
00143 virtual bool clockIsPresent()
00144 const throw()
00145 {return true;}
00146
00147
00148
00149
00150
00151
00152
00158 short getSatHealth(const SatID sat, const DayTime& t)
00159 const throw(InvalidRequest);
00160
00161 bool addAlmanac(const AlmOrbit& alm) throw();
00162 bool addAlmanac(const EngAlmanac& alm) throw();
00163
00169 AlmOrbit findAlmanac(const SatID sat, const DayTime& t)
00170 const throw(InvalidRequest);
00171
00177 AlmOrbit findMostRecentAlmanac(const SatID sat, const DayTime& t)
00178 const throw(InvalidRequest);
00179
00181 AlmOrbits findAlmanacs(const DayTime& t)
00182 const throw(InvalidRequest);
00183
00184 protected:
00187 typedef std::map<DayTime, AlmOrbit> EngAlmMap;
00188
00191 typedef std::map<SatID, EngAlmMap> UBAMap;
00192
00194 UBAMap uba;
00195
00196 DayTime initialTime;
00197 DayTime finalTime;
00198
00199 };
00200
00202 }
00203 #endif