+void
+SATResolver::resetItemTransaction (PoolItem item)
+{
+ bool found = false;
+ for (PoolItemList::const_iterator iter = _items_to_remove.begin();
+ iter != _items_to_remove.end(); ++iter) {
+ if (*iter == item) {
+ _items_to_remove.remove(*iter);
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ for (PoolItemList::const_iterator iter = _items_to_install.begin();
+ iter != _items_to_install.end(); ++iter) {
+ if (*iter == item) {
+ _items_to_install.remove(*iter);
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found) {
+ for (PoolItemList::const_iterator iter = _items_to_keep.begin();
+ iter != _items_to_keep.end(); ++iter) {
+ if (*iter == item) {
+ _items_to_keep.remove(*iter);
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found) {
+ for (PoolItemList::const_iterator iter = _items_to_lock.begin();
+ iter != _items_to_lock.end(); ++iter) {
+ if (*iter == item) {
+ _items_to_lock.remove(*iter);
+ found = true;
+ break;
+ }
+ }
+ }
+}
+
+
+void
+SATResolver::addPoolItemToInstall (PoolItem item)
+{
+ resetItemTransaction (item);
+ _items_to_install.push_back (item);
+ _items_to_install.unique ();
+}
+
+
+void
+SATResolver::addPoolItemsToInstallFromList (PoolItemList & rl)
+{
+ for (PoolItemList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+ addPoolItemToInstall (*iter);
+ }
+}
+
+
+void
+SATResolver::addPoolItemToRemove (PoolItem item)
+{
+ resetItemTransaction (item);
+ _items_to_remove.push_back (item);
+ _items_to_remove.unique ();
+}
+
+
+void
+SATResolver::addPoolItemsToRemoveFromList (PoolItemList & rl)
+{
+ for (PoolItemList::const_iterator iter = rl.begin(); iter != rl.end(); iter++) {
+ addPoolItemToRemove (*iter);
+ }
+}
+
+void
+SATResolver::addPoolItemToLock (PoolItem item)
+{
+ resetItemTransaction (item);
+ _items_to_lock.push_back (item);
+ _items_to_lock.unique ();
+}
+
+void
+SATResolver::addPoolItemToKeep (PoolItem item)
+{
+ resetItemTransaction (item);
+ _items_to_keep.push_back (item);
+ _items_to_keep.unique ();
+}
+