e926c846782645e96fa3ff0669bbcc1587aebd70 angie Fri Jun 1 11:16:57 2012 -0700 Refactoring for #6152: instead of having each formatter do its owncollection of rows, annoGratorQueryExecute should collect the rows and pass them to each formatter. diff --git src/inc/annoFormatter.h src/inc/annoFormatter.h index badca4e..51b3b85 100644 --- src/inc/annoFormatter.h +++ src/inc/annoFormatter.h @@ -23,38 +23,33 @@ struct annoFormatter /* Generic interface to aggregate data fields from multiple sources and write * output. */ { struct annoFormatter *next; // Public methods struct annoFormatterOption *(*getOptions)(struct annoFormatter *self); void (*setOptions)(struct annoFormatter *self, struct annoFormatterOption *options); /* Get and set output options */ void (*initialize)(struct annoFormatter *self, struct annoGratorQuery *query); /* Initialize output (header, etc) and set query pointer */ - void (*collect)(struct annoFormatter *self, struct annoStreamer *source, struct annoRow *rows); - /* Collect data from one source */ - - void (*discard)(struct annoFormatter *self); - /* Discard data collected so far (filter failure) */ - - void (*formatOne)(struct annoFormatter *self); - /* Aggregate all sources' data for a single primarySource item into output: */ + void (*formatOne)(struct annoFormatter *self, struct annoRow *primaryRow, + struct slRef *gratorRowList); + /* Aggregate all sources' data for a single primarySource item into output. */ void (*close)(struct annoFormatter **pSelf); /* End of input; finish output, close connection/handle and free self. */ // Private members -- callers are on the honor system to access these using only methods above. struct annoFormatterOption *options; struct annoGratorQuery *query; }; // ---------------------- annoFormatter default methods ----------------------- struct annoFormatterOption *annoFormatterGetOptions(struct annoFormatter *self); /* Return supported options and current settings. Callers can modify and free when done. */ void annoFormatterSetOptions(struct annoFormatter *self, struct annoFormatterOption *newOptions);