834194a10ad846f3fd0bb2bc1eea5b0b5c029cd7 angie Wed Nov 18 23:38:39 2015 -0800 Interface change: removing setAutoSqlObject method from streamer and exposing annoGratorSetAutoSqlObject because asObj should never be externally imposed, but a streamer/grator may have a need to bootstrap itself without an asObj and then install one. refs #15544 diff --git src/inc/annoStreamer.h src/inc/annoStreamer.h index 7401bfb..33b22d1 100644 --- src/inc/annoStreamer.h +++ src/inc/annoStreamer.h @@ -10,32 +10,33 @@ // The real work of fetching and filtering data is left to subclass // implementations. The purpose of this module is to provide an // interface for communication with other components of the // annoGratorQuery framework, and simple methods shared by all // subclasses. struct annoStreamer /* Generic interface to configure a data source's filters and output data, and then * retrieve data, which must be sorted by genomic position. Subclasses of this * will do all the actual work. */ { struct annoStreamer *next; // Public methods struct asObject *(*getAutoSqlObject)(struct annoStreamer *self); - void (*setAutoSqlObject)(struct annoStreamer *self, struct asObject *asObj); - /* Get and set autoSql representation (do not modify or free asObj!) */ + /* Get autoSql representation (do not modify or free asObj!) + * There is no setter because changing the asObj should never be externally imposed. + * Subclasses must use annoStreamerSetAutoSqlObject to change their internal asObj. */ char *(*getName)(struct annoStreamer *self); void (*setName)(struct annoStreamer *self, char *name); /* Get and set name (short identifier, unique among streamers in a query). */ void (*setRegion)(struct annoStreamer *self, char *chrom, uint rStart, uint rEnd); /* Set genomic region for query; if chrom is NULL, region is whole genome. * This must be called on all annoGrator components in query, not a subset. */ char *(*getHeader)(struct annoStreamer *self); /* Get the file header as a string (possibly NULL, possibly multi-line). */ void (*setFilters)(struct annoStreamer *self, struct annoFilter *newFilters); void (*addFilters)(struct annoStreamer *self, struct annoFilter *newFilters); /* Set/add filters. Memory management of filters is up to caller. */