]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/NavDataCache.hxx
Start porting NasalPositioned to cppbind.
[flightgear.git] / src / Navaids / NavDataCache.hxx
index 069ffa9074f794ff3d6cd483b2a76ebe358a2c7b..93ef318c7d1ca599dffd61dcafcfec78d17a5f58 100644 (file)
@@ -85,11 +85,6 @@ public:
   string_list readStringListProperty(const std::string& key);
   void writeStringListProperty(const std::string& key, const string_list& values);
   
-// transaction API wrappers
-  void beginTransaction();
-  void commitTransaction();
-  void abortTransaction();
-  
   /**
    * retrieve an FGPositioned from the cache.
    * This may be trivial if the object is previously loaded, or require actual
@@ -121,7 +116,11 @@ public:
                                 PositionedID apt);
   PositionedID insertFix(const std::string& ident, const SGGeod& aPos);
   
-  PositionedID createUserWaypoint(const std::string& ident, const SGGeod& aPos);
+  PositionedID createPOI(FGPositioned::Type ty, const std::string& ident, const SGGeod& aPos);
+  
+  void removePOI(FGPositioned::Type ty, const std::string& aIdent);
+    
+  void dropGroundnetFor(PositionedID aAirport);
   
   PositionedID insertParking(const std::string& name, const SGGeod& aPos,
                              PositionedID aAirport,
@@ -248,12 +247,31 @@ public:
   
   PositionedIDVec findAirportParking(PositionedID airport, const std::string& flightType,
                                      int radius);
+
+
+    class Transaction
+    {
+    public:
+        Transaction(NavDataCache* cache);
+        ~Transaction();
+        
+        void commit();
+    private:
+        NavDataCache* _instance;
+        bool _committed;
+    };
 private:
   NavDataCache();
   
   friend class RebuildThread;
   void doRebuild();
   
+  friend class Transaction;
+  
+    void beginTransaction();
+    void commitTransaction();
+    void abortTransaction();
+    
   class NavDataCachePrivate;
   std::auto_ptr<NavDataCachePrivate> d;      
 };