IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 8, 2007, 3:10:25 PM (19 years ago)
Author:
jhoblitt
Message:

add -faultexp & -pendingexp -faulted

File:
1 edited

Legend:

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

    r10974 r10976  
    3131static bool updateexpMode(pxConfig *config);
    3232static bool updateimfileMode(pxConfig *config);
     33static bool faultexpMode(pxConfig *config);
    3334static bool faultimfileMode(pxConfig *config);
    3435static bool rawimfileMode(pxConfig *config);
     
    3940static rawDetrendExpRow *newToRawDetrendExp(pxConfig *config, newExpRow *exp);
    4041static rawImfileRow *newToRawImfile(pxConfig *config, newImfileRow *exp);
    41 static psU32 mapCodeStrToInt(char *codeStr);
     42static psU32 mapCodeStrToInt(const char *codeStr);
     43static bool setFaultFlags(psDB *dbh, const char *tableName, psMetadata *where, const char *codeStr);
    4244
    4345
     
    5658
    5759    switch (config->mode) {
    58         MODECASE(P0TOOL_MODE_PENDINGEXP,      pendingexpMode);
    59         MODECASE(P0TOOL_MODE_PENDINGIMFILE,   pendingimfileMode);
    60         MODECASE(P0TOOL_MODE_UPDATEEXP,       updateexpMode);
    61         MODECASE(P0TOOL_MODE_UPDATEIMFILE,    updateimfileMode);
    62         MODECASE(P0TOOL_MODE_FAULTIMFILE,     faultimfileMode);
    63         MODECASE(P0TOOL_MODE_RAWIMFILE,       rawimfileMode);
     60        MODECASE(P0TOOL_MODE_PENDINGEXP,        pendingexpMode);
     61        MODECASE(P0TOOL_MODE_PENDINGIMFILE,     pendingimfileMode);
     62        MODECASE(P0TOOL_MODE_UPDATEEXP,         updateexpMode);
     63        MODECASE(P0TOOL_MODE_FAULTEXP,          faultexpMode);
     64        MODECASE(P0TOOL_MODE_UPDATEIMFILE,      updateimfileMode);
     65        MODECASE(P0TOOL_MODE_FAULTIMFILE,       faultimfileMode);
     66        MODECASE(P0TOOL_MODE_RAWIMFILE,         rawimfileMode);
    6467        default:
    6568            psAbort(argv[0], "invalid option (this should not happen)");
     
    8992    if (!status) {
    9093        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit");
     94        return false;
     95    }
     96
     97    bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");
     98    if (!status) {
     99        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");
    91100        return false;
    92101    }
     
    117126    );
    118127
     128    if (faulted) {
     129        // list only faulted rows
     130        psStringAppend(&query, " %s", "AND newExp.flags > 0");
     131    } else {
     132        // don't list faulted rows
     133        psStringAppend(&query, " %s", "AND newExp.flags = 0");
     134    }
     135
    119136    // treat limit == 0 as "no limit"
    120137    if (limit) {
     
    255272}
    256273
    257 static bool faultimfileMode(pxConfig *config)
    258 {
    259     PS_ASSERT_PTR_NON_NULL(config, false);
    260 
     274static bool faultexpMode(pxConfig *config)
     275{
    261276    bool status = false;
    262277    psString codeStr = psMetadataLookupStr(&status, config->args, "-code");
     
    269284        return false;
    270285    }
     286
     287    if (!setFaultFlags(config->dbh, "newExp", config->where, codeStr)) {
     288        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     289        return false;
     290    }
     291
     292    return true;
     293}
     294
     295static bool faultimfileMode(pxConfig *config)
     296{
     297    PS_ASSERT_PTR_NON_NULL(config, false);
     298
     299    bool status = false;
     300    psString codeStr = psMetadataLookupStr(&status, config->args, "-code");
     301    if (!status) {
     302        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
     303        return false;
     304    }
     305    if (!codeStr) {
     306        psError(PS_ERR_UNKNOWN, true, "-code is required");
     307        return false;
     308    }
     309
     310    if (!setFaultFlags(config->dbh, "newImfile", config->where, codeStr)) {
     311        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
     312        return false;
     313    }
     314
     315    return true;
     316}
     317
     318static bool setFaultFlags(psDB *dbh, const char *tableName, psMetadata *where, const char *codeStr)
     319{
     320    PS_ASSERT_PTR_NON_NULL(dbh, false);
     321    PS_ASSERT_PTR_NON_NULL(tableName, false);
     322    PS_ASSERT_PTR_NON_NULL(codeStr, false);
    271323
    272324    // map code string to numeric fault code
     
    286338    psFree(values);
    287339
    288     long rowsAffected = psDBUpdateRows(config->dbh, "newImfile", config->where, values);
     340    long rowsAffected = psDBUpdateRows(dbh, tableName, where, values);
    289341    if (rowsAffected < 0) {
    290342        // database error
     
    300352    return true;
    301353}
     354
    302355
    303356static bool updateexpMode(pxConfig *config)
     
    10881141}
    10891142
    1090 static psU32 mapCodeStrToInt(char *codeStr)
     1143static psU32 mapCodeStrToInt(const char *codeStr)
    10911144{
    10921145    if (strcasestr(codeStr, "none")) {
Note: See TracChangeset for help on using the changeset viewer.