]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#93,!35] Config Backend API returns number of deleted entries.
authorMarcin Siodelski <marcin@isc.org>
Thu, 4 Oct 2018 18:20:17 +0000 (20:20 +0200)
committerMarcin Siodelski <marcin@isc.org>
Mon, 8 Oct 2018 14:39:22 +0000 (16:39 +0200)
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc
src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.h
src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc
src/hooks/dhcp/mysql_cb/mysql_cb_impl.h
src/lib/config_backend/base_config_backend_pool.h
src/lib/config_backend/tests/config_backend_mgr_unittest.cc
src/lib/dhcpsrv/config_backend_dhcp4.h
src/lib/dhcpsrv/config_backend_pool_dhcp4.cc
src/lib/dhcpsrv/config_backend_pool_dhcp4.h

index 5f697938050a317cedd2580492565a2b4002d9ed..16d556168519856717646805bacfb3c2a5907773 100644 (file)
@@ -407,26 +407,27 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param subnet_id Identifier of the subnet to be deleted.
-    void deleteSubnet4(const ServerSelector& /* server_selector */,
+    /// @return Number of deleted subnets.
+    uint64_t deleteSubnet4(const ServerSelector& /* server_selector */,
                        const SubnetID& subnet_id) {
         MySqlBindingCollection in_bindings;
         in_bindings.push_back(MySqlBinding::createInteger<uint32_t>(subnet_id));
 
         // Run DELETE.
-        conn_.updateDeleteQuery(DELETE_SUBNET4_ID, in_bindings);
+        return (conn_.updateDeleteQuery(DELETE_SUBNET4_ID, in_bindings));
     }
 
     /// @brief Deletes pools belonging to a subnet from the database.
     ///
     /// @param subnet Pointer to the subnet for which pools should be
     /// deleted.
-    void deletePools4(const Subnet4Ptr& subnet) {
+    uint64_t deletePools4(const Subnet4Ptr& subnet) {
         MySqlBindingCollection in_bindings = {
             MySqlBinding::createInteger<uint32_t>(subnet->getID())
         };
 
         // Run DELETE.
-        conn_.updateDeleteQuery(DELETE_POOLS4_SUBNET_ID, in_bindings);
+        return (conn_.updateDeleteQuery(DELETE_POOLS4_SUBNET_ID, in_bindings));
     }
 
     /// @brief Sends query to the database to retrieve multiple shared
@@ -728,8 +729,9 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param code Option code.
-    /// @param name Option name. 
-    void deleteOptionDef4(const ServerSelector& /* server_selector */,
+    /// @param name Option name.
+    /// @return Number of deleted option definitions.
+    uint64_t deleteOptionDef4(const ServerSelector& /* server_selector */,
                           const uint16_t code,
                           const std::string& space) {
         MySqlBindingCollection in_bindings = {
@@ -738,7 +740,7 @@ public:
         };
 
         // Run DELETE.
-        conn_.updateDeleteQuery(DELETE_OPTION_DEF4_CODE_NAME, in_bindings);
+        return (conn_.updateDeleteQuery(DELETE_OPTION_DEF4_CODE_NAME, in_bindings));
     }
 };
 
@@ -1311,76 +1313,81 @@ MySqlConfigBackendDHCPv4::createUpdateGlobalParameter4(const ServerSelector& /*
                                                        const int64_t /* value */) {
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteSubnet4(const ServerSelector& /* server_selector */,
                                         const std::string& subnet_prefix) {
-    impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SUBNET4_PREFIX,
-                           subnet_prefix);
+    return(impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SUBNET4_PREFIX,
+                                  subnet_prefix));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteSubnet4(const ServerSelector& server_selector,
                                         const SubnetID& subnet_id) {
-    impl_->deleteSubnet4(server_selector, subnet_id);
+    return (impl_->deleteSubnet4(server_selector, subnet_id));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteAllSubnets4(const ServerSelector& /* server_selector */) {
-    impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SUBNETS4);
+    return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SUBNETS4));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteSharedNetwork4(const ServerSelector& /* server_selector */,
                                                const std::string& name) {
-    impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SHARED_NETWORK4_NAME,
-                           name);
+    return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_SHARED_NETWORK4_NAME,
+                                   name));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteAllSharedNetworks4(const ServerSelector& /* server_selector */) {
-    impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SHARED_NETWORKS4);
+    return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_SHARED_NETWORKS4));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteOptionDef4(const ServerSelector& server_selector,
                                            const uint16_t code,
                                            const std::string& space) {
-    impl_->deleteOptionDef4(server_selector, code, space);
+    return (impl_->deleteOptionDef4(server_selector, code, space));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteAllOptionDefs4(const ServerSelector& /* server_selector */) {
-    impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_OPTION_DEFS4);
+    return (impl_->deleteFromTable(MySqlConfigBackendDHCPv4Impl::DELETE_ALL_OPTION_DEFS4));
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */,
                                         const uint16_t /* code */,
                                         const std::string& /* space */) {
+    return (0);
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */,
                                         const SubnetID& /* subnet_id */,
                                         const uint16_t /* code */,
                                         const std::string& /* space */) {
+    return (0);
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteOption4(const ServerSelector& /* server_selector */,
                                         const asiolink::IOAddress& /* pool_start_address */,
                                         const asiolink::IOAddress& /* pool_end_address */,
                                         const uint16_t /* code */,
                                         const std::string& /* space */) {
+    return (0);
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteGlobalParameter4(const ServerSelector& /* server_selector */,
                                                  const std::string& /* name */) {
+    return (0);
 }
 
-void
+uint64_t
 MySqlConfigBackendDHCPv4::deleteAllGlobalParameters4(const ServerSelector& /* server_selector */) {
+    return (0);
 }
 
 std::string
index 400d5e52508ef399b417d7aabcbbc5ddfb1f4585..52d0539099c8b0792da40a838d794fe1bc69a9a5 100644 (file)
@@ -219,7 +219,8 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param subnet_prefix Prefix of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::ServerSelector& server_selector,
                   const std::string& subnet_prefix);
 
@@ -227,27 +228,31 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param subnet_id Identifier of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::ServerSelector& server_selector, const SubnetID& subnet_id);
 
     /// @brief Deletes all subnets.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteAllSubnets4(const db::ServerSelector& server_selector);
 
     /// @brief Deletes shared network by name.
     ///
     /// @param server_selector Server selector.
     /// @param name Name of the shared network to be deleted.
-    virtual void
+    /// @return Number of deleted shared networks.
+    virtual uint64_t
     deleteSharedNetwork4(const db::ServerSelector& server_selector,
                          const std::string& name);
 
     /// @brief Deletes all shared networks.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted shared networks.
+    virtual uint64_t
     deleteAllSharedNetworks4(const db::ServerSelector& server_selector);
 
     /// @brief Deletes option definition.
@@ -255,14 +260,16 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteOptionDef4(const db::ServerSelector& server_selector, const uint16_t code,
                      const std::string& space);
 
     /// @brief Deletes all option definitions.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteAllOptionDefs4(const db::ServerSelector& server_selector);
 
     /// @brief Deletes global option.
@@ -270,7 +277,8 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector, const uint16_t code,
                   const std::string& space);
 
@@ -281,7 +289,8 @@ public:
     /// belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector, const SubnetID& subnet_id,
                   const uint16_t code, const std::string& space);
 
@@ -294,7 +303,8 @@ public:
     /// deleted option belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector,
                   const asiolink::IOAddress& pool_start_address,
                   const asiolink::IOAddress& pool_end_address,
@@ -305,14 +315,16 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param name Name of the global parameter to be deleted.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteGlobalParameter4(const db::ServerSelector& server_selector,
                            const std::string& name);
 
     /// @brief Deletes all global parameters.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteAllGlobalParameters4(const db::ServerSelector& server_selector);
 
     /// @brief Returns backend type in the textual format.
index 1235bda527f8e9399ad373a220dc29baae251689..51e8f5990f44371cf1c5be71583bf6ec0183a3f2 100644 (file)
@@ -59,18 +59,18 @@ MySqlConfigBackendImpl::~MySqlConfigBackendImpl() {
     }
 }
 
-void
+uint64_t
 MySqlConfigBackendImpl::deleteFromTable(const int index) {
     MySqlBindingCollection in_bindings;
-    conn_.updateDeleteQuery(index, in_bindings);
+    return (conn_.updateDeleteQuery(index, in_bindings));
 }
 
-void
+uint64_t
 MySqlConfigBackendImpl::deleteFromTable(const int index, const std::string& key) {
     MySqlBindingCollection in_bindings = {
             MySqlBinding::createString(key)
     };
-    conn_.updateDeleteQuery(index, in_bindings);
+    return (conn_.updateDeleteQuery(index, in_bindings));
 }
 
 void
index c3f81f3168e9074ae6ee004b9707cef2283faa72..ffb9c9c887a1681ee5a4ecabb2e5c3974541be58 100644 (file)
@@ -36,15 +36,17 @@ public:
     /// @brief Sends query to delete rows from a table.
     ///
     /// @param index Index of the statement to be executed.
-    void deleteFromTable(const int index);
+    /// @return Number of deleted rows.
+    uint64_t deleteFromTable(const int index);
 
     /// @brief Sends query to delete rows from a table.
     ///
     /// @param index Index of the statement to be executed.
     /// @param key String value to be used as input binding to the delete
     /// statement
-    void deleteFromTable(const int index,
-                         const std::string& key);
+    /// @return number of deleted rows.
+    uint64_t deleteFromTable(const int index,
+                             const std::string& key);
 
     /// @brief Sends query to the database to retrieve multiple option
     /// definitions.
index b3d1c81623dc097272550d9a9b0ecb405257f20a..93ad080cffcdff00871224fca495b415eacd11f9 100644 (file)
@@ -389,7 +389,7 @@ protected:
     /// void createUpdateSubnet6(const Subnet6Ptr& subnet,
     ///                          const BackendSelector& backend_selector,
     ///                          const ServerSelector& server_selector) {
-    ///     createUpdateDeleteProperty<const Subnet6Ptr&>
+    ///     createUpdateDeleteProperty<void, const Subnet6Ptr&>
     ///         (&ConfigBackendDHCPv6::createUpdateSubnet6, backend_selector,
     ///          server_selector, subnet, selector);
     /// }
@@ -406,6 +406,7 @@ protected:
     /// backend is selected, an exception is thrown. If no backend is selected
     /// an exception is thrown either.
     ///
+    /// @tparam ReturnValue Returned value, typically void or uint64_t.
     /// @tparam FnPtrArgs Parameter pack holding argument types of the backend
     /// method to be invoked.
     /// @tparam Args Parameter pack holding types of the arguments provided
@@ -421,12 +422,13 @@ protected:
     /// was found.
     /// @throw db::AmbiguousDatabase if multiple databases matching the selector
     /// were found.
-    template<typename... FnPtrArgs, typename... Args>
-    void createUpdateDeleteProperty(void (ConfigBackendType::*MethodPointer)
-                                    (const db::ServerSelector&, FnPtrArgs...),
-                                    const db::BackendSelector& backend_selector,
-                                    const db::ServerSelector& server_selector,
-                                    Args... input) {
+    /// @return Number of affected properties, if the value is non void.
+    template<typename ReturnValue, typename... FnPtrArgs, typename... Args>
+    ReturnValue createUpdateDeleteProperty(ReturnValue (ConfigBackendType::*MethodPointer)
+                                           (const db::ServerSelector&, FnPtrArgs...),
+                                           const db::BackendSelector& backend_selector,
+                                           const db::ServerSelector& server_selector,
+                                           Args... input) {
         auto backends = selectBackends(backend_selector);
         if (backends.empty()) {
             isc_throw(db::NoSuchDatabase, "no database found for selector: "
@@ -437,7 +439,7 @@ protected:
                       "selector: " << backend_selector.toText());
         }
 
-        (*(*(backends.begin())).*MethodPointer)(server_selector, input...);
+        return ((*(*(backends.begin())).*MethodPointer)(server_selector, input...));
     }
 
     /// @brief Selects existing backends matching the selector.
index 040d1048a23fc1f1d133799c24ed73f8c40f7358..e724d86410145b06505479dbe4442a8ab7ede78c 100644 (file)
@@ -314,7 +314,7 @@ public:
                                 const BackendSelector& backend_selector,
                                 const ServerSelector& server_selector =
                                 ServerSelector::ALL()) {
-        createUpdateDeleteProperty<const std::pair<std::string, int>&>
+        createUpdateDeleteProperty<void, const std::pair<std::string, int>&>
             (&TestConfigBackend::createProperty, backend_selector, server_selector,
              new_property);
     }
index 3a6cf0f870d99eaa8171a2683e4856aa0d4aa99e..af318d0dcf8d92bb14ad0185e6e6382834f60bff 100644 (file)
@@ -220,7 +220,8 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param subnet_prefix Prefix of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::ServerSelector& server_selector,
                   const std::string& subnet_prefix) = 0;
 
@@ -228,27 +229,31 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param subnet_id Identifier of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::ServerSelector& server_selector, const SubnetID& subnet_id) = 0;
 
     /// @brief Deletes all subnets.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteAllSubnets4(const db::ServerSelector& server_selector) = 0;
 
     /// @brief Deletes shared network by name.
     ///
     /// @param server_selector Server selector.
     /// @param name Name of the shared network to be deleted.
-    virtual void
+    /// @return Number of deleted shared networks..
+    virtual uint64_t
     deleteSharedNetwork4(const db::ServerSelector& server_selector,
                          const std::string& name) = 0;
 
     /// @brief Deletes all shared networks.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted shared networks.
+    virtual uint64_t
     deleteAllSharedNetworks4(const db::ServerSelector& server_selector) = 0;
 
     /// @brief Deletes option definition.
@@ -256,14 +261,16 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteOptionDef4(const db::ServerSelector& server_selector, const uint16_t code,
                      const std::string& space) = 0;
 
     /// @brief Deletes all option definitions.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteAllOptionDefs4(const db::ServerSelector& server_selector) = 0;
 
     /// @brief Deletes global option.
@@ -271,7 +278,8 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector, const uint16_t code,
                   const std::string& space) = 0;
 
@@ -282,7 +290,8 @@ public:
     /// belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector, const SubnetID& subnet_id,
                   const uint16_t code, const std::string& space) = 0;
 
@@ -295,7 +304,8 @@ public:
     /// deleted option belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::ServerSelector& server_selector,
                   const asiolink::IOAddress& pool_start_address,
                   const asiolink::IOAddress& pool_end_address,
@@ -306,14 +316,16 @@ public:
     ///
     /// @param server_selector Server selector.
     /// @param name Name of the global parameter to be deleted.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteGlobalParameter4(const db::ServerSelector& server_selector,
                            const std::string& name) = 0;
 
     /// @brief Deletes all global parameters.
     ///
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteAllGlobalParameters4(const db::ServerSelector& server_selector) = 0;
 };
 
index d3782737814b4ef5144c56d03e7f7164a6a8c945..79a928763408b0ea274db487e13e6ce15d1b94e1 100644 (file)
@@ -159,7 +159,7 @@ void
 ConfigBackendPoolDHCPv4::createUpdateSubnet4(const db::BackendSelector& backend_selector,
                                              const db::ServerSelector& server_selector,
                                              const Subnet4Ptr& subnet) {
-    createUpdateDeleteProperty<const Subnet4Ptr&>
+    createUpdateDeleteProperty<void, const Subnet4Ptr&>
         (&ConfigBackendDHCPv4::createUpdateSubnet4, backend_selector,
          server_selector, subnet);
 }
@@ -168,7 +168,7 @@ void
 ConfigBackendPoolDHCPv4::createUpdateSharedNetwork4(const db::BackendSelector& backend_selector,
                                                     const db::ServerSelector& server_selector,
                                                     const SharedNetwork4Ptr& shared_network) {
-    createUpdateDeleteProperty<const SharedNetwork4Ptr&>
+    createUpdateDeleteProperty<void, const SharedNetwork4Ptr&>
         (&ConfigBackendDHCPv4::createUpdateSharedNetwork4, backend_selector,
          server_selector, shared_network);
 }
@@ -177,7 +177,7 @@ void
 ConfigBackendPoolDHCPv4::createUpdateOptionDef4(const db::BackendSelector& backend_selector,
                                                 const db::ServerSelector& server_selector,
                                                 const OptionDefinitionPtr& option_def) {
-    createUpdateDeleteProperty<const OptionDefinitionPtr&>
+    createUpdateDeleteProperty<void, const OptionDefinitionPtr&>
         (&ConfigBackendDHCPv4::createUpdateOptionDef4, backend_selector,
          server_selector, option_def);
 }
@@ -186,7 +186,7 @@ void
 ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_selector,
                                              const db::ServerSelector& server_selector,
                                              const OptionPtr& option) {
-    createUpdateDeleteProperty<const OptionPtr&>
+    createUpdateDeleteProperty<void, const OptionPtr&>
         (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector,
          server_selector, option);
 }
@@ -196,7 +196,7 @@ ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_
                                              const db::ServerSelector& server_selector,
                                              const SubnetID& subnet_id,
                                              const OptionPtr& option) {
-    createUpdateDeleteProperty<const SubnetID&, const OptionPtr&>
+    createUpdateDeleteProperty<void, const SubnetID&, const OptionPtr&>
         (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector,
          server_selector, subnet_id, option);
 }
@@ -207,7 +207,7 @@ ConfigBackendPoolDHCPv4::createUpdateOption4(const db::BackendSelector& backend_
                                              const IOAddress& pool_start_address,
                                              const IOAddress& pool_end_address,
                                              const OptionPtr& option) {
-    createUpdateDeleteProperty<const IOAddress&, const IOAddress&, const OptionPtr&>
+    createUpdateDeleteProperty<void, const IOAddress&, const IOAddress&, const OptionPtr&>
         (&ConfigBackendDHCPv4::createUpdateOption4, backend_selector,
          server_selector, pool_start_address, pool_end_address, option);
 }
@@ -217,7 +217,7 @@ ConfigBackendPoolDHCPv4::createUpdateGlobalParameter4(const db::BackendSelector&
                                                       const db::ServerSelector& server_selector,
                                                       const std::string& name,
                                                       const std::string& value) {
-    createUpdateDeleteProperty<const std::string&, const std::string&>
+    createUpdateDeleteProperty<void, const std::string&, const std::string&>
         (&ConfigBackendDHCPv4::createUpdateGlobalParameter4, backend_selector,
          server_selector, name, value);
 }
@@ -227,118 +227,118 @@ ConfigBackendPoolDHCPv4::createUpdateGlobalParameter4(const db::BackendSelector&
                                                       const db::ServerSelector& server_selector,
                                                       const std::string& name,
                                                       const int64_t value) {
-    createUpdateDeleteProperty<const std::string&, int64_t>
+    createUpdateDeleteProperty<void, const std::string&, int64_t>
         (&ConfigBackendDHCPv4::createUpdateGlobalParameter4, backend_selector,
          server_selector, name, value);
 }
     
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteSubnet4(const db::BackendSelector& backend_selector,
                                        const db::ServerSelector& server_selector,
                                        const std::string& subnet_prefix) {
-    createUpdateDeleteProperty<const std::string&>
-        (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector,
-         subnet_prefix);
+    return (createUpdateDeleteProperty<uint64_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector,
+             subnet_prefix));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteSubnet4(const db::BackendSelector& backend_selector,
                                        const db::ServerSelector& server_selector,
                                        const SubnetID& subnet_id) {
-    createUpdateDeleteProperty<const SubnetID&>
-        (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector,
-         subnet_id);
+    return (createUpdateDeleteProperty<uint64_t, const SubnetID&>
+            (&ConfigBackendDHCPv4::deleteSubnet4, backend_selector, server_selector,
+             subnet_id));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteAllSubnets4(const db::BackendSelector& backend_selector,
                                           const db::ServerSelector& server_selector) {
-    createUpdateDeleteProperty<>
-        (&ConfigBackendDHCPv4::deleteAllSubnets4, backend_selector, server_selector);
+    return (createUpdateDeleteProperty<uint64_t>
+            (&ConfigBackendDHCPv4::deleteAllSubnets4, backend_selector, server_selector));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteSharedNetwork4(const db::BackendSelector& backend_selector,
                                               const db::ServerSelector& server_selector,
                                               const std::string& name) {
-    createUpdateDeleteProperty<const std::string&>
-        (&ConfigBackendDHCPv4::deleteSharedNetwork4, backend_selector,
-         server_selector, name);
+    return (createUpdateDeleteProperty<uint64_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteSharedNetwork4, backend_selector,
+             server_selector, name));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteAllSharedNetworks4(const db::BackendSelector& backend_selector,
                                                   const db::ServerSelector& server_selector) {
-    createUpdateDeleteProperty<>
-        (&ConfigBackendDHCPv4::deleteAllSharedNetworks4, backend_selector, server_selector);
+    return (createUpdateDeleteProperty<uint64_t>
+            (&ConfigBackendDHCPv4::deleteAllSharedNetworks4, backend_selector, server_selector));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteOptionDef4(const db::BackendSelector& backend_selector,
                                           const db::ServerSelector& server_selector,
                                           const uint16_t code,
                                           const std::string& space) {
-    createUpdateDeleteProperty<uint16_t, const std::string&>
-        (&ConfigBackendDHCPv4::deleteOptionDef4, backend_selector,
-         server_selector, code, space);
+    return (createUpdateDeleteProperty<uint64_t, uint16_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteOptionDef4, backend_selector,
+             server_selector, code, space));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteAllOptionDefs4(const db::BackendSelector& backend_selector,
                                               const db::ServerSelector& server_selector) {
-    createUpdateDeleteProperty<>
-        (&ConfigBackendDHCPv4::deleteAllOptionDefs4, backend_selector, server_selector);
+    return (createUpdateDeleteProperty<uint64_t>
+            (&ConfigBackendDHCPv4::deleteAllOptionDefs4, backend_selector, server_selector));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector,
                                        const db::ServerSelector& server_selector,
                                        const uint16_t code,
                                        const std::string& space) {
-    createUpdateDeleteProperty<uint16_t, const std::string&>
-        (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
-         code, space);
+    return (createUpdateDeleteProperty<uint64_t, uint16_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
+             code, space));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector,
                                        const db::ServerSelector& server_selector,
                                        const SubnetID& subnet_id,
                                        const uint16_t code,
                                        const std::string& space) {
-    createUpdateDeleteProperty<const SubnetID&, uint16_t, const std::string&>
-        (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
-         subnet_id, code, space);
+    return (createUpdateDeleteProperty<uint64_t, const SubnetID&, uint16_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
+             subnet_id, code, space));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteOption4(const db::BackendSelector& backend_selector,
                                        const db::ServerSelector& server_selector,
                                        const asiolink::IOAddress& pool_start_address,
                                        const asiolink::IOAddress& pool_end_address,
                                        const uint16_t code,
                                        const std::string& space) {
-    createUpdateDeleteProperty<const IOAddress&, const IOAddress&, uint16_t,
-                               const std::string&>
-        (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
-         pool_start_address, pool_end_address, code, space);
+    return (createUpdateDeleteProperty<uint64_t, const IOAddress&, const IOAddress&,
+                                       uint16_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteOption4, backend_selector, server_selector,
+             pool_start_address, pool_end_address, code, space));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteGlobalParameter4(const db::BackendSelector& backend_selector,
                                                 const db::ServerSelector& server_selector,
                                                 const std::string& name) {
-    createUpdateDeleteProperty<const std::string&>
-        (&ConfigBackendDHCPv4::deleteGlobalParameter4, backend_selector,
-         server_selector, name);
+    return (createUpdateDeleteProperty<uint64_t, const std::string&>
+            (&ConfigBackendDHCPv4::deleteGlobalParameter4, backend_selector,
+             server_selector, name));
 }
 
-void
+uint64_t
 ConfigBackendPoolDHCPv4::deleteAllGlobalParameters4(const db::BackendSelector& backend_selector,
                                                     const db::ServerSelector& server_selector) {
-    createUpdateDeleteProperty<>
-        (&ConfigBackendDHCPv4::deleteAllGlobalParameters4, backend_selector,
-         server_selector);
+    return (createUpdateDeleteProperty<uint64_t>
+            (&ConfigBackendDHCPv4::deleteAllGlobalParameters4, backend_selector,
+             server_selector));
 }
 
 
index 271e5cc462081d59b630380ee147c81033423f70..3ac592dfeb5f708bd222b64567a05d315d537366 100644 (file)
@@ -263,7 +263,8 @@ public:
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
     /// @param subnet_prefix Prefix of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::BackendSelector& backend_selector,
                   const db::ServerSelector& server_selector,
                   const std::string& subnet_prefix);
@@ -273,7 +274,8 @@ public:
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
     /// @param subnet_id Identifier of the subnet to be deleted.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteSubnet4(const db::BackendSelector& backend_selector,
                   const db::ServerSelector& server_selector,
                   const SubnetID& subnet_id);
@@ -282,7 +284,8 @@ public:
     ///
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted subnets.
+    virtual uint64_t
     deleteAllSubnets4(const db::BackendSelector& backend_selector,
                       const db::ServerSelector& server_selector);
 
@@ -291,7 +294,8 @@ public:
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
     /// @param name Name of the shared network to be deleted.
-    virtual void
+    /// @return Number of deleted shared networks.
+    virtual uint64_t
     deleteSharedNetwork4(const db::BackendSelector& backend_selector,
                          const db::ServerSelector& server_selector,
                          const std::string& name);
@@ -300,7 +304,8 @@ public:
     ///
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted shared networks.
+    virtual uint64_t
     deleteAllSharedNetworks4(const db::BackendSelector& backend_selector,
                              const db::ServerSelector& server_selector);
 
@@ -310,7 +315,8 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteOptionDef4(const db::BackendSelector& backend_selector,
                      const db::ServerSelector& server_selector,
                      const uint16_t code,
@@ -320,7 +326,8 @@ public:
     ///
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted option definitions.
+    virtual uint64_t
     deleteAllOptionDefs4(const db::BackendSelector& backend_selector,
                          const db::ServerSelector& server_selector);
 
@@ -330,7 +337,8 @@ public:
     /// @param server_selector Server selector.
     /// @param code Code of the option to be deleted.
     /// @param space Option space of the option to be deleted.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::BackendSelector& backend_selector,
                   const db::ServerSelector& server_selector,
                   const uint16_t code,
@@ -344,7 +352,8 @@ public:
     /// belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::BackendSelector& backend_selector,
                   const db::ServerSelector& server_selector,
                   const SubnetID& subnet_id,
@@ -360,7 +369,8 @@ public:
     /// deleted option belongs.
     /// @param code Code of the deleted option.
     /// @param space Option space of the deleted option.
-    virtual void
+    /// @return Number of deleted options.
+    virtual uint64_t
     deleteOption4(const db::BackendSelector& backend_selector,
                   const db::ServerSelector& server_selector,
                   const asiolink::IOAddress& pool_start_address,
@@ -373,7 +383,8 @@ public:
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
     /// @param name Name of the global parameter to be deleted.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteGlobalParameter4(const db::BackendSelector& backend_selector,
                            const db::ServerSelector& server_selector,
                            const std::string& name);
@@ -382,7 +393,8 @@ public:
     ///
     /// @param backend_selector Backend selector.
     /// @param server_selector Server selector.
-    virtual void
+    /// @return Number of deleted global parameters.
+    virtual uint64_t
     deleteAllGlobalParameters4(const db::BackendSelector& backend_selector,
                                const db::ServerSelector& server_selector);
 };