2e6d6714eb049206db111387d29ec81433cdd1f2 braney Sun Oct 9 10:07:07 2011 -0700 don't reopen the trackHub's since they get opened when we check the status diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index 79f76a6..0fc8721 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -553,15 +553,44 @@ } else if (tHub != NULL) { int dbCount = 0; char *dbList = getDbList(tHub, &dbCount); safef(query, sizeof(query), "update %s set shortLabel=\"%s\",longLabel=\"%s\",dbCount=\"%d\",dbList=\"%s\",errorMessage=\"\",lastOkTime=now() where id=%d", hubStatusTableName, tHub->shortLabel, tHub->shortLabel, dbCount, dbList, hub->id); sqlUpdate(conn, query); } hDisconnectCentral(&conn); } + +struct trackDb *hubAddTracks(struct hubConnectStatus *hub, char *database, + struct trackHub **pHubList) +/* Load up stuff from data hub and append to list. The hubUrl points to + * a trackDb.ra format file. */ +{ +/* Load trackDb.ra file and make it into proper trackDb tree */ +struct trackDb *tdbList = NULL; +struct trackHub *trackHub = hub->trackHub; + +if (trackHub != NULL) + { + char hubName[64]; + safef(hubName, sizeof(hubName), "hub_%d", hub->id); + trackHub->name = cloneString(hubName); + + struct trackHubGenome *hubGenome = trackHubFindGenome(trackHub, database); + if (hubGenome != NULL) + { + tdbList = trackHubTracksForGenome(trackHub, hubGenome); + tdbList = trackDbLinkUpGenerations(tdbList); + tdbList = trackDbPolishAfterLinkup(tdbList, database); + trackDbPrioritizeContainerItems(tdbList); + if (tdbList != NULL) + slAddHead(pHubList, trackHub); + } + } +return tdbList; +}