USGS

Isis 3.0 Object Programmers' Reference

Home

KernelDb.h
Go to the documentation of this file.
1 #ifndef KernelDb_h
2 #define KernelDb_h
3 
26 #include <iostream>
27 #include <queue>
28 
29 #include <QList>
30 #include <QString>
31 #include <QStringList>
32 
33 #include "iTime.h"//???
34 #include "Kernel.h"
35 #include "Pvl.h"
36 
37 namespace Isis {
38  class FileName;
39  class iTime;
113  class KernelDb {
114 
115  public:
116  // constructor
117  KernelDb(const unsigned int allowedKernelTypes);
118  KernelDb(const QString &dbName, const unsigned int allowedKernelTypes);
119  KernelDb(std::istream &dbStream, const unsigned int allowedKernelTypes);
120 
121  // destructor
122  ~KernelDb();
123 
124  // Members for getting kernels
125  Kernel leapSecond(Pvl &lab);
127  Kernel targetPosition(Pvl &lab);
129  Kernel spacecraftClock(Pvl &lab);
131  Kernel instrument(Pvl &lab);
132  Kernel frame(Pvl &lab);
134  Kernel dem(Pvl &lab);
135 
136  Kernel findLast(const QString &entry, Pvl &lab);
137  QList< std::priority_queue<Kernel> > findAll(const QString &entry,
138  Pvl &lab);
139 
140  void loadSystemDb(const QString &mission, const Pvl &lab);
142 
143  static bool matches(const Pvl &lab, PvlGroup &kernelDbGrp,
144  iTime timeToMatch, int cameraVersion);
145  bool better(QString newType, QString oldType);
146  bool better(Kernel::Type newType, Kernel::Type oldType);
147 
148  private:
149  void loadKernelDbFiles(PvlGroup &dataDir,
150  QString directory,
151  const Pvl &lab);
152  void readKernelDbFiles();
153 
154  QStringList files(PvlGroup &grp);
155  QString m_filename;
160  unsigned int m_allowedKernelTypes;
171  };
172 };
173 
174 #endif