fa7a11afb5f19dd5a2fa3382fc38662f34b6f147 braney Wed May 29 13:55:44 2019 -0700 first cut at caching trackDb in a shared memory location. No changes in running code if "cacheTrackDb" hg.conf variable doesn't exist diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h index ebc6c13..c163803 100644 --- src/hg/inc/trackDb.h +++ src/hg/inc/trackDb.h @@ -684,17 +684,32 @@ { return startsWithWord("bedGraph", tdb->type); } boolean trackDbSettingBlocksConfiguration(struct trackDb *tdb, boolean onlyAjax); // Configuration dialogs may be explicitly blocked in tracDb settings struct slPair *trackDbMetaPairs(struct trackDb *tdb); /* Read in metadata given a trackDb entry. This routine understands the three ways * that metadata can be represented in a trackDb stanza: "metadata" lines per stanza, * 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. */ + +struct trackDb *cloneTdbListToSharedMem(struct trackDb *list, unsigned long size); +/* Allocate shared memory and clone trackDb list into it. */ + +struct trackDb *mapSharedMemTrackDb(char *file, unsigned long address, unsigned long size); +/* Use a hunk of shared memory as our trackDb list. */ #endif /* TRACKDB_H */