5f9691856204ac8ee77795e1b9a89f82f825d2cd angie Fri Jun 1 14:39:34 2012 -0700 Feature #6152 (Variant Annotation Integrator): added getHeader methodto annoStreamer so formatters can include primary source's header in output -- header is a crucial part of some formats e.g. VCF. diff --git src/lib/annoStreamer.c src/lib/annoStreamer.c index b909e12..202cc80 100644 --- src/lib/annoStreamer.c +++ src/lib/annoStreamer.c @@ -19,30 +19,36 @@ freez(&(self->chrom)); if (chrom == NULL) { self->positionIsGenome = TRUE; self->regionStart = self->regionEnd = 0; } else { self->positionIsGenome = FALSE; self->chrom = cloneString(chrom); self->regionStart = rStart; self->regionEnd = rEnd; } } +static char *annoStreamerGetHeader(struct annoStreamer *self) +/* Default method: return NULL. */ +{ +return NULL; +} + struct annoFilter *annoStreamerGetFilters(struct annoStreamer *self) /* Return supported filters with current settings. Callers can modify and free when done. */ { return annoFilterCloneList(self->filters); } void annoStreamerSetFilters(struct annoStreamer *self, struct annoFilter *newFilters) /* Free old filters and use clone of newFilters. */ { annoFilterFreeList(&(self->filters)); self->filters = annoFilterCloneList(newFilters); } struct annoColumn *annoStreamerGetColumns(struct annoStreamer *self) /* Return supported columns with current settings. Callers can modify and free when done. */ @@ -59,30 +65,31 @@ void annoStreamerSetQuery(struct annoStreamer *self, struct annoGratorQuery *query) /* Set query (to be called only by annoGratorQuery which is created after streamers). */ { self->query = query; } void annoStreamerInit(struct annoStreamer *self, struct asObject *asObj) /* Initialize a newly allocated annoStreamer with default annoStreamer methods and * default filters and columns based on asObj. * In general, subclasses' constructors will call this first; override nextRow, close, * and probably setRegion and setQuery; and then initialize their private data. */ { self->getAutoSqlObject = annoStreamerGetAutoSqlObject; self->setRegion = annoStreamerSetRegion; +self->getHeader = annoStreamerGetHeader; self->getFilters = annoStreamerGetFilters; self->setFilters = annoStreamerSetFilters; self->getColumns = annoStreamerGetColumns; self->setColumns = annoStreamerSetColumns; self->setQuery = annoStreamerSetQuery; self->positionIsGenome = TRUE; self->asObj = asObj; self->filters = annoFiltersFromAsObject(asObj); self->columns = annoColumnsFromAsObject(asObj); self->numCols = slCount(asObj->columnList); } void annoStreamerFree(struct annoStreamer **pSelf) /* Free self. This should be called at the end of subclass close methods, after * subclass-specific connections are closed and resources are freed. */