Index: trunk/ippdb/src/ippdb.c
===================================================================
--- trunk/ippdb/src/ippdb.c	(revision 10681)
+++ trunk/ippdb/src/ippdb.c	(revision 10686)
@@ -20,5 +20,5 @@
 /*
  *
- * This file was generated by glueforge 0.35
+ * This file was generated by glueforge 0.36
  *
  * Do NOT directly edit this file.
@@ -503,4 +503,19 @@
     return true;
 }
+bool expTagCounterPrintObject(FILE *stream, expTagCounterRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = expTagCounterMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void summitExpRowFree(summitExpRow *object);
 
@@ -893,4 +908,19 @@
     return true;
 }
+bool summitExpPrintObject(FILE *stream, summitExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = summitExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void summitImfileRowFree(summitImfileRow *object);
 
@@ -1327,4 +1357,19 @@
     return true;
 }
+bool summitImfilePrintObject(FILE *stream, summitImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = summitImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void pzPendingExpRowFree(pzPendingExpRow *object);
 
@@ -1630,4 +1675,19 @@
     return true;
 }
+bool pzPendingExpPrintObject(FILE *stream, pzPendingExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = pzPendingExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void pzPendingImfileRowFree(pzPendingImfileRow *object);
 
@@ -1999,4 +2059,19 @@
     return true;
 }
+bool pzPendingImfilePrintObject(FILE *stream, pzPendingImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = pzPendingImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void pzDoneExpRowFree(pzDoneExpRow *object);
 
@@ -2302,4 +2377,19 @@
     return true;
 }
+bool pzDoneExpPrintObject(FILE *stream, pzDoneExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = pzDoneExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void pzDoneImfileRowFree(pzDoneImfileRow *object);
 
@@ -2693,4 +2783,19 @@
     return true;
 }
+bool pzDoneImfilePrintObject(FILE *stream, pzDoneImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = pzDoneImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void newExpRowFree(newExpRow *object);
 
@@ -3083,4 +3188,19 @@
     return true;
 }
+bool newExpPrintObject(FILE *stream, newExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = newExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void newImfileRowFree(newImfileRow *object);
 
@@ -3405,4 +3525,19 @@
     }
     psFree(output);
+
+    return true;
+}
+bool newImfilePrintObject(FILE *stream, newImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = newImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
 
     return true;
@@ -4051,4 +4186,19 @@
     return true;
 }
+bool rawDetrendExpPrintObject(FILE *stream, rawDetrendExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = rawDetrendExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void rawScienceExpRowFree(rawScienceExpRow *object);
 
@@ -4694,4 +4844,19 @@
     return true;
 }
+bool rawScienceExpPrintObject(FILE *stream, rawScienceExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = rawScienceExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void rawImfileRowFree(rawImfileRow *object);
 
@@ -5338,4 +5503,19 @@
     return true;
 }
+bool rawImfilePrintObject(FILE *stream, rawImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = rawImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p1PendingExpRowFree(p1PendingExpRow *object);
 
@@ -5640,4 +5820,19 @@
     return true;
 }
+bool p1PendingExpPrintObject(FILE *stream, p1PendingExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p1PendingExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p2PendingExpRowFree(p2PendingExpRow *object);
 
@@ -5985,4 +6180,19 @@
     return true;
 }
+bool p2PendingExpPrintObject(FILE *stream, p2PendingExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p2PendingExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p2PendingImfileRowFree(p2PendingImfileRow *object);
 
@@ -6352,4 +6562,19 @@
     return true;
 }
+bool p2PendingImfilePrintObject(FILE *stream, p2PendingImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p2PendingImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p2ProcessedExpRowFree(p2ProcessedExpRow *object);
 
@@ -6675,4 +6900,19 @@
     return true;
 }
+bool p2ProcessedExpPrintObject(FILE *stream, p2ProcessedExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p2ProcessedExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p2MaskRowFree(p2MaskRow *object);
 
@@ -6934,4 +7174,19 @@
     return true;
 }
+bool p2MaskPrintObject(FILE *stream, p2MaskRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p2MaskMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p2ProcessedImfileRowFree(p2ProcessedImfileRow *object);
 
@@ -7408,4 +7663,19 @@
     return true;
 }
+bool p2ProcessedImfilePrintObject(FILE *stream, p2ProcessedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p2ProcessedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p3PendingExpRowFree(p3PendingExpRow *object);
 
@@ -7731,4 +8001,19 @@
     return true;
 }
+bool p3PendingExpPrintObject(FILE *stream, p3PendingExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p3PendingExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p3ProcessedExpRowFree(p3ProcessedExpRow *object);
 
@@ -8310,4 +8595,19 @@
     return true;
 }
+bool p3ProcessedExpPrintObject(FILE *stream, p3ProcessedExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p3ProcessedExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p3MaskRowFree(p3MaskRow *object);
 
@@ -8569,4 +8869,19 @@
     return true;
 }
+bool p3MaskPrintObject(FILE *stream, p3MaskRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p3MaskMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detRunRowFree(detRunRow *object);
 
@@ -9130,4 +9445,19 @@
     return true;
 }
+bool detRunPrintObject(FILE *stream, detRunRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detRunMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detInputExpRowFree(detInputExpRow *object);
 
@@ -9452,4 +9782,19 @@
     return true;
 }
+bool detInputExpPrintObject(FILE *stream, detInputExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detInputExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detProcessedImfileRowFree(detProcessedImfileRow *object);
 
@@ -9905,4 +10250,19 @@
     return true;
 }
+bool detProcessedImfilePrintObject(FILE *stream, detProcessedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detProcessedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detProcessedExpRowFree(detProcessedExpRow *object);
 
@@ -10314,4 +10674,19 @@
     return true;
 }
+bool detProcessedExpPrintObject(FILE *stream, detProcessedExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detProcessedExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detStackedImfileRowFree(detStackedImfileRow *object);
 
@@ -10722,4 +11097,19 @@
     return true;
 }
+bool detStackedImfilePrintObject(FILE *stream, detStackedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detStackedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detNormalizedStatImfileRowFree(detNormalizedStatImfileRow *object);
 
@@ -11044,4 +11434,19 @@
     return true;
 }
+bool detNormalizedStatImfilePrintObject(FILE *stream, detNormalizedStatImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detNormalizedStatImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detNormalizedImfileRowFree(detNormalizedImfileRow *object);
 
@@ -11474,4 +11879,19 @@
     return true;
 }
+bool detNormalizedImfilePrintObject(FILE *stream, detNormalizedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detNormalizedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detNormalizedExpRowFree(detNormalizedExpRow *object);
 
@@ -11882,4 +12302,19 @@
     return true;
 }
+bool detNormalizedExpPrintObject(FILE *stream, detNormalizedExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detNormalizedExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detResidImfileRowFree(detResidImfileRow *object);
 
@@ -12356,4 +12791,19 @@
     return true;
 }
+bool detResidImfilePrintObject(FILE *stream, detResidImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detResidImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detResidExpRowFree(detResidExpRow *object);
 
@@ -12807,4 +13257,19 @@
     return true;
 }
+bool detResidExpPrintObject(FILE *stream, detResidExpRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detResidExpMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void detRunSummaryRowFree(detRunSummaryRow *object);
 
@@ -13170,4 +13635,19 @@
     return true;
 }
+bool detRunSummaryPrintObject(FILE *stream, detRunSummaryRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = detRunSummaryMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4RunRowFree(p4RunRow *object);
 
@@ -13624,4 +14104,19 @@
     return true;
 }
+bool p4RunPrintObject(FILE *stream, p4RunRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4RunMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4InputImfileRowFree(p4InputImfileRow *object);
 
@@ -13947,4 +14442,19 @@
     return true;
 }
+bool p4InputImfilePrintObject(FILE *stream, p4InputImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4InputImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4PWarpedImfileRowFree(p4PWarpedImfileRow *object);
 
@@ -14336,4 +14846,19 @@
     return true;
 }
+bool p4PWarpedImfilePrintObject(FILE *stream, p4PWarpedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4PWarpedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4PStackedImfileRowFree(p4PStackedImfileRow *object);
 
@@ -14682,4 +15207,19 @@
     return true;
 }
+bool p4PStackedImfilePrintObject(FILE *stream, p4PStackedImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4PStackedImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4PDiffImfileRowFree(p4PDiffImfileRow *object);
 
@@ -15071,4 +15611,19 @@
     return true;
 }
+bool p4PDiffImfilePrintObject(FILE *stream, p4PDiffImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4PDiffImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
 static void p4PMagicMaskImfileRowFree(p4PMagicMaskImfileRow *object);
 
@@ -15416,2 +15971,17 @@
     return true;
 }
+bool p4PMagicMaskImfilePrintObject(FILE *stream, p4PMagicMaskImfileRow *object, bool mdcf)
+{
+    PS_ASSERT_PTR_NON_NULL(object, false);
+
+    psMetadata *md = p4PMagicMaskImfileMetadataFromObject(object);
+
+    if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print metadata");
+        psFree(md);
+    }
+
+    psFree(md);
+
+    return true;
+}
