src/hg/lib/cart.c 1.105

1.105 2009/03/19 21:02:59 tdreszer
New routines to help reset cart for single table or composite.
Index: src/hg/lib/cart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/cart.c,v
retrieving revision 1.104
retrieving revision 1.105
diff -b -B -U 4 -r1.104 -r1.105
--- src/hg/lib/cart.c	13 Mar 2009 23:25:43 -0000	1.104
+++ src/hg/lib/cart.c	19 Mar 2009 21:02:59 -0000	1.105
@@ -1734,4 +1734,25 @@
 freeMem(var);
 return slNames;
 }
 
+void cartRemoveAllForTdb(struct cart *cart, struct trackDb *tdb)
+/* Remove all variables from cart that are associated with this tdb. */
+{
+char setting[128];
+safef(setting,sizeof(setting),"%s.",tdb->tableName);
+cartRemovePrefix(cart,setting);
+safef(setting,sizeof(setting),"%s_",tdb->tableName); // TODO: All should be {tableName}.{varName}... Fix {tableName}_sel
+cartRemovePrefix(cart,setting);
+cartRemove(cart,tdb->tableName);
+}
+
+void cartRemoveAllForTdbAndChildren(struct cart *cart, struct trackDb *tdb)
+/* Remove all variables from cart that are associated
+   with this tdb and it's children. */
+{
+cartRemoveAllForTdb(cart,tdb);
+struct trackDb *subTdb;
+for(subTdb=tdb->subtracks;subTdb!=NULL;subTdb=subTdb->next)
+    cartRemoveAllForTdb(cart,subTdb);
+}
+