e2ec5ef77645a662ba31c7cfbd7499794975275a
angie
  Fri Mar 23 16:44:07 2012 -0700
Feature #6152 (Variant Annotation Tool): Initial work, squashed infrom origin/annoGrator branch.  Superclasses annoColumn, annoFilter,
annoRow, annoStreamer, annoGrator, and annoFormatter define the core
interfaces for passing data and configuration to and from components.
The annoGrator superclass can join annoRows on position and pass
forward all rows of secondary source.  The annoGratorQuery module
orchestrates the passing of annoRows between the primary source,
annoGrator(s) and annoFormatter(s).  The subclasses annoStreamDb and
annoFormatTab, together with hg/lib/tests/annoGratorTester.c, can join
columns of two database tables such as hg19's pgNA12878 and knownGene
into tab-separated output.

diff --git src/inc/annoRow.h src/inc/annoRow.h
new file mode 100644
index 0000000..cd3ff16
--- /dev/null
+++ src/inc/annoRow.h
@@ -0,0 +1,36 @@
+/* annoRow -- basic data interchange unit of annoGratorQuery framework. */
+
+#ifndef ANNOROW_H
+#define ANNOROW_H
+
+#include "common.h"
+
+struct annoRow
+/* Representation of a row from a database table or file.  The chrom, start and end
+ * facilitate intersection by position.  The words correspond to columns in the autoSql
+ * definition provided by the source of the annoRow.  rightJoinFail is true if this row
+ * failed a filter marked as rightJoin, meaning it can knock out the primary row (see
+ * annoFilter.h). */
+    {
+    struct annoRow *next;
+    char *chrom;
+    uint start;
+    uint end;
+    char **words;
+    boolean rightJoinFail;
+    };
+
+struct annoRow *annoRowFromStringArray(char *chrom, uint start, uint end, boolean rightJoinFail,
+				       char **wordsIn, int numCols);
+/* Allocate & return an annoRow with words cloned from wordsIn. */
+
+struct annoRow *annoRowClone(struct annoRow *rowIn, int numCols);
+/* Allocate & return a single annoRow cloned from rowIn. */
+
+void annoRowFree(struct annoRow **pRow, int numCols);
+/* Free a single annoRow. */
+
+void annoRowFreeList(struct annoRow **pList, int numCols);
+/* Free a list of annoRows. */
+
+#endif//ndef ANNOROW_H