Changeset 25027 for branches/pap/ippTools/src/warptool.c
- Timestamp:
- Aug 7, 2009, 4:08:25 PM (17 years ago)
- Location:
- branches/pap
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/warptool.c (modified) (21 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap
- Property svn:mergeinfo changed
-
branches/pap/ippTools/src
- Property svn:ignore
-
old new 34 34 disttool 35 35 receivetool 36 37 pubtool
-
- Property svn:ignore
-
branches/pap/ippTools/src/warptool.c
r23921 r25027 38 38 static bool tooverlapMode(pxConfig *config); 39 39 static bool addoverlapMode(pxConfig *config); 40 static bool revertoverlapMode(pxConfig *config); 40 41 static bool scmapMode(pxConfig *config); 41 42 static bool towarpedMode(pxConfig *config); 42 43 static bool addwarpedMode(pxConfig *config); 44 static bool advancerunMode(pxConfig *config); 43 45 static bool warpedMode(pxConfig *config); 44 46 static bool revertwarpedMode(pxConfig *config); … … 85 87 MODECASE(WARPTOOL_MODE_TOOVERLAP, tooverlapMode); 86 88 MODECASE(WARPTOOL_MODE_ADDOVERLAP, addoverlapMode); 89 MODECASE(WARPTOOL_MODE_REVERTOVERLAP, revertoverlapMode); 87 90 MODECASE(WARPTOOL_MODE_SCMAP, scmapMode); 88 91 MODECASE(WARPTOOL_MODE_TOWARPED, towarpedMode); 89 92 MODECASE(WARPTOOL_MODE_ADDWARPED, addwarpedMode); 93 MODECASE(WARPTOOL_MODE_ADVANCERUN, advancerunMode); 90 94 MODECASE(WARPTOOL_MODE_WARPED, warpedMode); 91 95 MODECASE(WARPTOOL_MODE_REVERTWARPED, revertwarpedMode); … … 135 139 PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false); 136 140 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false); // required (no default TESS) 141 PXOPT_LOOKUP_STR(reduction, config->args, "-reduction", false, false); // required (no default TESS) 137 142 PXOPT_LOOKUP_STR(end_stage, config->args, "-end_stage", false, false); 138 143 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); … … 155 160 dvodb, 156 161 tess_id, 162 reduction, 157 163 end_stage, 158 164 registered, 159 false// magicked165 0 // magicked 160 166 ); 161 167 if (!warpRun) { … … 190 196 191 197 psMetadata *where = psMetadataAlloc(); 192 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "==");193 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "==");194 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "==");195 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");196 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");197 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp.camera", "==");198 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "==");199 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">=");200 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");201 PXOPT_COPY_STR(config->args, where, "-exp_tag", "rawExp.exp_tag", "==");202 PXOPT_COPY_STR(config->args, where, "-exp_type", "rawExp.exp_type", "==");203 PXOPT_COPY_STR(config->args, where, "-filelevel", "rawExp.filelevel", "==");204 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "==");205 PXOPT_COPY_F64(config->args, where, "-airmass_min", "rawExp.airmass", ">=");206 PXOPT_COPY_F64(config->args, where, "-airmass_max", "rawExp.airmass", "<");207 PXOPT_COPY_ F64(config->args, where, "-ra_min", "rawExp.ra", ">=");208 PXOPT_COPY_ F64(config->args, where, "-ra_max", "rawExp.ra", "<");209 PXOPT_COPY_ F64(config->args, where, "-decl_min", "rawExp.decl", ">=");210 PXOPT_COPY_ F64(config->args, where, "-decl_max", "rawExp.decl", "<");211 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "rawExp.exp_time", ">=");212 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "rawExp.exp_time", "<");213 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "rawExp.sat_pixel_frac", ">=");214 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "rawExp.sat_pixel_frac", "<");215 PXOPT_COPY_F64(config->args, where, "-bg_min", "rawExp.bg", ">=");216 PXOPT_COPY_F64(config->args, where, "-bg_max", "rawExp.bg", "<");217 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "rawExp.bg_stdev", ">=");218 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "rawExp.bg_stdev", "<");219 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "rawExp.bg_mean_stdev", ">=");220 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "rawExp.bg_mean_stdev", "<");221 PXOPT_COPY_F64(config->args, where, "-alt_min", "rawExp.alt", ">=");222 PXOPT_COPY_F64(config->args, where, "-alt_max", "rawExp.alt", "<");223 PXOPT_COPY_F64(config->args, where, "-az_min", "rawExp.az", ">=");224 PXOPT_COPY_F64(config->args, where, "-az_max", "rawExp.az", "<");225 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "rawExp.ccd_temp", ">=");226 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "rawExp.ccd_temp", "<");227 PXOPT_COPY_F64(config->args, where, "-posang_min", "rawExp.posang", ">=");228 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<");229 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "==");230 PXOPT_COPY_F32(config->args, where, "-solang_min", "rawExp.solang",">=");231 PXOPT_COPY_F32(config->args, where, "-solang_max", "rawExp.solang","<");232 PXOPT_COPY_STR(config->args, where, "-reduction", "fakeRun.reduction", "==");233 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "==");198 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "=="); 199 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 200 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 201 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 202 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 203 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp.camera", "=="); 204 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "=="); 205 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">="); 206 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<="); 207 PXOPT_COPY_STR(config->args, where, "-exp_tag", "rawExp.exp_tag", "=="); 208 PXOPT_COPY_STR(config->args, where, "-exp_type", "rawExp.exp_type", "=="); 209 PXOPT_COPY_STR(config->args, where, "-filelevel", "rawExp.filelevel", "=="); 210 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "=="); 211 PXOPT_COPY_F64(config->args, where, "-airmass_min", "rawExp.airmass", ">="); 212 PXOPT_COPY_F64(config->args, where, "-airmass_max", "rawExp.airmass", "<"); 213 PXOPT_COPY_RADEC(config->args, where, "-ra_min", "rawExp.ra", ">="); 214 PXOPT_COPY_RADEC(config->args, where, "-ra_max", "rawExp.ra", "<"); 215 PXOPT_COPY_RADEC(config->args, where, "-decl_min", "rawExp.decl", ">="); 216 PXOPT_COPY_RADEC(config->args, where, "-decl_max", "rawExp.decl", "<"); 217 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "rawExp.exp_time", ">="); 218 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "rawExp.exp_time", "<"); 219 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "rawExp.sat_pixel_frac", ">="); 220 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "rawExp.sat_pixel_frac", "<"); 221 PXOPT_COPY_F64(config->args, where, "-bg_min", "rawExp.bg", ">="); 222 PXOPT_COPY_F64(config->args, where, "-bg_max", "rawExp.bg", "<"); 223 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "rawExp.bg_stdev", ">="); 224 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "rawExp.bg_stdev", "<"); 225 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "rawExp.bg_mean_stdev", ">="); 226 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "rawExp.bg_mean_stdev", "<"); 227 PXOPT_COPY_F64(config->args, where, "-alt_min", "rawExp.alt", ">="); 228 PXOPT_COPY_F64(config->args, where, "-alt_max", "rawExp.alt", "<"); 229 PXOPT_COPY_F64(config->args, where, "-az_min", "rawExp.az", ">="); 230 PXOPT_COPY_F64(config->args, where, "-az_max", "rawExp.az", "<"); 231 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "rawExp.ccd_temp", ">="); 232 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "rawExp.ccd_temp", "<"); 233 PXOPT_COPY_F64(config->args, where, "-posang_min", "rawExp.posang", ">="); 234 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 235 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 236 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "rawExp.sun_angle", ">="); 237 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "rawExp.sun_angle", "<"); 238 PXOPT_COPY_STR(config->args, where, "-reduction", "fakeRun.reduction", "=="); 239 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "=="); 234 240 235 241 if (!psListLength(where->list) && … … 245 251 PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb", false, false); 246 252 PXOPT_LOOKUP_STR(tess_id, config->args, "-set_tess_id", false, false); 253 PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false); 247 254 PXOPT_LOOKUP_STR(end_stage, config->args, "-set_end_stage", false, false); 248 255 … … 306 313 } 307 314 308 if (!tess_id && !row->tess_id) {309 psError(PS_ERR_UNKNOWN, false, "cannot queue warp run without a defined tess id: label: %s, fake_id %" PRId64, row->label, row->fake_id);315 if (!tess_id && !row->tess_id) { 316 psError(PS_ERR_UNKNOWN, false, "cannot queue warp run without a defined tess id: label: %s, fake_id %" PRId64, row->label, row->fake_id); 310 317 psFree(output); 311 318 return false; 312 }319 } 313 320 314 321 psFree(row); 315 322 } 316 psFree(output);317 323 318 324 // loop over our list of fakeRun rows … … 329 335 // queue the exp 330 336 if (!pxwarpQueueByFakeID(config, 331 row->fake_id, 332 workdir ? workdir : row->workdir, 333 label ? label : row->label, 334 dvodb ? dvodb : row->dvodb, 335 tess_id ? tess_id : row->tess_id, 336 end_stage ? end_stage : row->end_stage)) 337 row->fake_id, 338 workdir ? workdir : row->workdir, 339 label ? label : row->label, 340 dvodb ? dvodb : row->dvodb, 341 tess_id ? tess_id : row->tess_id, 342 reduction ? reduction : row->reduction, 343 end_stage ? end_stage : row->end_stage)) 337 344 { 338 345 psError(PS_ERR_UNKNOWN, false, "failed to trying to queue fake_id: %" PRId64, row->fake_id); … … 649 656 warpSkyCellMapInsert(config->dbh, 650 657 warp_id, 651 NULL, // skycell_id652 NULL, // tess_id653 NULL, // class_id658 "faulted", // skycell_id 659 "faulted", // tess_id 660 "faulted", // class_id 654 661 fault // fault 655 662 ); … … 664 671 return true; 665 672 } 673 674 static bool revertoverlapMode(pxConfig *config) 675 { 676 PS_ASSERT_PTR_NON_NULL(config, false); 677 678 psMetadata *where = psMetadataAlloc(); 679 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpSkyCellMap.warp_id", "=="); 680 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyCellMap.skycell_id", "=="); 681 PXOPT_COPY_STR(config->args, where, "-tess_id", "warpSkyCellMap.tess_id", "=="); 682 // PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "=="); 683 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 684 PXOPT_COPY_S16(config->args, where, "-fault", "warpSkyCellMap.fault", "=="); 685 686 if (!psListLength(where->list) 687 && !psMetadataLookupBool(NULL, config->args, "-all")) { 688 psFree(where); 689 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 690 return false; 691 } 692 693 int numDeleted; // Number deleted 694 { 695 psString query = pxDataGet("warptool_revertoverlap.sql"); 696 if (!query) { 697 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 698 if (!psDBRollback(config->dbh)) { 699 psError(PS_ERR_UNKNOWN, false, "database error"); 700 } 701 return false; 702 } 703 704 if (psListLength(where->list)) { 705 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 706 psStringAppend(&query, " AND %s", whereClause); 707 psFree(whereClause); 708 } 709 710 if (!p_psDBRunQuery(config->dbh, query)) { 711 psError(PS_ERR_UNKNOWN, false, "database error"); 712 psFree(query); 713 if (!psDBRollback(config->dbh)) { 714 psError(PS_ERR_UNKNOWN, false, "database error"); 715 } 716 return false; 717 } 718 psFree(query); 719 720 numDeleted = psDBAffectedRows(config->dbh); 721 } 722 723 psLogMsg("warptool", PS_LOG_INFO, "Deleted %d warpSkycellMap", numDeleted); 724 725 psFree(where); 726 727 return true; 728 } 729 666 730 667 731 … … 917 981 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 918 982 PXOPT_LOOKUP_F32(good_frac, config->args, "-good_frac", false, false); 919 PXOPT_LOOKUP_ BOOL(magicked, config->args, "-magicked", false);983 PXOPT_LOOKUP_S64(magicked, config->args, "-magicked", false, false); 920 984 921 985 // default values … … 959 1023 } 960 1024 961 if (!warpCompletedRuns(config)) {962 if (!psDBRollback(config->dbh)) {963 psError(PS_ERR_UNKNOWN, false, "database error");964 }965 psError(PS_ERR_UNKNOWN, false, "database error");966 return false;967 }968 969 1025 // point of no return 970 1026 if (!psDBCommit(config->dbh)) { … … 976 1032 } 977 1033 978 bool warpCompletedRuns(pxConfig *config) 979 { 980 PS_ASSERT_PTR_NON_NULL(config, false); 1034 static bool advancerunMode(pxConfig *config) 1035 { 1036 PS_ASSERT_PTR_NON_NULL(config, false); 1037 1038 psMetadata *where = psMetadataAlloc(); 1039 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 1040 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1041 1042 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 981 1043 982 1044 psString query = pxDataGet("warptool_finished_run_select.sql"); … … 985 1047 return false; 986 1048 } 1049 1050 if (psListLength(where->list)) { 1051 psString whereClause = psDBGenerateWhereSQL(where, NULL); 1052 psStringAppend(&query, " %s", whereClause); 1053 psFree(whereClause); 1054 } 1055 psFree(where); 987 1056 988 1057 if (!p_psDBRunQuery(config->dbh, query)) { … … 1016 1085 return false; 1017 1086 } 1087 psS64 magicked = psMetadataLookupS64(&status, row, "magicked"); 1088 if (!status) { 1089 psError(PS_ERR_UNKNOWN, false, "failed to look up value for magicked"); 1090 psFree(output); 1091 psFree(query); 1092 return false; 1093 } 1094 if (!p_psDBRunQueryF(config->dbh, query, magicked, warp_id)) { 1095 psError(PS_ERR_UNKNOWN, false, "database error"); 1096 psFree(output); 1097 psFree(query); 1098 return false; 1099 } 1100 1101 psS64 numUpdated = psDBAffectedRows(config->dbh); 1102 1103 if (numUpdated != 1) { 1104 psError(PS_ERR_UNKNOWN, false, "should have affected 1 row"); 1105 psFree(query); 1106 psFree(output); 1107 return false; 1108 } 1109 } 1110 psFree(output); 1111 psFree(query); 1112 1113 return true; 1114 } 1115 1116 bool warpCompletedRuns(pxConfig *config) 1117 { 1118 PS_ASSERT_PTR_NON_NULL(config, false); 1119 1120 psString query = pxDataGet("warptool_finished_run_select.sql"); 1121 if (!query) { 1122 psError(PXTOOLS_ERR_DATA, false, "failed to retrieve SQL statement"); 1123 return false; 1124 } 1125 1126 if (!p_psDBRunQuery(config->dbh, query)) { 1127 psError(PS_ERR_UNKNOWN, false, "database error"); 1128 psFree(query); 1129 return false; 1130 } 1131 psFree(query); 1132 1133 psArray *output = p_psDBFetchResult(config->dbh); 1134 if (!output) { 1135 psError(PS_ERR_UNKNOWN, false, "database error"); 1136 return false; 1137 } 1138 if (!psArrayLength(output)) { 1139 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1140 psFree(output); 1141 return true; 1142 } 1143 1144 query = pxDataGet("warptool_finish_run.sql"); 1145 for (long i = 0; i < psArrayLength(output); i++) { 1146 psMetadata *row = output->data[i]; 1147 1148 bool status; 1149 psS64 warp_id = psMetadataLookupS64(&status, row, "warp_id"); 1150 if (!status) { 1151 psError(PS_ERR_UNKNOWN, false, "failed to look up value for warp_id"); 1152 psFree(output); 1153 psFree(query); 1154 return false; 1155 } 1018 1156 psS32 magicked = psMetadataLookupS64(&status, row, "magicked"); 1019 1157 if (!status) { … … 1051 1189 psMetadata *where = psMetadataAlloc(); 1052 1190 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpSkyfile.warp_id", "=="); 1191 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "=="); 1192 PXOPT_COPY_S64(config->args, where, "-warp_skyfile_id", "warpImfile.warp_skyfile_id", "=="); 1053 1193 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "=="); 1054 1194 PXOPT_COPY_STR(config->args, where, "-tess_id", "warpSkyfile.tess_id", "=="); … … 1132 1272 PXOPT_COPY_STR(config->args, where, "-tess_id", "warpSkyfile.tess_id", "=="); 1133 1273 PXOPT_COPY_STR(config->args, where, "-reduction", "rawExp.reduction", "=="); 1134 PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "=="); 1274 // PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "=="); 1275 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1135 1276 PXOPT_COPY_S16(config->args, where, "-fault", "warpSkyfile.fault", "=="); 1136 1277 … … 1147 1288 return false; 1148 1289 } 1149 1150 1151 // Update state to 'new'1152 int numUpdated; // Number updated1153 {1154 // This query is no longer necessary because we do not set warpRun's to full statte1155 // if they have faulted skyfiles.1156 // We do have runs in the DB that follow the old convention so we leave this in for1157 // now1158 psString query = pxDataGet("warptool_revertwarped_update.sql");1159 if (!query) {1160 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");1161 if (!psDBRollback(config->dbh)) {1162 psError(PS_ERR_UNKNOWN, false, "database error");1163 }1164 return false;1165 }1166 1167 if (psListLength(where->list)) {1168 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);1169 psStringAppend(&query, " AND %s", whereClause);1170 psFree(whereClause);1171 }1172 1173 if (!p_psDBRunQuery(config->dbh, query)) {1174 psError(PS_ERR_UNKNOWN, false, "database error");1175 psFree(query);1176 if (!psDBRollback(config->dbh)) {1177 psError(PS_ERR_UNKNOWN, false, "database error");1178 }1179 return false;1180 }1181 psFree(query);1182 1183 numUpdated = psDBAffectedRows(config->dbh);1184 1185 #ifdef notdef1186 // new warpRuns won't get changed (they're already new) so don't require an update1187 if (numUpdated < 1) {1188 psError(PS_ERR_UNKNOWN, false, "should have affected at least 1 row");1189 if (!psDBRollback(config->dbh)) {1190 psError(PS_ERR_UNKNOWN, false, "database error");1191 }1192 return false;1193 }1194 #endif1195 }1196 1197 psLogMsg("warptool", PS_LOG_INFO, "Updated %d warp runs", numUpdated);1198 1290 1199 1291 // Delete product … … 1318 1410 1319 1411 psMetadata *where = psMetadataAlloc(); 1320 pxAddLabelSearchArgs (config, where, "-label", " label", "==");1412 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1321 1413 1322 1414 psString query = pxDataGet("warptool_pendingcleanuprun.sql"); … … 1381 1473 psMetadata *where = psMetadataAlloc(); 1382 1474 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 1383 pxAddLabelSearchArgs (config, where, "-label", " label", "==");1475 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1384 1476 1385 1477 psString query = pxDataGet("warptool_pendingcleanupskyfile.sql"); … … 1668 1760 1669 1761 if (clean) { 1670 bool success = true; 1762 bool success = true; 1671 1763 if (!strcmp(tables[i].tableName, "warpRun")) { 1672 1764 success = pxSetStateCleaned("warpRun", "state", output);
Note:
See TracChangeset
for help on using the changeset viewer.
