[svn] commit: r2414 - in /branches/trac232/src: bin/auth/auth_srv.cc lib/datasrc/data_source.cc lib/datasrc/data_source.h lib/datasrc/sqlite3_datasrc.cc lib/datasrc/sqlite3_datasrc.h

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Jul 6 09:18:07 UTC 2010


Author: jelte
Date: Tue Jul  6 09:18:07 2010
New Revision: 2414

Log:
Make transaction an instantiated object that rolls back automatically should it be destroyed

Modified:
    branches/trac232/src/bin/auth/auth_srv.cc
    branches/trac232/src/lib/datasrc/data_source.cc
    branches/trac232/src/lib/datasrc/data_source.h
    branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc
    branches/trac232/src/lib/datasrc/sqlite3_datasrc.h

Modified: branches/trac232/src/bin/auth/auth_srv.cc
==============================================================================
--- branches/trac232/src/bin/auth/auth_srv.cc (original)
+++ branches/trac232/src/bin/auth/auth_srv.cc Tue Jul  6 09:18:07 2010
@@ -344,8 +344,8 @@
                                    RRTTL(args->get("rr_ttl")->stringValue())));
         RdataPtr rdata = createRdata(rrset->getType(), rrset->getClass(), args->get("rr_rdata")->stringValue());
         rrset->addRdata(rdata);
-        DataSrcTransaction* transaction;
-        DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+        DataSrcTransaction transaction(datasource, zone_name);
+        DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
         if (r != DataSrc::SUCCESS) {
             return isc::config::createAnswer(r, "error starting transaction");
         }
@@ -394,8 +394,8 @@
                 rrset->addRdata(rdata);
             }
         }
-        DataSrcTransaction* transaction;
-        DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+        DataSrcTransaction transaction(datasource, zone_name);
+        DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
         if (r != DataSrc::SUCCESS) {
             return isc::config::createAnswer(r, "error starting transaction");
         }
@@ -481,8 +481,8 @@
         DataSrc* datasource = (DataSrc*) match.bestDataSrc();
         // hmz can't we assign RRTypes?
         if (datasource) {
-            DataSrcTransaction* transaction;
-            DataSrc::Result r = datasource->startTransaction(&transaction, zone_name);
+            DataSrcTransaction transaction(datasource, zone_name);
+            DataSrc::Result r = datasource->startTransaction(transaction, zone_name);
             if (r != DataSrc::SUCCESS) {
                 return isc::config::createAnswer(r, "error starting transaction");
             }
@@ -568,8 +568,8 @@
         impl_->data_sources_.findClosestEnclosure(match, rrclass);
         DataSrc* datasource = (DataSrc*) match.bestDataSrc();
         if (datasource) {
-            DataSrcTransaction* transaction;
-            DataSrc::Result result = datasource->startTransaction(&transaction, zone_name);
+            DataSrcTransaction transaction(datasource, zone_name);
+            DataSrc::Result result = datasource->startTransaction(transaction, zone_name);
             if (result != DataSrc::SUCCESS) {
                 return isc::config::createAnswer(result, "error starting transaction");
             }
@@ -580,6 +580,7 @@
             if (result != DataSrc::SUCCESS) {
                 return isc::config::createAnswer(result, "Error in doIXFR");
             } else {
+                datasource->commitTransaction(transaction);
                 return isc::config::createAnswer();
             }
         } else {

Modified: branches/trac232/src/lib/datasrc/data_source.cc
==============================================================================
--- branches/trac232/src/lib/datasrc/data_source.cc (original)
+++ branches/trac232/src/lib/datasrc/data_source.cc Tue Jul  6 09:18:07 2010
@@ -917,52 +917,52 @@
 }
 
 DataSrc::Result
-DataSrc::startTransaction(DataSrcTransaction **transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::addRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::startTransaction(DataSrcTransaction& transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::addRRset(DataSrcTransaction& transaction UNUSED_PARAM,
                   const isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;
 }
 
 DataSrc::Result
-DataSrc::delRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::delRRset(DataSrcTransaction& transaction UNUSED_PARAM,
                   isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;
 }
 
 DataSrc::Result
-DataSrc::delZone(DataSrcTransaction* transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-DataSrc::replaceZone(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::delZone(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+DataSrc::replaceZone(DataSrcTransaction& transaction UNUSED_PARAM,
                      RRsetList& rrsets UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;
 }
 
 DataSrc::Result
-DataSrc::doIXFR(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrc::doIXFR(DataSrcTransaction& transaction UNUSED_PARAM,
                 const isc::dns::RRsetIterator start UNUSED_PARAM,
                 const isc::dns::RRsetIterator end UNUSED_PARAM)
 {
@@ -1028,46 +1028,52 @@
     return (NOT_IMPLEMENTED);
 }
 
-DataSrc::Result
-MetaDataSrc::startTransaction(DataSrcTransaction **transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::addRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+DataSrcTransaction::~DataSrcTransaction() {
+    if (getState() == RUNNING) {
+        _data_source->rollbackTransaction(*this);
+    }
+}
+
+DataSrc::Result
+MetaDataSrc::startTransaction(DataSrcTransaction& transaction UNUSED_PARAM, const Name& zonename UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::addRRset(DataSrcTransaction& transaction UNUSED_PARAM,
                       isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;
 }
 
 DataSrc::Result
-MetaDataSrc::delRRset(DataSrcTransaction* transaction UNUSED_PARAM,
+MetaDataSrc::delRRset(DataSrcTransaction& transaction UNUSED_PARAM,
                       isc::dns::ConstRRsetPtr rrset UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;
 }
 
 DataSrc::Result
-MetaDataSrc::delZone(DataSrcTransaction* transaction UNUSED_PARAM)
-{
-    return NOT_IMPLEMENTED;
-}
-
-DataSrc::Result
-MetaDataSrc::replaceZone(DataSrcTransaction* transaction UNUSED_PARAM,
+MetaDataSrc::delZone(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    return NOT_IMPLEMENTED;
+}
+
+DataSrc::Result
+MetaDataSrc::replaceZone(DataSrcTransaction& transaction UNUSED_PARAM,
                          RRsetList& rrsets UNUSED_PARAM)
 {
     return NOT_IMPLEMENTED;

Modified: branches/trac232/src/lib/datasrc/data_source.h
==============================================================================
--- branches/trac232/src/lib/datasrc/data_source.h (original)
+++ branches/trac232/src/lib/datasrc/data_source.h Tue Jul  6 09:18:07 2010
@@ -167,9 +167,32 @@
 //       also probably should keep a pointer to a datasource
 //       should this also provide the outwards interface?
 //
+
+//class DataSrcTransaction {
+//public:
+//    virtual ~DataSrcTransaction() {};
+//};
+
 class DataSrcTransaction {
 public:
-    virtual ~DataSrcTransaction() {};
+    enum states { INIT, RUNNING, DONE };
+
+    explicit DataSrcTransaction(DataSrc *data_source,
+                                const isc::dns::Name& zone_name) :
+                                _zone_name(zone_name),
+                                _data_source(data_source),
+                                _state(INIT) {};
+    ~DataSrcTransaction();
+    states getState() { return _state; };
+    void setState(states state) { _state = state; };
+    isc::data::ElementPtr getData() { return _data; };
+    void setData(isc::data::ElementPtr data) { _data = data; };
+
+private:
+    isc::data::ElementPtr _data;
+    isc::dns::Name _zone_name;
+    DataSrc* _data_source;
+    states _state;
 };
 
 // Base class for a DNS Data Source
@@ -241,17 +264,17 @@
     // Writable data sources
     //
     // This certainly not the final API
-    virtual Result addRRset(DataSrcTransaction* transaction,
+    virtual Result addRRset(DataSrcTransaction&  transaction,
                             isc::dns::ConstRRsetPtr rrset);
-    virtual Result delRRset(DataSrcTransaction* transaction,
+    virtual Result delRRset(DataSrcTransaction&  transaction,
                             isc::dns::ConstRRsetPtr rrset);
-    virtual Result delZone(DataSrcTransaction* transaction);
-    virtual Result replaceZone(DataSrcTransaction* transaction,
+    virtual Result delZone(DataSrcTransaction&  transaction);
+    virtual Result replaceZone(DataSrcTransaction&  transaction,
                                isc::dns::RRsetList& rrsets);
-    virtual Result startTransaction(DataSrcTransaction** transaction, const isc::dns::Name& zonename);
-    virtual Result commitTransaction(DataSrcTransaction *transaction);
-    virtual Result rollbackTransaction(DataSrcTransaction *transaction);
-    virtual Result doIXFR(DataSrcTransaction* transaction,
+    virtual Result startTransaction(DataSrcTransaction&  transaction, const isc::dns::Name& zonename);
+    virtual Result commitTransaction(DataSrcTransaction&  transaction);
+    virtual Result rollbackTransaction(DataSrcTransaction&  transaction);
+    virtual Result doIXFR(DataSrcTransaction&  transaction,
                           const isc::dns::RRsetIterator start,
                           const isc::dns::RRsetIterator end);
 
@@ -328,16 +351,16 @@
     // Writable data sources
     //
     // see comments at DataSrc
-    virtual Result startTransaction(DataSrcTransaction** transaction, const isc::dns::Name& zonename);
-    virtual Result commitTransaction(DataSrcTransaction* transaction);
-    virtual Result rollbackTransaction(DataSrcTransaction* transaction);
+    virtual Result startTransaction(DataSrcTransaction&  transaction, const isc::dns::Name& zonename);
+    virtual Result commitTransaction(DataSrcTransaction&  transaction);
+    virtual Result rollbackTransaction(DataSrcTransaction&  transaction);
     
-    virtual Result addRRset(DataSrcTransaction* transaction,
+    virtual Result addRRset(DataSrcTransaction&  transaction,
                             isc::dns::ConstRRsetPtr rrset);
-    virtual Result delRRset(DataSrcTransaction* transaction,
+    virtual Result delRRset(DataSrcTransaction&  transaction,
                             isc::dns::ConstRRsetPtr rrset);
-    virtual Result delZone(DataSrcTransaction* transaction);
-    virtual Result replaceZone(DataSrcTransaction* transaction,
+    virtual Result delZone(DataSrcTransaction&  transaction);
+    virtual Result replaceZone(DataSrcTransaction&  transaction,
                                isc::dns::RRsetList& rrsets);
     // end of writable data sources part
 private:

Modified: branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc
==============================================================================
--- branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc (original)
+++ branches/trac232/src/lib/datasrc/sqlite3_datasrc.cc Tue Jul  6 09:18:07 2010
@@ -28,6 +28,8 @@
 #include <dns/rdataclass.h>
 #include <dns/rrset.h>
 #include <dns/rrsetlist.h>
+
+#include <cc/data.h>
 
 #include <boost/foreach.hpp>
 
@@ -776,15 +778,17 @@
 }
 
 DataSrc::Result
-Sqlite3DataSrc::startTransaction(DataSrcTransaction **transaction, const Name& zonename)
-{
+Sqlite3DataSrc::startTransaction(DataSrcTransaction& transaction, const Name& zonename)
+{
+    if (transaction.getState() != DataSrcTransaction::INIT) {
+        return DataSrc::ERROR;
+    }
     int result = sqlite3_exec(dbparameters->db_, w_start_transaction_str, NULL, NULL, NULL);
     if (result == SQLITE_OK) {
-        if (transaction) {
-            Sqlite3DataSrcTransaction *trans = new Sqlite3DataSrcTransaction();
-            trans->zone_id = hasExactZone(zonename.toText().c_str());
-            *transaction = trans;
-        }
+        isc::data::ElementPtr trans_data = isc::data::Element::createFromString("{}");
+        trans_data->set("zone_id", isc::data::Element::create(hasExactZone(zonename.toText().c_str())));
+        transaction.setData(trans_data);
+        transaction.setState(DataSrcTransaction::RUNNING);
         return DataSrc::SUCCESS;
     } else {
         return DataSrc::ERROR;
@@ -792,23 +796,33 @@
 }
 
 DataSrc::Result
-Sqlite3DataSrc::commitTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
+Sqlite3DataSrc::commitTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    if (transaction.getState() != DataSrcTransaction::RUNNING) {
+        return DataSrc::ERROR;
+    }
+
     int result = sqlite3_exec(dbparameters->db_, w_commit_transaction_str, NULL, NULL, NULL);
-    delete transaction;
+    
     if (result == SQLITE_OK) {
+        transaction.setState(DataSrcTransaction::DONE);
         return DataSrc::SUCCESS;
     } else {
         return DataSrc::ERROR;
     }
 }
 
-DataSrc::Result
-Sqlite3DataSrc::rollbackTransaction(DataSrcTransaction *transaction UNUSED_PARAM)
-{
+// Must be exception-free! should we have a catch-all to be sure?
+DataSrc::Result
+Sqlite3DataSrc::rollbackTransaction(DataSrcTransaction& transaction UNUSED_PARAM)
+{
+    if (transaction.getState() != DataSrcTransaction::RUNNING) {
+        return DataSrc::ERROR;
+    }
     int result = sqlite3_exec(dbparameters->db_, w_rollback_transaction_str, NULL, NULL, NULL);
-    delete transaction;
+
     if (result == SQLITE_OK) {
+        transaction.setState(DataSrcTransaction::DONE);
         return DataSrc::SUCCESS;
     } else {
         return DataSrc::ERROR;
@@ -889,12 +903,12 @@
 }
 
 DataSrc::Result
-Sqlite3DataSrc::addRRset(DataSrcTransaction* transaction,
+Sqlite3DataSrc::addRRset(DataSrcTransaction& transaction,
                          isc::dns::ConstRRsetPtr rrset)
 {
     std::cout << "[XX] addRR at sqlite3" << std::endl;
-    Sqlite3DataSrcTransaction* trans = (Sqlite3DataSrcTransaction*) transaction;
-    std::cout << "[XX] zone id: " << trans->zone_id << std::endl;
+    int zone_id = transaction.getData()->get("zone_id")->intValue();
+    std::cout << "[XX] zone id: " << zone_id << std::endl;
 
     RdataIteratorPtr rdp = rrset->getRdataIterator();
     rdp->first();
@@ -902,7 +916,7 @@
     std::cout << "[XX] RDATA: " << rdp->getCurrent().toText().c_str() << std::endl;
     DataSrc::Result result = DataSrc::SUCCESS;
     do {
-        result = addRR(trans->zone_id, rrset->getName(), rrset->getType(), rrset->getTTL(), rdp->getCurrent());
+        result = addRR(zone_id, rrset->getName(), rrset->getType(), rrset->getTTL(), rdp->getCurrent());
         if (result != DataSrc::SUCCESS) {
             return result;
         } else {
@@ -1054,11 +1068,12 @@
 }
 
 DataSrc::Result
-Sqlite3DataSrc::replaceZone(DataSrcTransaction* transaction,
+Sqlite3DataSrc::replaceZone(DataSrcTransaction& transaction,
                             isc::dns::RRsetList& rrsets)
 {
-    Sqlite3DataSrcTransaction *trans = (Sqlite3DataSrcTransaction*)transaction;
-    DataSrc::Result result = delAll(trans->zone_id);
+    int zone_id = transaction.getData()->get("zone_id")->intValue();
+
+    DataSrc::Result result = delAll(zone_id);
     if (result != DataSrc::SUCCESS) {
         return result;
     }
@@ -1069,10 +1084,11 @@
 }
 
 DataSrc::Result
-Sqlite3DataSrc::delZone(DataSrcTransaction* transaction)
-{
-    Sqlite3DataSrcTransaction *trans = (Sqlite3DataSrcTransaction*)transaction;
-    DataSrc::Result result = delAll(trans->zone_id);
+Sqlite3DataSrc::delZone(DataSrcTransaction& transaction)
+{
+    int zone_id = transaction.getData()->get("zone_id")->intValue();
+
+    DataSrc::Result result = delAll(zone_id);
     if (result != DataSrc::SUCCESS) {
         return result;
     }
@@ -1083,13 +1099,13 @@
     sqlite3_clear_bindings(query);
 
     int rc;
-    rc = sqlite3_bind_int(query, 1, trans->zone_id);
-    if (rc != SQLITE_OK) {
-        isc_throw(Sqlite3Error, "Could not bind zone ID " << trans->zone_id <<
+    rc = sqlite3_bind_int(query, 1, zone_id);
+    if (rc != SQLITE_OK) {
+        isc_throw(Sqlite3Error, "Could not bind zone ID " << zone_id <<
                   " to SQL statement (query)");
     }
 
-    std::cout << "[XX] del zone " << trans->zone_id << " query prepared, executing" << std::endl;
+    std::cout << "[XX] del zone " << zone_id << " query prepared, executing" << std::endl;
     int q_result = sqlite3_step(query);
 
     sqlite3_reset(query);
@@ -1106,13 +1122,13 @@
 
 
 DataSrc::Result
-Sqlite3DataSrc::delRRset(DataSrcTransaction* transaction,
+Sqlite3DataSrc::delRRset(DataSrcTransaction& transaction,
                          isc::dns::ConstRRsetPtr rrset)
 {
     std::cout << "[XX] delRR at sqlite3" << std::endl;
-    Sqlite3DataSrcTransaction* trans = (Sqlite3DataSrcTransaction*) transaction;
+    int zone_id = transaction.getData()->get("zone_id")->intValue();
     
-    std::cout << "[XX] zone id for: " << trans->zone_id << std::endl;
+    std::cout << "[XX] zone id for: " << zone_id << std::endl;
 
     DataSrc::Result result = DataSrc::SUCCESS;
 
@@ -1122,7 +1138,7 @@
         std::cout << "[XX] RDATA: " << rdp->getCurrent().toText() << std::endl;
         std::cout << "[XX] RDATA: " << rdp->getCurrent().toText().c_str() << std::endl;
         do {
-            result = delRR(trans->zone_id, rrset->getName(), rrset->getType(), rdp->getCurrent());
+            result = delRR(zone_id, rrset->getName(), rrset->getType(), rdp->getCurrent());
             if (result != DataSrc::SUCCESS) {
                 return result;
             } else {
@@ -1130,7 +1146,7 @@
             }
         } while (!rdp->isLast());
     } else {
-        result = delRR(trans->zone_id, rrset->getName(), rrset->getType());
+        result = delRR(zone_id, rrset->getName(), rrset->getType());
     }
     return result;
 }
@@ -1160,7 +1176,7 @@
 // TODO: this is a very general one, move to DataSrc?
 //       also more specific return values on error
 DataSrc::Result
-Sqlite3DataSrc::doIXFR(DataSrcTransaction* transaction,
+Sqlite3DataSrc::doIXFR(DataSrcTransaction& transaction,
                        const RRsetIterator start,
                        const RRsetIterator end)
 {
@@ -1171,18 +1187,17 @@
     rrsets++;
     if (first_soa->getType() == RRType::SOA()) {
         if (!haveRRset(this, first_soa)) {
-            rollbackTransaction(transaction);
             std::cout << "[XX] Start SOA does not match mine: " << first_soa->toText() << std::endl;
             return DataSrc::ERROR;
         }
     } else {
         // Not a SOA, then this must be an AXFR-type response
-        delAll(((Sqlite3DataSrcTransaction*)transaction)->zone_id);
+        int zone_id = transaction.getData()->get("zone_id")->intValue();
+        delAll(zone_id);
         
         while (rrsets != end) {
             addRRset(transaction, *rrsets++);
         }
-        commitTransaction(transaction);
         return DataSrc::SUCCESS;
     }
     bool deleting = true;
@@ -1208,7 +1223,6 @@
                     delRRset(transaction, cur_rrset);
                 } else {
                     std::cout << "[XX] rrset for delete not found: " << cur_rrset->toText() << std::endl;
-                    rollbackTransaction(transaction);
                     return DataSrc::ERROR;
                 }
             } else {
@@ -1222,11 +1236,9 @@
         // Finally replace the SOA
         delRRset(transaction, first_soa);
         addRRset(transaction, final_soa);
-        commitTransaction(transaction);
         return DataSrc::SUCCESS;
     } else {
         std::cout << "[XX] something went wrong" << std::endl;
-        rollbackTransaction(transaction);
         return DataSrc::ERROR;
     }
 }

Modified: branches/trac232/src/lib/datasrc/sqlite3_datasrc.h
==============================================================================
--- branches/trac232/src/lib/datasrc/sqlite3_datasrc.h (original)
+++ branches/trac232/src/lib/datasrc/sqlite3_datasrc.h Tue Jul  6 09:18:07 2010
@@ -110,19 +110,19 @@
 
     // hmz, should we have a transaction context object? (see comments
     // in datasource.h
-    Result startTransaction(DataSrcTransaction **transaction, const isc::dns::Name& zonename);
-    Result commitTransaction(DataSrcTransaction *transaction);
-    Result rollbackTransaction(DataSrcTransaction *transaction);
+    Result startTransaction(DataSrcTransaction& transaction, const isc::dns::Name& zonename);
+    Result commitTransaction(DataSrcTransaction& transaction);
+    Result rollbackTransaction(DataSrcTransaction& transaction);
     
     //DataSrc::Result addRRset(const isc::dns::Name& zonename, const isc::dns::RRset& rrset);
-    DataSrc::Result addRRset(DataSrcTransaction* transaction,
+    DataSrc::Result addRRset(DataSrcTransaction& transaction,
                              isc::dns::ConstRRsetPtr rrset);
-    DataSrc::Result delRRset(DataSrcTransaction* transaction,
+    DataSrc::Result delRRset(DataSrcTransaction& transaction,
                              isc::dns::ConstRRsetPtr rrset);
-    DataSrc::Result replaceZone(DataSrcTransaction* transaction,
+    DataSrc::Result replaceZone(DataSrcTransaction& transaction,
                                 isc::dns::RRsetList& rrsets);
-    DataSrc::Result delZone(DataSrcTransaction* transaction);
-    DataSrc::Result doIXFR(DataSrcTransaction* transaction,
+    DataSrc::Result delZone(DataSrcTransaction& transaction);
+    DataSrc::Result doIXFR(DataSrcTransaction& transaction,
                            const isc::dns::RRsetIterator start,
                            const isc::dns::RRsetIterator end);
 
@@ -159,11 +159,6 @@
     Sqlite3Parameters* dbparameters;
 };
 
-class Sqlite3DataSrcTransaction : public DataSrcTransaction {
-public:
-    int zone_id;
-};
-
 }
 }
 




More information about the bind10-changes mailing list