Index: trunk/psModules/src/concepts/pmConcepts.c
===================================================================
--- trunk/psModules/src/concepts/pmConcepts.c	(revision 18104)
+++ trunk/psModules/src/concepts/pmConcepts.c	(revision 18163)
@@ -10,4 +10,5 @@
 #include <string.h>
 
+#include "pmConfig.h"
 #include "pmHDU.h"
 #include "pmFPA.h"
@@ -195,5 +196,5 @@
                          unsigned int *read,     // What's already been read
                          pmConceptSource source, // The source of the concepts to read
-                         psDB *db,      // Database handle
+                         pmConfig *config, // Configuration
                          psMetadata *target // Place into which to read the concepts
                         )
@@ -256,5 +257,5 @@
     #ifdef HAVE_PSDB
     if (source & PM_CONCEPT_SOURCE_DATABASE && !(*read & PM_CONCEPT_SOURCE_DATABASE)) {
-        if (p_pmConceptsReadFromDatabase(target, *specs, fpa, chip, cell, db)) {
+        if (p_pmConceptsReadFromDatabase(target, *specs, fpa, chip, cell, config)) {
             *read |= PM_CONCEPT_SOURCE_DATABASE;
         } else {
@@ -276,5 +277,5 @@
                           const pmCell *cell, // The cell
                           pmConceptSource source, // The source of the concepts to write
-                          psDB *db,      // Database handle
+                          pmConfig *config, // Configuration
                           const psMetadata *concepts // The concepts to write out
                          )
@@ -299,5 +300,5 @@
     }
     if (source & PM_CONCEPT_SOURCE_DATABASE) {
-        p_pmConceptsWriteToDatabase(*specs, fpa, chip, cell, db, concepts);
+        p_pmConceptsWriteToDatabase(*specs, fpa, chip, cell, config, concepts);
     }
 
@@ -306,13 +307,16 @@
 
 
-bool pmConceptsRead(pmFPA *fpa, pmChip *chip, pmCell *cell, pmConceptSource source, psDB *db)
+bool pmConceptsRead(pmFPA *fpa, pmChip *chip, pmCell *cell, pmConceptSource source, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(fpa, false);
-    bool success = conceptsRead(&conceptsFPA, fpa, chip, cell, &fpa->conceptsRead, source, db, fpa->concepts);
+    bool success = conceptsRead(&conceptsFPA, fpa, chip, cell, &fpa->conceptsRead, source,
+                                config, fpa->concepts);
     if (chip) {
-        success &= conceptsRead(&conceptsChip, fpa, chip, cell, &chip->conceptsRead, source, db, chip->concepts);
+        success &= conceptsRead(&conceptsChip, fpa, chip, cell, &chip->conceptsRead, source,
+                                config, chip->concepts);
     }
     if (cell) {
-        success &= conceptsRead(&conceptsCell, fpa, chip, cell, &cell->conceptsRead, source, db, cell->concepts);
+        success &= conceptsRead(&conceptsCell, fpa, chip, cell, &cell->conceptsRead, source,
+                                config, cell->concepts);
     }
 
@@ -329,9 +333,10 @@
 
 
-bool pmConceptsReadFPA(pmFPA *fpa, pmConceptSource source, bool propagateDown, psDB *db)
+bool pmConceptsReadFPA(pmFPA *fpa, pmConceptSource source, bool propagateDown, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(fpa, false);
     psTrace("psModules.concepts", 5, "Reading FPA concepts: %p %p\n", conceptsFPA, fpa->concepts);
-    bool success = conceptsRead(&conceptsFPA, fpa, NULL, NULL, &fpa->conceptsRead, source, db, fpa->concepts);
+    bool success = conceptsRead(&conceptsFPA, fpa, NULL, NULL, &fpa->conceptsRead, source,
+                                config, fpa->concepts);
     if (propagateDown) {
         psArray *chips = fpa->chips;    // Array of chips
@@ -339,5 +344,5 @@
             pmChip *chip = chips->data[i]; // Chip of interest
             if (chip) {
-                success &= pmConceptsReadChip(chip, source, false, true, db);
+                success &= pmConceptsReadChip(chip, source, false, true, config);
             }
         }
@@ -347,9 +352,9 @@
 }
 
-bool pmConceptsWriteFPA(const pmFPA *fpa, pmConceptSource source, bool propagateDown, psDB *db)
+bool pmConceptsWriteFPA(const pmFPA *fpa, pmConceptSource source, bool propagateDown, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(fpa, false);
     psTrace("psModules.concepts", 5, "Writing FPA concepts: %p %p\n", conceptsFPA, fpa->concepts);
-    bool success = conceptsWrite(&conceptsFPA, fpa, NULL, NULL, source, db, fpa->concepts);
+    bool success = conceptsWrite(&conceptsFPA, fpa, NULL, NULL, source, config, fpa->concepts);
     if (propagateDown) {
         psArray *chips = fpa->chips;        // Array of chips
@@ -357,5 +362,5 @@
             pmChip *chip = chips->data[i];  // Chip of interest
             if (chip && !chip->hdu) {
-                success &= pmConceptsWriteChip(chip, source, false, true, db);
+                success &= pmConceptsWriteChip(chip, source, false, true, config);
             }
         }
@@ -372,13 +377,14 @@
 
 bool pmConceptsReadChip(pmChip *chip, pmConceptSource source, bool propagateUp,
-                        bool propagateDown, psDB *db)
+                        bool propagateDown, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(chip, false);
     psTrace("psModules.concepts", 5, "Reading chip concepts: %p %p\n", conceptsChip, chip->concepts);
     pmFPA *fpa = chip->parent;          // FPA to which the chip belongs
-    bool success = conceptsRead(&conceptsChip, fpa, chip, NULL, &chip->conceptsRead, source, db,
+    bool success = conceptsRead(&conceptsChip, fpa, chip, NULL, &chip->conceptsRead, source, config,
                                 chip->concepts);
     if (propagateUp) {
-        success &= conceptsRead(&conceptsFPA, fpa, chip, NULL, &fpa->conceptsRead, source, db, fpa->concepts);
+        success &= conceptsRead(&conceptsFPA, fpa, chip, NULL, &fpa->conceptsRead, source,
+                                config, fpa->concepts);
     }
     if (propagateDown) {
@@ -387,5 +393,5 @@
             pmCell *cell = cells->data[i];  // Cell of interest
             if (cell) {
-                success &= pmConceptsReadCell(cell, source, false, db);
+                success &= pmConceptsReadCell(cell, source, false, config);
             }
         }
@@ -395,12 +401,12 @@
 
 bool pmConceptsWriteChip(const pmChip *chip, pmConceptSource source, bool propagateUp,
-                         bool propagateDown, psDB *db)
+                         bool propagateDown, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(chip, false);
     psTrace("psModules.concepts", 5, "Writing chip concepts: %p %p\n", conceptsChip, chip->concepts);
     pmFPA *fpa = chip->parent;          // FPA to which the chip belongs
-    bool success = conceptsWrite(&conceptsChip, fpa, chip, NULL, source, db, chip->concepts);
+    bool success = conceptsWrite(&conceptsChip, fpa, chip, NULL, source, config, chip->concepts);
     if (propagateUp && !fpa->hdu) {
-        success &= conceptsWrite(&conceptsFPA, fpa, chip, NULL, source, db, fpa->concepts);
+        success &= conceptsWrite(&conceptsFPA, fpa, chip, NULL, source, config, fpa->concepts);
     }
     if (propagateDown) {
@@ -409,5 +415,5 @@
             pmCell *cell = cells->data[i];  // Cell of interest
             if (cell && !cell->hdu) {
-                success &= pmConceptsWriteCell(cell, source, false, db);
+                success &= pmConceptsWriteCell(cell, source, false, config);
             }
         }
@@ -423,5 +429,5 @@
 }
 
-bool pmConceptsReadCell(pmCell *cell, pmConceptSource source, bool propagateUp, psDB *db)
+bool pmConceptsReadCell(pmCell *cell, pmConceptSource source, bool propagateUp, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(cell, false);
@@ -430,10 +436,10 @@
     pmFPA *fpa = chip->parent;          // FPA to which the chip belongs
 
-    bool success = conceptsRead(&conceptsCell, fpa, chip, cell, &cell->conceptsRead, source, db,
+    bool success = conceptsRead(&conceptsCell, fpa, chip, cell, &cell->conceptsRead, source, config,
                                 cell->concepts);
     if (propagateUp) {
-        success &= conceptsRead(&conceptsChip, fpa, chip, cell, &chip->conceptsRead, source, db,
+        success &= conceptsRead(&conceptsChip, fpa, chip, cell, &chip->conceptsRead, source, config,
                                 chip->concepts);
-        success &= conceptsRead(&conceptsFPA, fpa, chip, cell, &fpa->conceptsRead, source, db,
+        success &= conceptsRead(&conceptsFPA, fpa, chip, cell, &fpa->conceptsRead, source, config,
                                 fpa->concepts);
     }
@@ -442,5 +448,5 @@
 }
 
-bool pmConceptsWriteCell(const pmCell *cell, pmConceptSource source, bool propagateUp, psDB *db)
+bool pmConceptsWriteCell(const pmCell *cell, pmConceptSource source, bool propagateUp, pmConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(cell, false);
@@ -449,10 +455,10 @@
     pmFPA *fpa = chip->parent;          // FPA to which the chip belongs
 
-    bool success = conceptsWrite(&conceptsCell, fpa, chip, cell, source, db, cell->concepts);
+    bool success = conceptsWrite(&conceptsCell, fpa, chip, cell, source, config, cell->concepts);
     if (propagateUp) {
         if (!chip->hdu) {
-            success &= conceptsWrite(&conceptsChip, fpa, chip, cell, source, db, chip->concepts);
+            success &= conceptsWrite(&conceptsChip, fpa, chip, cell, source, config, chip->concepts);
             if (!fpa->hdu) {
-                success &= conceptsWrite(&conceptsFPA, fpa, chip, cell, source, db, fpa->concepts);
+                success &= conceptsWrite(&conceptsFPA, fpa, chip, cell, source, config, fpa->concepts);
             }
         }
