Changeset 18377
- Timestamp:
- Jun 30, 2008, 9:54:05 AM (18 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 3 edited
-
pstamptool.c (modified) (3 diffs)
-
pstamptool.h (modified) (1 diff)
-
pstamptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pstamptool.c
r18244 r18377 35 35 static bool moddatastoreMode(pxConfig *config); 36 36 static bool addReqMode(pxConfig *config); 37 static bool completedReqMode(pxConfig *config); 37 38 static bool listReqMode(pxConfig *config); 38 39 static bool pendingReqMode(pxConfig *config); … … 66 67 MODECASE(PSTAMPTOOL_MODE_MODDATASTORE, moddatastoreMode); 67 68 MODECASE(PSTAMPTOOL_MODE_ADDREQ, addReqMode); 69 MODECASE(PSTAMPTOOL_MODE_COMPLETEDREQ, completedReqMode); 68 70 MODECASE(PSTAMPTOOL_MODE_LISTREQ, listReqMode); 69 71 MODECASE(PSTAMPTOOL_MODE_PENDINGREQ, pendingReqMode); … … 433 435 return true; 434 436 } 437 static bool completedReqMode(pxConfig *config) 438 { 439 PS_ASSERT_PTR_NON_NULL(config, false); 440 441 bool status = false; 442 psU64 limit = psMetadataLookupU64(&status, config->args, "-limit"); 443 if (!status) { 444 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit"); 445 return false; 446 } 447 448 psString query = 449 "SELECT * FROM pstampRequest WHERE state = 'run' AND " 450 "(SELECT count(*) FROM pstampJob WHERE pstampJob.req_id = pstampRequest.req_id " 451 " AND pstampJob.state != 'stop') = 0" ; 452 453 // treat limit == 0 as "no limit" 454 if (limit) { 455 psString limitString = psDBGenerateLimitSQL(limit); 456 psStringAppend(&query, " %s", limitString); 457 psFree(limitString); 458 } 459 460 if (!p_psDBRunQuery(config->dbh, query)) { 461 psError(PS_ERR_UNKNOWN, false, "database error"); 462 psFree(query); 463 return false; 464 } 465 466 psArray *output = p_psDBFetchResult(config->dbh); 467 if (!output) { 468 psError(PS_ERR_UNKNOWN, false, "database error"); 469 return false; 470 } 471 472 if (!psArrayLength(output)) { 473 psTrace("pstamptool", PS_LOG_INFO, "no rows found"); 474 psFree(output); 475 return true; 476 } 477 478 bool simple = false; 479 { 480 bool status = false; 481 simple = psMetadataLookupBool(&status, config->args, "-simple"); 482 if (!status) { 483 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple"); 484 psFree(output); 485 return false; 486 } 487 } 488 489 // negative simple so the default is true 490 if (!ippdbPrintMetadatas(stdout, output, "pstampRequest", !simple)) { 491 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 492 psFree(output); 493 return false; 494 } 495 496 psFree(output); 497 498 return true; 499 } 500 435 501 static bool listReqMode(pxConfig *config) 436 502 { -
trunk/ippTools/src/pstamptool.h
r16957 r18377 30 30 PSTAMPTOOL_MODE_ADDREQ, 31 31 PSTAMPTOOL_MODE_LISTREQ, 32 PSTAMPTOOL_MODE_COMPLETEDREQ, 32 33 PSTAMPTOOL_MODE_PENDINGREQ, 33 34 PSTAMPTOOL_MODE_PROCESSEDREQ, -
trunk/ippTools/src/pstamptoolConfig.c
r18244 r18377 98 98 "limit result set to N items", 0); 99 99 psMetadataAddBool(listreqArgs, PS_LIST_TAIL, "-simple", 0, 100 "use the simple output format", false); 101 102 // -completedreq 103 psMetadata *completedreqArgs = psMetadataAlloc(); 104 psMetadataAddU64(completedreqArgs, PS_LIST_TAIL, "-limit", 0, 105 "limit result set to N items", 0); 106 psMetadataAddBool(completedreqArgs, PS_LIST_TAIL, "-simple", 0, 100 107 "use the simple output format", false); 101 108 … … 179 186 PXOPT_ADD_MODE("-processedreq", "", PSTAMPTOOL_MODE_PROCESSEDREQ, processedreqArgs); 180 187 PXOPT_ADD_MODE("-listreq", "", PSTAMPTOOL_MODE_LISTREQ, listreqArgs); 188 PXOPT_ADD_MODE("-completedreq", "", PSTAMPTOOL_MODE_COMPLETEDREQ, completedreqArgs); 181 189 182 190 PXOPT_ADD_MODE("-addjob", "", PSTAMPTOOL_MODE_ADDJOB, addjobArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
