IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 11, 2011, 3:49:33 PM (15 years ago)
Author:
watersc1
Message:

updatedetrun mode made somewhat more useful. -set_{time|use}_{begin|end} is now implemented

File:
1 edited

Legend:

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

    r29923 r30877  
    13141314    PS_ASSERT_PTR_NON_NULL(config, false);
    13151315
     1316    bool updating = false;
     1317    long rows = 0;
     1318    psMetadata *where = psMetadataAlloc();
    13161319    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
     1320
    13171321    PXOPT_LOOKUP_BOOL(again, config->args, "-again", false);
    13181322    PXOPT_LOOKUP_STR(state, config->args, "-state", false, false);
    13191323
     1324    PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "==");
     1325
     1326    psMetadata *values = psMetadataAlloc();
     1327    PXOPT_LOOKUP_TIME(time_begin, config->args, "-set_time_begin", false, false);
     1328    if (time_begin) {
     1329      updating = true;
     1330      PXOPT_COPY_TIME(config->args, values,       "-set_time_begin", "time_begin", "==");
     1331    }
     1332    PXOPT_LOOKUP_TIME(time_end,   config->args, "-set_time_end",   false, false);
     1333    if (time_end) {
     1334      updating = true;
     1335      PXOPT_COPY_TIME(config->args,   values,       "-set_time_end",   "time_end", "==");
     1336    }   
     1337    PXOPT_LOOKUP_TIME(use_begin,  config->args, "-set_use_begin",  false, false);
     1338    if (use_begin) {
     1339      updating = true;
     1340      PXOPT_COPY_TIME(config->args,  values,       "-set_use_begin",  "use_begin", "==");
     1341    }
     1342    PXOPT_LOOKUP_TIME(use_end,    config->args, "-set_use_end",    false, false);
     1343    if (use_end) {
     1344      updating = true;
     1345      PXOPT_COPY_TIME(config->args,    values,       "-set_use_end",    "use_end", "==");
     1346    }
     1347    if (state) {
     1348      updating = true;
     1349      if (!isValidDetRunState (state)) return false;
     1350      PXOPT_COPY_STR(config->args,     values,       "-state",        "state", "==");
     1351    }
     1352
     1353
    13201354    // either -rerun or -state must be specified
    1321     if (!(again || state)) {
    1322         psError(PS_ERR_UNKNOWN, true, "either -again or -state must be specified");
    1323         return false;
    1324     }
    1325     if (again && state) {
    1326         psError(PS_ERR_UNKNOWN, true, "-accept and -reject are exclusive");
    1327         return false;
    1328     }
    1329 
    1330     if (state) {
    1331         // set detRun.state to state
    1332         return setDetRunState(config, det_id, state);
     1355    if (!(again || updating)) {
     1356        psError(PS_ERR_UNKNOWN, true, "either -again or update parameters must be specified");
     1357        return false;
     1358    }
     1359    if (again && updating) {
     1360        psError(PS_ERR_UNKNOWN, true, "-again and update parameters are exclusive");
     1361        return false;
     1362    }
     1363
     1364    if (updating) {
     1365      rows = psDBUpdateRows(config->dbh,"detRun",where,values);
     1366      if (rows) {
     1367        return(true);
     1368      }
     1369      else {
     1370        return(false);
     1371      }
    13331372    }
    13341373
Note: See TracChangeset for help on using the changeset viewer.