cff0a237099d06f16896ec781a85cccb1a663849 braney Mon Dec 21 14:21:59 2020 -0800 make sure that trackDb cache on hubs keeps track of files that are included in the trackDb.txt file diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h index 39d7e09..8d79654 100644 --- src/hg/inc/trackDb.h +++ src/hg/inc/trackDb.h @@ -348,37 +348,39 @@ /* ----------- End of AutoSQL generated code --------------------- */ struct trackDb *trackDbNew(); /* Allocate a new trackDb with just very minimal stuff filled in. */ int trackDbCmp(const void *va, const void *vb); /* Sort track by priority. */ int trackDbCmpShortLabel(const void *va, const void *vb); /* Sort track by shortLabel. */ void trackDbOverridePriority(struct hash *tdHash, char *priorityRa); /* Override priority settings using a ra file. */ -struct trackDb *trackDbFromRa(char *raFile, char *releaseTag); +struct trackDb *trackDbFromRa(char *raFile, char *releaseTag, struct dyString *incFiles); /* Load track info from ra file into list. If releaseTag is non-NULL - * then only load tracks that mesh with release. */ + * then only load tracks that mesh with release. if incFiles is non-null, + * add included file names to it.*/ -struct trackDb *trackDbFromOpenRa(struct lineFile *lf, char *releaseTag); +struct trackDb *trackDbFromOpenRa(struct lineFile *lf, char *releaseTag, struct dyString *incFiles); /* Load track info from ra file already opened as lineFile into list. If releaseTag is - * non-NULL then only load tracks that mesh with release. */ + * non-NULL then only load tracks that mesh with release. If incFiles is not-NULL, put + * list of included files in there. */ void trackDbPolish(struct trackDb *bt); /* Fill in missing values with defaults. */ void trackDbFieldsFromSettings(struct trackDb *td); /* Update trackDb fields from settings hash */ char *trackDbLocalSetting(struct trackDb *tdb, char *name); /* Return setting from tdb, but *not* any of it's parents. */ struct hash *trackDbHashSettings(struct trackDb *tdb); /* Force trackDb to hash up it's settings. Usually this is just * done on demand. Returns settings hash. */ struct hash *trackDbSettingsFromString(struct trackDb *tdb, char *string); @@ -715,32 +717,32 @@ * or a tab-separated or tagStorm file with a foreign key specified by the "meta" tag. */ char *trackDbViewSetting(struct trackDb *tdb, char *name); /* Return view setting from tdb, but *not* any of it's parents. */ struct trackDb *lmCloneTdb(struct lm *lm, struct trackDb *tdb, struct trackDb *parent, struct hash *superHash); /* clone a single tdb structure. Will clone its children if it has any */ struct trackDb *lmCloneTdbList(struct lm *lm, struct trackDb *list, struct trackDb *parent, struct hash *superHash); /* clone a list of tdb structures. */ struct trackDb *lmCloneSuper(struct lm *lm, struct trackDb *tdb, struct hash *superHash); /* clone a super track tdb structure. */ -void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size); -/* For this hub, Allocate shared memory and clone trackDb list into it. */ +void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size, char *incFiles); +/* For this hub, Allocate shared memory and clone trackDb list into it. incFiles has a list of include files that may be null. */ void trackDbCloneTdbListToSharedMem(char *db, char *tdbPathString, struct trackDb *list, unsigned long size); /* For this native db, allocate shared memory and clone trackDb list into it. */ struct trackDb *trackDbCache(char *db, char *tdbPathString, time_t time); /* Check to see if this db and trackDb table has a cached trackDb. */ struct trackDb *trackDbHubCache(char *trackDbUrl, time_t time); /* Check to see if this hub has a cached trackDb. */ boolean trackDbCacheOn(); /* Check to see if we're caching trackDb contents. */ char *labelAsFiltered(char *label); /* add text to label to indicate filter is active */