d21a851e1892724009277d5de14a3c4df6e5951a angie Mon Jun 3 12:40:16 2013 -0700 oops, forgot to clean up qLm -- added now. for #6152 diff --git src/inc/annoGrator.h src/inc/annoGrator.h index 30058a6..a86b667 100644 --- src/inc/annoGrator.h +++ src/inc/annoGrator.h @@ -26,30 +26,31 @@ struct annoStreamer streamer; // external annoStreamer interface // Public method that makes this a 'grator: struct annoRow *(*integrate)(struct annoGrator *self, struct annoStreamRows *primaryData, boolean *retRJFilterFailed, struct lm *callerLm); /* Integrate internal source's data with single row of primary source's data */ void (*setOverlapRule)(struct annoGrator *self, enum annoGratorOverlap rule); /* Tell annoGrator how to handle overlap of its rows with primary row. */ // Private members -- callers are on the honor system to access these using only methods above. struct annoStreamer *mySource; // internal source struct annoRow *qHead; // head of FIFO queue of rows from internal source struct annoRow *qTail; // head of FIFO queue of rows from internal source struct lm *qLm; // localmem for FIFO queue + int qSkippedCount; // Number of qLm-allocated rows skipped char *prevPChrom; // for detection of unsorted input from primary uint prevPStart; // for detection of unsorted input from primary boolean eof; // stop asking internal source for rows when it's done boolean haveRJIncludeFilter; // TRUE if some filter has !isExclude && rightJoin enum annoGratorOverlap overlapRule; // constraint (if any) on overlap of internal & primary }; #endif//ndef ANNOGRATOR_H // ---------------------- annoGrator default methods ----------------------- struct annoRow *annoGratorIntegrate(struct annoGrator *self, struct annoStreamRows *primaryData, boolean *retRJFilterFailed, struct lm *callerLm); /* Given a single row from the primary source, get all overlapping rows from internal * source, and produce joined output rows. Use callerLm to allocate the output rows.