ae91fde2bdbbb1b057c10afca6e331df83971c5f
kent
Sat Jan 8 21:03:32 2011 -0800
Adding trackDbPolishAfterLinkup routine that bundles together a number of other calls, and exposing it for use by data hub trackDb list makers.
diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index bc2582e..24f21eb 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -3547,53 +3547,61 @@
return NULL;
}
#ifdef DEBUG
static void dumpFlagStatus(struct trackDb *tdbList, char *tableName, char *label)
/* Look for tdbList for track matching tableName. Print out info on it starting with label. */
{
struct trackDb *tdb = rFindTrack(0, tdbList, tableName);
if (tdb == NULL)
printf("%s: nil
\n", label);
else
printf("%s: treeNodeType %d, composite? %d, supertrack ? %d
\n", label, tdb->treeNodeType, COMPOSITE_NODE(tdb->treeNodeType), SUPERTRACK_NODE(tdb->treeNodeType));
}
#endif /* DEBUG */
+struct trackDb *trackDbPolishAfterLinkup(struct trackDb *tdbList, char *db)
+/* Do various massaging that can only be done after parent/child
+ * relationships are established. */
+{
+tdbList = pruneEmpties(tdbList, db, hIsPrivateHost(), 0);
+trackDbContainerMarkup(NULL, tdbList);
+rInheritFields(tdbList);
+slSort(&tdbList, trackDbCmp);
+return tdbList;
+}
+
struct trackDb *hTrackDb(char *db)
/* Load tracks associated with current db.
* Supertracks are loaded as a trackDb, but are not in the returned list,
* but are accessible via the parent pointers of the member tracks. Also,
* the supertrack trackDb subtrack fields are not set here (would be
* incompatible with the returned list)
* Returns list sorted by priority
* NOTE: this result is cached, do not free it !
*/
{
// static char *existingDb = NULL;
// static struct trackDb *tdbList = NULL;
struct trackDb *tdbList = NULL;
//if (differentStringNullOk(existingDb, db))
// {
tdbList = loadTrackDb(db, NULL);
tdbList = trackDbLinkUpGenerations(tdbList);
+ tdbList = trackDbPolishAfterLinkup(tdbList, db);
// freeMem(existingDb);
// existingDb = cloneString(db);
- tdbList = pruneEmpties(tdbList, db, hIsPrivateHost(), 0);
- trackDbContainerMarkup(NULL, tdbList);
- rInheritFields(tdbList);
- slSort(&tdbList, trackDbCmp);
// }
return tdbList;
}
static struct trackDb *loadAndLookupTrackDb(struct sqlConnection *conn,
char *where)
/* Load trackDb object(s). Nothing done for composite tracks here. */
{
return loadTrackDb(sqlGetDatabase(conn), where);
}
static struct trackDb *loadTrackDbForTrack(struct sqlConnection *conn,
char *track)
/* Load trackDb object for a track. this is common code for two external
* functions. Handle composite tracks and subtrack inheritance here.