da0932abedd063b6e9fe087bc26ab9ef53b6cd2e braney Thu Apr 22 16:43:20 2021 -0700 make hubApi use the trackDb cache. diff --git src/hg/hubApi/apiUtils.c src/hg/hubApi/apiUtils.c index b6e5854..98beabf 100644 --- src/hg/hubApi/apiUtils.c +++ src/hg/hubApi/apiUtils.c @@ -1,17 +1,18 @@ /* utility functions for data API business */ +#include "trackHub.h" #include "dataApi.h" /* when measureTiming is used */ static long processingStart = 0; void startProcessTiming() /* for measureTiming, beginning processing */ { processingStart = clock1000(); } void apiFinishOutput(int errorCode, char *errorString, struct jsonWrite *jw) /* finish json output, potential output an error code other than 200 */ { /* this is the first time any output to stdout has taken place for @@ -294,35 +295,31 @@ if (dif < 0) return -1; else if (dif == 0.0) return strcasecmp(a->shortLabel, b->shortLabel); else return 1; } struct trackDb *obtainTdb(struct trackHubGenome *genome, char *db) /* return a full trackDb fiven the hub genome pointer, or ucsc database name */ { struct trackDb *tdb = NULL; if (db) tdb = hTrackDb(db); else - { - tdb = trackHubTracksForGenome(genome->trackHub, genome, NULL); - tdb = trackDbLinkUpGenerations(tdb); - tdb = trackDbPolishAfterLinkup(tdb, genome->name); - } + tdb = trackHubAddTracksGenome(genome); slSort(tdb, trackDbTrackCmp); // slSort(&tdb, trackDbCmp); return tdb; } struct trackDb *findTrackDb(char *track, struct trackDb *tdb) /* search tdb structure for specific track, recursion on subtracks */ { struct trackDb *trackFound = NULL; for (trackFound = tdb; trackFound; trackFound = trackFound->next) { if (trackFound->subtracks) { struct trackDb *subTrack = findTrackDb(track, trackFound->subtracks);