IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 17, 2008, 12:16:38 PM (18 years ago)
Author:
Paul Price
Message:

Changing use of psDB* to pmConfig* so that the database handle only has to be set up when required.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/concepts/pmConceptsRead.c

    r17911 r18163  
    99#include <pslib.h>
    1010
     11#include "pmConfig.h"
    1112#include "pmHDU.h"
    1213#include "pmFPA.h"
     
    363364}
    364365
    365 psMetadataItem *p_pmConceptsReadSingleFromDatabase(const char *name, const psMetadata *database, psDB *db,
    366                                                    const pmFPA *fpa, const pmChip *chip, const pmCell *cell)
     366psMetadataItem *p_pmConceptsReadSingleFromDatabase(const char *name, const psMetadata *database,
     367                                                   pmConfig *config, const pmFPA *fpa, const pmChip *chip,
     368                                                   const pmCell *cell)
    367369{
    368370    PS_ASSERT_STRING_NON_EMPTY(name, NULL);
    369     PS_ASSERT_METADATA_NON_NULL(database, NULL);
     371    PS_ASSERT_PTR_NON_NULL(config, NULL);
     372
     373    psDB *db = pmConfigDB(config);      // Database handle
     374    if (!db) {
     375        psErrorClear();
     376        psWarning("Unable to initialise database to write concepts.");
     377        return NULL;
     378    }
    370379
    371380    psMetadataItem *item = psMetadataLookup(database, name); // Item to return
     
    384393
    385394    psString sql = pmConceptsInterpolate(item->data.str, fpa, chip, cell);
    386     if (!p_psDBRunQuery(db, sql)) {
     395    if (!p_psDBRunQuery(config->database, sql)) {
    387396        psWarning("Unable to query database for concept %s --- ignored.", name);
    388397        psFree(sql);
     
    391400    psFree(sql);
    392401
    393     psArray *rows = p_psDBFetchResult(db); // Rows returned from the query
     402    psArray *rows = p_psDBFetchResult(config->database); // Rows returned from the query
    394403    if (rows->n == 0) {
    395404        psWarning("No rows returned from database query for concept %s --- ignored.", name);
     
    408417
    409418bool p_pmConceptsReadFromDatabase(psMetadata *target, const psMetadata *specs,
    410                                   const pmFPA *fpa, const pmChip *chip, const pmCell *cell, psDB *db)
     419                                  const pmFPA *fpa, const pmChip *chip, const pmCell *cell, pmConfig *config)
    411420{
    412421    PS_ASSERT_PTR_NON_NULL(specs, false);
    413422    PS_ASSERT_PTR_NON_NULL(target, false);
     423    PS_ASSERT_PTR_NON_NULL(config, false);
    414424
    415425#ifndef HAVE_PSDB
     
    434444        pmConceptSpec *spec = specItem->data.V; // The specification
    435445        psString name = specItem->name; // The concept name
    436         psMetadataItem *conceptItem = p_pmConceptsReadSingleFromDatabase(name, dbSpec, db, fpa, chip, cell);
     446        psMetadataItem *conceptItem = p_pmConceptsReadSingleFromDatabase(name, dbSpec, config,
     447                                                                         fpa, chip, cell);
    437448        if (conceptItem && !conceptParse(spec, conceptItem, PM_CONCEPT_SOURCE_DATABASE,
    438449                                         cameraFormat, target, fpa, chip, cell)) {
Note: See TracChangeset for help on using the changeset viewer.