IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 11, 2008, 3:24:08 PM (17 years ago)
Author:
Paul Price
Message:

Adding diffskyfile, warpskyfile, chipprocessedimfile, rawimfile modes to magictool.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/magictool.c

    r20692 r20700  
    4747static bool revertmaskMode(pxConfig *config);
    4848static bool maskMode(pxConfig *config);
     49static bool diffskyfileMode(pxConfig *config);
     50static bool warpskyfileMode(pxConfig *config);
     51static bool chipprocessedimfileMode(pxConfig *config);
     52static bool rawimfileMode(pxConfig *config);
     53
    4954
    5055static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state);
     
    6974
    7075    switch (config->mode) {
    71         MODECASE(MAGICTOOL_MODE_DEFINEBYQUERY,  definebyqueryMode);
    72         MODECASE(MAGICTOOL_MODE_DEFINERUN,      definerunMode);
    73         MODECASE(MAGICTOOL_MODE_UPDATERUN,      updaterunMode);
    74         MODECASE(MAGICTOOL_MODE_ADDINPUTSKYFILE,addinputskyfileMode);
    75         MODECASE(MAGICTOOL_MODE_INPUTSKYFILE,   inputskyfileMode);
    76         MODECASE(MAGICTOOL_MODE_TOTREE,         totreeMode);
    77         MODECASE(MAGICTOOL_MODE_INPUTTREE,      inputtreeMode);
    78         MODECASE(MAGICTOOL_MODE_REVERTTREE,     reverttreeMode);
    79         MODECASE(MAGICTOOL_MODE_TOPROCESS,      toprocessMode);
    80         MODECASE(MAGICTOOL_MODE_ADDRESULT,      addresultMode);
    81         MODECASE(MAGICTOOL_MODE_REVERTNODE,     revertnodeMode);
    82         MODECASE(MAGICTOOL_MODE_INPUTS,         inputsMode);
    83         MODECASE(MAGICTOOL_MODE_TOMASK,         tomaskMode);
    84         MODECASE(MAGICTOOL_MODE_ADDMASK,        addmaskMode);
    85         MODECASE(MAGICTOOL_MODE_REVERTMASK,     revertmaskMode);
    86         MODECASE(MAGICTOOL_MODE_MASK,           maskMode);
     76        MODECASE(MAGICTOOL_MODE_DEFINEBYQUERY,       definebyqueryMode);
     77        MODECASE(MAGICTOOL_MODE_DEFINERUN,           definerunMode);
     78        MODECASE(MAGICTOOL_MODE_UPDATERUN,           updaterunMode);
     79        MODECASE(MAGICTOOL_MODE_ADDINPUTSKYFILE,     addinputskyfileMode);
     80        MODECASE(MAGICTOOL_MODE_INPUTSKYFILE,        inputskyfileMode);
     81        MODECASE(MAGICTOOL_MODE_TOTREE,              totreeMode);
     82        MODECASE(MAGICTOOL_MODE_INPUTTREE,           inputtreeMode);
     83        MODECASE(MAGICTOOL_MODE_REVERTTREE,          reverttreeMode);
     84        MODECASE(MAGICTOOL_MODE_TOPROCESS,           toprocessMode);
     85        MODECASE(MAGICTOOL_MODE_ADDRESULT,           addresultMode);
     86        MODECASE(MAGICTOOL_MODE_REVERTNODE,          revertnodeMode);
     87        MODECASE(MAGICTOOL_MODE_INPUTS,              inputsMode);
     88        MODECASE(MAGICTOOL_MODE_TOMASK,              tomaskMode);
     89        MODECASE(MAGICTOOL_MODE_ADDMASK,             addmaskMode);
     90        MODECASE(MAGICTOOL_MODE_REVERTMASK,          revertmaskMode);
     91        MODECASE(MAGICTOOL_MODE_MASK,                maskMode);
     92        MODECASE(MAGICTOOL_MODE_DIFFSKYFILE,         diffskyfileMode);
     93        MODECASE(MAGICTOOL_MODE_WARPSKYFILE,         warpskyfileMode);
     94        MODECASE(MAGICTOOL_MODE_CHIPPROCESSEDIMFILE, chipprocessedimfileMode);
     95        MODECASE(MAGICTOOL_MODE_RAWIMFILE,           rawimfileMode);
    8796        default:
    8897            psAbort("invalid option (this should not happen)");
     
    12321241
    12331242
     1243static bool diffskyfileMode(pxConfig *config)
     1244{
     1245    PS_ASSERT_PTR_NON_NULL(config, false);
     1246
     1247    psMetadata *where = psMetadataAlloc();
     1248    PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
     1249    PXOPT_COPY_STR(config->args, where, "-class_id", "warpSkyCellMap.class_id", "==");
     1250
     1251    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1252
     1253    psString query = pxDataGet("magictool_diffskyfile.sql");
     1254    if (!query) {
     1255        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1256        return false;
     1257    }
     1258
     1259    if (psListLength(where->list)) {
     1260        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1261        psStringAppend(&query, " AND %s", whereClause);
     1262        psFree(whereClause);
     1263    }
     1264    psFree(where);
     1265
     1266    if (!p_psDBRunQuery(config->dbh, query)) {
     1267        psError(PS_ERR_UNKNOWN, false, "database error");
     1268        psFree(query);
     1269        return false;
     1270    }
     1271    psFree(query);
     1272
     1273    psArray *output = p_psDBFetchResult(config->dbh);
     1274    if (!output) {
     1275        psErrorCode err = psErrorCodeLast();
     1276        switch (err) {
     1277            case PS_ERR_DB_CLIENT:
     1278                psError(PXTOOLS_ERR_SYS, false, "database error");
     1279            case PS_ERR_DB_SERVER:
     1280                psError(PXTOOLS_ERR_PROG, false, "database error");
     1281            default:
     1282                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1283        }
     1284
     1285        return false;
     1286    }
     1287    if (!psArrayLength(output)) {
     1288        psTrace("magictool", PS_LOG_INFO, "no rows found");
     1289        psFree(output);
     1290        return true;
     1291    }
     1292
     1293    if (psArrayLength(output)) {
     1294        // negative simple so the default is true
     1295        if (!ippdbPrintMetadatas(stdout, output, "magicDiffSkyfile", !simple)) {
     1296            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1297            psFree(output);
     1298            return false;
     1299        }
     1300    }
     1301
     1302    psFree(output);
     1303
     1304    return true;
     1305}
     1306
     1307
     1308static bool warpskyfileMode(pxConfig *config)
     1309{
     1310    PS_ASSERT_PTR_NON_NULL(config, false);
     1311
     1312    psMetadata *where = psMetadataAlloc();
     1313    PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
     1314
     1315    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1316
     1317    psString query = pxDataGet("magictool_warpskyfile.sql");
     1318    if (!query) {
     1319        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1320        return false;
     1321    }
     1322
     1323    if (psListLength(where->list)) {
     1324        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1325        psStringAppend(&query, " AND %s", whereClause);
     1326        psFree(whereClause);
     1327    }
     1328    psFree(where);
     1329
     1330    if (!p_psDBRunQuery(config->dbh, query)) {
     1331        psError(PS_ERR_UNKNOWN, false, "database error");
     1332        psFree(query);
     1333        return false;
     1334    }
     1335    psFree(query);
     1336
     1337    psArray *output = p_psDBFetchResult(config->dbh);
     1338    if (!output) {
     1339        psErrorCode err = psErrorCodeLast();
     1340        switch (err) {
     1341            case PS_ERR_DB_CLIENT:
     1342                psError(PXTOOLS_ERR_SYS, false, "database error");
     1343            case PS_ERR_DB_SERVER:
     1344                psError(PXTOOLS_ERR_PROG, false, "database error");
     1345            default:
     1346                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1347        }
     1348
     1349        return false;
     1350    }
     1351    if (!psArrayLength(output)) {
     1352        psTrace("magictool", PS_LOG_INFO, "no rows found");
     1353        psFree(output);
     1354        return true;
     1355    }
     1356
     1357    if (psArrayLength(output)) {
     1358        // negative simple so the default is true
     1359        if (!ippdbPrintMetadatas(stdout, output, "magicWarpSkyfile", !simple)) {
     1360            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1361            psFree(output);
     1362            return false;
     1363        }
     1364    }
     1365
     1366    psFree(output);
     1367
     1368    return true;
     1369}
     1370
     1371
     1372static bool chipprocessedimfileMode(pxConfig *config)
     1373{
     1374    PS_ASSERT_PTR_NON_NULL(config, false);
     1375
     1376    psMetadata *where = psMetadataAlloc();
     1377    PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
     1378    PXOPT_COPY_STR(config->args, where, "-class_id", "warpSkyCellMap.class_id", "==");
     1379
     1380    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1381
     1382    psString query = pxDataGet("magictool_chipprocessedimfile.sql");
     1383    if (!query) {
     1384        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1385        return false;
     1386    }
     1387
     1388    if (psListLength(where->list)) {
     1389        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1390        psStringAppend(&query, " AND %s", whereClause);
     1391        psFree(whereClause);
     1392    }
     1393    psFree(where);
     1394
     1395    if (!p_psDBRunQuery(config->dbh, query)) {
     1396        psError(PS_ERR_UNKNOWN, false, "database error");
     1397        psFree(query);
     1398        return false;
     1399    }
     1400    psFree(query);
     1401
     1402    psArray *output = p_psDBFetchResult(config->dbh);
     1403    if (!output) {
     1404        psErrorCode err = psErrorCodeLast();
     1405        switch (err) {
     1406            case PS_ERR_DB_CLIENT:
     1407                psError(PXTOOLS_ERR_SYS, false, "database error");
     1408            case PS_ERR_DB_SERVER:
     1409                psError(PXTOOLS_ERR_PROG, false, "database error");
     1410            default:
     1411                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1412        }
     1413
     1414        return false;
     1415    }
     1416    if (!psArrayLength(output)) {
     1417        psTrace("magictool", PS_LOG_INFO, "no rows found");
     1418        psFree(output);
     1419        return true;
     1420    }
     1421
     1422    if (psArrayLength(output)) {
     1423        // negative simple so the default is true
     1424        if (!ippdbPrintMetadatas(stdout, output, "magicChipProcessedImfile", !simple)) {
     1425            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1426            psFree(output);
     1427            return false;
     1428        }
     1429    }
     1430
     1431    psFree(output);
     1432
     1433    return true;
     1434}
     1435
     1436
     1437static bool rawimfileMode(pxConfig *config)
     1438{
     1439    PS_ASSERT_PTR_NON_NULL(config, false);
     1440
     1441    psMetadata *where = psMetadataAlloc();
     1442    PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
     1443    PXOPT_COPY_STR(config->args, where, "-class_id", "warpSkyCellMap.class_id", "==");
     1444
     1445    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1446
     1447    psString query = pxDataGet("magictool_rawimfile.sql");
     1448    if (!query) {
     1449        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1450        return false;
     1451    }
     1452
     1453    if (psListLength(where->list)) {
     1454        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1455        psStringAppend(&query, " AND %s", whereClause);
     1456        psFree(whereClause);
     1457    }
     1458    psFree(where);
     1459
     1460    if (!p_psDBRunQuery(config->dbh, query)) {
     1461        psError(PS_ERR_UNKNOWN, false, "database error");
     1462        psFree(query);
     1463        return false;
     1464    }
     1465    psFree(query);
     1466
     1467    psArray *output = p_psDBFetchResult(config->dbh);
     1468    if (!output) {
     1469        psErrorCode err = psErrorCodeLast();
     1470        switch (err) {
     1471            case PS_ERR_DB_CLIENT:
     1472                psError(PXTOOLS_ERR_SYS, false, "database error");
     1473            case PS_ERR_DB_SERVER:
     1474                psError(PXTOOLS_ERR_PROG, false, "database error");
     1475            default:
     1476                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1477        }
     1478
     1479        return false;
     1480    }
     1481    if (!psArrayLength(output)) {
     1482        psTrace("magictool", PS_LOG_INFO, "no rows found");
     1483        psFree(output);
     1484        return true;
     1485    }
     1486
     1487    if (psArrayLength(output)) {
     1488        // negative simple so the default is true
     1489        if (!ippdbPrintMetadatas(stdout, output, "magicRawImfile", !simple)) {
     1490            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1491            psFree(output);
     1492            return false;
     1493        }
     1494    }
     1495
     1496    psFree(output);
     1497
     1498    return true;
     1499}
     1500
     1501
    12341502static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state)
    12351503{
Note: See TracChangeset for help on using the changeset viewer.