src/hg/inc/metaTbl.h 1.2

1.2 2010/03/18 23:36:18 tdreszer
Extended API for query and print functions
Index: src/hg/inc/metaTbl.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/inc/metaTbl.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 4 -r1.1 -r1.2
--- src/hg/inc/metaTbl.h	18 Mar 2010 01:48:53 -0000	1.1
+++ src/hg/inc/metaTbl.h	18 Mar 2010 23:36:18 -0000	1.2
@@ -86,8 +86,11 @@
 /* Print out metaTbl as a comma separated list including final comma. */
 
 /* -------------------------------- End autoSql Generated Code -------------------------------- */
 
+#define METATBL_DEFAULT_NAME "metaTbl"
+
+
 enum metaObjType
 // metadata Obects are only certain declared types
     {
     otUnknown=0,  // Unknown type
@@ -140,12 +143,12 @@
     struct metaLeafObj* objs; // if NOT NULL: list of Objects which have this variable
     struct hash* objHash;     // if NOT NULL: hash of objects  (val str to leafObj struct)
     };
 
-struct metaRootVar
+struct metaByVar
 // When searching metadata var->val->object this is the top struct
     {
-    struct metaRootVar* next; // Next in singly linked list of variables
+    struct metaByVar* next;   // Next in singly linked list of variables
     char *var;                // Metadata variable name.
     enum metaVarType varType; // txt | binary
     struct metaLimbVal* vals; // list of values associated with this var
     struct hash* valHash;     // if NOT NULL: hash of vals  (val str to limbVal struct)
@@ -162,33 +165,64 @@
 
 char *metaVarTypeEnumToString(enum metaVarType varType);
 // Convert metadata varType enum string
 
+
+struct metaObj *metadataLineParse(char *line);
+/* Parses a single formatted metadata line into metaObj for updates or queries. */
+
+struct metaObj *metaObjCreate(char *obj,char *type,char *var, char *varType,char *val);
+/* Creates a singular metaObj query object based on obj and all other optional params. */
+
+struct metaByVar *metaByVarsLineParse(char *line);
+/* Parses a line of "var1=val1 var2=val2 into a metaByVar object for queries. */
+
+struct metaByVar*metaByVarCreate(char *var, char *varType,char *val);
+/* Creates a singular var=val pair struct for metadata queries. */
+
+
 struct metaObj *metaObjsLoadFromFormattedFile(char *fileName);
 // Load all metaObjs from a file containing metadata formatted lines
 
 int metaObjsSetToDb(struct sqlConnection *conn,char *tableName,struct metaObj *metaObjs,boolean replace);
 // Adds or updates metadata obj/var pairs into the named table.  Returns total rows affected
 
-struct metaObj *metaObjsLoadAllFromTbl(struct sqlConnection *conn,char *tableName);
-// Load all metaObjs from a table (default metaTbl).  Will build varHash.
 
-struct metaObj *metaObjLoadFromTbl(struct sqlConnection *conn,char *tableName,char *objName);
-// Load a metaObj from a table (default metaTbl).  Will build varHash.
+struct metaObj *metaObjQuery(struct sqlConnection *conn,char *table,struct metaObj *metaObj);
+// Query the metadata table by obj and optional vars and vals in metaObj struct.  If metaObj is NULL query all.
+// Retruns new metaObj struct fully populated and sorted in obj,var order.
+#define metaObjsQueryAll(conn,table) metaObjQuery((conn),(table),NULL)
+
+struct metaObj *metaObjQueryByObj(struct sqlConnection *conn,char *table,char *objName,char *varName);
+// Query a single metadata object and optional var from a table (default metaTbl).
+
+
+struct metaByVar *metaByVarsQuery(struct sqlConnection *conn,char *table,struct metaByVar *metaByVars);
+// Query the metadata table by vars and vals in metaByVar struct.  If metaByVar is NULL query all.
+// Retruns new metaByVar struct fully populated and sorted in var,val,obj order.
+#define metaByVarsQueryAll(conn,table) metaByVarsQuery((conn),(table),NULL)
+
+struct metaByVar *metaByVarQueryByVar(struct sqlConnection *conn,char *table,char *varName,char *val);
+// Query a single metadata variable and optional val from a table (default metaTbl) for searching val->obj.
+
+
+void metaObjPrint(struct metaObj *metaObjs,boolean printLong);
+// prints objs and var=val pairs as formatted metadata lines or long view
+
+void metaByVarPrint(struct metaByVar *metaByVars,boolean printLong);
+// prints var=val pairs and objs that go with them single lines or long view
 
-struct metaObj *metaObjVarLoadFromTbl(struct sqlConnection *conn,char *tableName,char *objName,char *varName);
-// Load a single metadata obj/var pair from a table (default metaTbl).  No objHash build
+int metaObjCount(struct metaObj *metaObjs);
+// returns the count of vars belonging to this obj or objs;
 
-struct metaRootVar *metaRootVarsLoadAllFromTbl(struct sqlConnection *conn,char *tableName);
-// Load all metaVars from a table (default metaTbl) for searching var->val->obj.  Will build objHash.
+int metaByVarCount(struct metaByVar *metaByVars);
+// returns the count of objs belonging to this set of vars;
 
-struct metaRootVar *metaRootVarLoadFromTbl(struct sqlConnection *conn,char *tableName,char *varName);
-// Load a metaVar from a table (default metaTbl) for searching val->obj.  Will build objHash
 
 void metaObjsFree(struct metaObj **metaObjsPtr);
 // Frees one or more metadata objects and any contained metaVars.  Will free any hashes as well.
 
-void metaRootVarsFree(struct metaRootVar **metaRootVarsPtr);
+void metaByVarsFree(struct metaByVar **metaByVarsPtr);
 // Frees one or more metadata vars and any contained vals and objs.  Will free any hashes as well.
 
 #endif /* METATBL_H */