[fwbuilder-commits] r471 - branches/v3_1/src/fwbuilder
Brought to you by:
mikehorn
From: <va...@in...> - 2009-11-21 00:49:47
|
Author: vadim Date: 2009-11-20 16:19:03 -0800 (Fri, 20 Nov 2009) New Revision: 471 Modified: branches/v3_1/src/fwbuilder/ClusterGroup.cpp branches/v3_1/src/fwbuilder/FWObject.cpp branches/v3_1/src/fwbuilder/FWObject.h branches/v3_1/src/fwbuilder/Firewall.cpp branches/v3_1/src/fwbuilder/Group.cpp Log: added protected method FWObect::setRO() to support undo/redo of the object locking operation Modified: branches/v3_1/src/fwbuilder/ClusterGroup.cpp =================================================================== --- branches/v3_1/src/fwbuilder/ClusterGroup.cpp 2009-11-20 23:28:29 UTC (rev 470) +++ branches/v3_1/src/fwbuilder/ClusterGroup.cpp 2009-11-21 00:19:03 UTC (rev 471) @@ -111,7 +111,7 @@ { if (ClusterGroup::constcast(obj)==NULL) return *this; - shallowDuplicate(obj); + setRO(false); ClusterGroupOptions *their_opts = ClusterGroupOptions::cast( obj->getFirstByType(ClusterGroupOptions::TYPENAME)); @@ -135,6 +135,8 @@ } if (their_opts && mine_opts) mine_opts->duplicate(their_opts); if (their_opts && mine_opts==NULL) addCopyOf(their_opts); + + shallowDuplicate(obj); return *this; } Modified: branches/v3_1/src/fwbuilder/FWObject.cpp =================================================================== --- branches/v3_1/src/fwbuilder/FWObject.cpp 2009-11-20 23:28:29 UTC (rev 470) +++ branches/v3_1/src/fwbuilder/FWObject.cpp 2009-11-21 00:19:03 UTC (rev 471) @@ -456,7 +456,7 @@ FWObject& FWObject::duplicateForUndo(const FWObject *obj) throw(FWException) { - shallowDuplicate(obj); + setRO(false); InheritsFWOptions pred; FWObject::const_iterator mine_opts_iter = std::find_if(begin(), end(), pred); FWObject::const_iterator their_opts_iter = std::find_if(obj->begin(), obj->end(), pred); @@ -465,6 +465,7 @@ if (mine_opts_iter != end()) (*mine_opts_iter)->duplicate(*their_opts_iter); else addCopyOf(*their_opts_iter); } + shallowDuplicate(obj); return *this; } Modified: branches/v3_1/src/fwbuilder/FWObject.h =================================================================== --- branches/v3_1/src/fwbuilder/FWObject.h 2009-11-20 23:28:29 UTC (rev 470) +++ branches/v3_1/src/fwbuilder/FWObject.h 2009-11-21 00:19:03 UTC (rev 471) @@ -121,7 +121,9 @@ void _findDependencies_internal(FWObject *obj, std::list<FWObject*> &deps, int anti_loop_id); - + + void setRO(bool f) { ro = f; } + virtual void replaceReferenceInternal(int oldfw_id, int newfw_id, int &counter); /** Modified: branches/v3_1/src/fwbuilder/Firewall.cpp =================================================================== --- branches/v3_1/src/fwbuilder/Firewall.cpp 2009-11-20 23:28:29 UTC (rev 470) +++ branches/v3_1/src/fwbuilder/Firewall.cpp 2009-11-21 00:19:03 UTC (rev 471) @@ -377,13 +377,14 @@ FWObject& Firewall::duplicateForUndo(const FWObject *obj) throw(FWException) { - FWObject::duplicateForUndo(obj); + setRO(false); FWObject *their_mgmt = obj->getFirstByType(Management::TYPENAME); if (their_mgmt) { FWObject *my_mgmt = getManagementObject(); if (my_mgmt) my_mgmt->duplicate(their_mgmt); } + FWObject::duplicateForUndo(obj); return *this; } Modified: branches/v3_1/src/fwbuilder/Group.cpp =================================================================== --- branches/v3_1/src/fwbuilder/Group.cpp 2009-11-20 23:28:29 UTC (rev 470) +++ branches/v3_1/src/fwbuilder/Group.cpp 2009-11-21 00:19:03 UTC (rev 471) @@ -91,7 +91,7 @@ */ FWObject& Group::duplicateForUndo(const FWObject *obj) throw(FWException) { - shallowDuplicate(obj); + setRO(false); if (obj->size() && FWReference::cast(obj->front())!=NULL) { destroyChildren(); @@ -104,6 +104,7 @@ } } } + shallowDuplicate(obj); return *this; } |