]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/NavDataCache.hxx
Run the filters for comm/navaids as required.
[flightgear.git] / src / Navaids / NavDataCache.hxx
index e0bb0a98c2b16d361642602abddc1293dbfd39dd..e7909818c307d00ad8cb544c1d385bd2ee5892d2 100644 (file)
@@ -25,6 +25,8 @@
 #define FG_NAVDATACACHE_HXX
 
 #include <memory>
+
+#include <simgear/misc/strutils.hxx> // for string_list
 #include <Navaids/positioned.hxx>
     
 class SGPath;
@@ -63,9 +65,10 @@ public:
   bool isRebuildRequired();
   
   /**
-   * run the cache rebuild
+   * run the cache rebuild - returns true if rebuild is complete,
+   * otherwise keep going.
    */
-  void rebuild();
+  bool rebuild();
   
   bool isCachedFileModified(const SGPath& path) const;
   void stampCacheFile(const SGPath& path);
@@ -78,6 +81,9 @@ public:
   void writeStringProperty(const std::string& key, const std::string& value);
   void writeDoubleProperty(const std::string& key, const double& value);
   
+  string_list readStringListProperty(const std::string& key);
+  void writeStringListProperty(const std::string& key, const string_list& values);
+  
   FGPositioned* loadById(PositionedID guid);
   
   PositionedID insertAirport(FGPositioned::Type ty, const std::string& ident,
@@ -175,7 +181,10 @@ public:
   AirwayEdgeVec airwayEdgesFrom(int network, PositionedID pos);
 private:
   NavDataCache();
-    
+  
+  friend class RebuildThread;
+  void doRebuild();
+  
   class NavDataCachePrivate;
   std::auto_ptr<NavDataCachePrivate> d;      
 };