Changeset 19092 for trunk/ippTools/src/warptool.c
- Timestamp:
- Aug 16, 2008, 1:27:58 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/warptool.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/warptool.c
r18976 r19092 46 46 static bool maskedMode(pxConfig *config); 47 47 static bool unblockMode(pxConfig *config); 48 static bool pendingcleanuprunMode(pxConfig *config); 49 static bool pendingcleanupwarpMode(pxConfig *config); 50 static bool donecleanupMode(pxConfig *config); 48 51 49 52 static bool parseAndInsertSkyCellMap(pxConfig *config, const char *mapfile); … … 69 72 70 73 switch (config->mode) { 71 MODECASE(WARPTOOL_MODE_DEFINERUN, definerunMode); 72 MODECASE(WARPTOOL_MODE_UPDATERUN, updaterunMode); 73 MODECASE(WARPTOOL_MODE_EXP, expMode); 74 MODECASE(WARPTOOL_MODE_IMFILE, imfileMode); 75 MODECASE(WARPTOOL_MODE_TOOVERLAP, tooverlapMode); 76 MODECASE(WARPTOOL_MODE_ADDOVERLAP, addoverlapMode); 77 MODECASE(WARPTOOL_MODE_SCMAP, scmapMode); 78 MODECASE(WARPTOOL_MODE_TOWARPED, towarpedMode); 79 MODECASE(WARPTOOL_MODE_ADDWARPED, addwarpedMode); 80 MODECASE(WARPTOOL_MODE_WARPED, warpedMode); 81 MODECASE(WARPTOOL_MODE_REVERTWARPED, revertwarpedMode); 82 MODECASE(WARPTOOL_MODE_BLOCK, blockMode); 83 MODECASE(WARPTOOL_MODE_MASKED, maskedMode); 84 MODECASE(WARPTOOL_MODE_UNBLOCK, unblockMode); 74 MODECASE(WARPTOOL_MODE_DEFINERUN, definerunMode); 75 MODECASE(WARPTOOL_MODE_UPDATERUN, updaterunMode); 76 MODECASE(WARPTOOL_MODE_EXP, expMode); 77 MODECASE(WARPTOOL_MODE_IMFILE, imfileMode); 78 MODECASE(WARPTOOL_MODE_TOOVERLAP, tooverlapMode); 79 MODECASE(WARPTOOL_MODE_ADDOVERLAP, addoverlapMode); 80 MODECASE(WARPTOOL_MODE_SCMAP, scmapMode); 81 MODECASE(WARPTOOL_MODE_TOWARPED, towarpedMode); 82 MODECASE(WARPTOOL_MODE_ADDWARPED, addwarpedMode); 83 MODECASE(WARPTOOL_MODE_WARPED, warpedMode); 84 MODECASE(WARPTOOL_MODE_REVERTWARPED, revertwarpedMode); 85 MODECASE(WARPTOOL_MODE_BLOCK, blockMode); 86 MODECASE(WARPTOOL_MODE_MASKED, maskedMode); 87 MODECASE(WARPTOOL_MODE_UNBLOCK, unblockMode); 88 MODECASE(WARPTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunMode); 89 MODECASE(WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupwarpMode); 90 MODECASE(WARPTOOL_MODE_DONECLEANUP, donecleanupMode); 85 91 86 92 default: … … 131 137 fake_id, 132 138 mode, 133 " run", // state139 "new", // state 134 140 workdir, 135 141 "dirty", // workdir_state … … 1122 1128 } 1123 1129 1124 1125 1130 static bool unblockMode(pxConfig *config) 1126 1131 { … … 1139 1144 } 1140 1145 1146 static bool pendingcleanuprunMode(pxConfig *config) 1147 { 1148 PS_ASSERT_PTR_NON_NULL(config, NULL); 1149 1150 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1151 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1152 1153 psMetadata *where = psMetadataAlloc(); 1154 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1155 1156 psString query = pxDataGet("warptool_pendingcleanuprun.sql"); 1157 if (!query) { 1158 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1159 return false; 1160 } 1161 1162 if (where && psListLength(where->list)) { 1163 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1164 psStringAppend(&query, " AND %s", whereClause); 1165 psFree(whereClause); 1166 } 1167 psFree(where); 1168 1169 // treat limit == 0 as "no limit" 1170 if (limit) { 1171 psString limitString = psDBGenerateLimitSQL(limit); 1172 psStringAppend(&query, " %s", limitString); 1173 psFree(limitString); 1174 } 1175 1176 if (!p_psDBRunQuery(config->dbh, query)) { 1177 psError(PS_ERR_UNKNOWN, false, "database error"); 1178 psFree(query); 1179 return false; 1180 } 1181 psFree(query); 1182 1183 psArray *output = p_psDBFetchResult(config->dbh); 1184 if (!output) { 1185 psError(PS_ERR_UNKNOWN, false, "database error"); 1186 return false; 1187 } 1188 if (!psArrayLength(output)) { 1189 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1190 psFree(output); 1191 return true; 1192 } 1193 1194 // negative simple so the default is true 1195 if (!ippdbPrintMetadatas(stdout, output, "warpPendingCleanupRun", !simple)) { 1196 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1197 psFree(output); 1198 return false; 1199 } 1200 1201 psFree(output); 1202 1203 return true; 1204 } 1205 1206 1207 static bool pendingcleanupwarpMode(pxConfig *config) 1208 { 1209 PS_ASSERT_PTR_NON_NULL(config, NULL); 1210 1211 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", false, false); 1212 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1213 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1214 1215 psMetadata *where = psMetadataAlloc(); 1216 if (warp_id) { 1217 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 1218 } 1219 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1220 1221 psString query = pxDataGet("warptool_pendingcleanupskyfile.sql"); 1222 if (!query) { 1223 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1224 return false; 1225 } 1226 1227 if (where && psListLength(where->list)) { 1228 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1229 psStringAppend(&query, " AND %s", whereClause); 1230 psFree(whereClause); 1231 } 1232 psFree(where); 1233 1234 // treat limit == 0 as "no limit" 1235 if (limit) { 1236 psString limitString = psDBGenerateLimitSQL(limit); 1237 psStringAppend(&query, " %s", limitString); 1238 psFree(limitString); 1239 } 1240 1241 if (!p_psDBRunQuery(config->dbh, query)) { 1242 psError(PS_ERR_UNKNOWN, false, "database error"); 1243 psFree(query); 1244 return false; 1245 } 1246 psFree(query); 1247 1248 psArray *output = p_psDBFetchResult(config->dbh); 1249 if (!output) { 1250 psError(PS_ERR_UNKNOWN, false, "database error"); 1251 return false; 1252 } 1253 if (!psArrayLength(output)) { 1254 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1255 psFree(output); 1256 return true; 1257 } 1258 1259 // negative simple so the default is true 1260 if (!ippdbPrintMetadatas(stdout, output, "warpPendingCleanupWarp", !simple)) { 1261 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1262 psFree(output); 1263 return false; 1264 } 1265 1266 psFree(output); 1267 1268 return true; 1269 } 1270 1271 1272 static bool donecleanupMode(pxConfig *config) 1273 { 1274 PS_ASSERT_PTR_NON_NULL(config, NULL); 1275 1276 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1277 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1278 1279 psMetadata *where = psMetadataAlloc(); 1280 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1281 1282 psString query = pxDataGet("warptool_donecleanup.sql"); 1283 if (!query) { 1284 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1285 return false; 1286 } 1287 1288 if (where && psListLength(where->list)) { 1289 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1290 psStringAppend(&query, " AND %s", whereClause); 1291 psFree(whereClause); 1292 } 1293 psFree(where); 1294 1295 // treat limit == 0 as "no limit" 1296 if (limit) { 1297 psString limitString = psDBGenerateLimitSQL(limit); 1298 psStringAppend(&query, " %s", limitString); 1299 psFree(limitString); 1300 } 1301 1302 if (!p_psDBRunQuery(config->dbh, query)) { 1303 psError(PS_ERR_UNKNOWN, false, "database error"); 1304 psFree(query); 1305 return false; 1306 } 1307 psFree(query); 1308 1309 psArray *output = p_psDBFetchResult(config->dbh); 1310 if (!output) { 1311 psError(PS_ERR_UNKNOWN, false, "database error"); 1312 return false; 1313 } 1314 if (!psArrayLength(output)) { 1315 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1316 psFree(output); 1317 return true; 1318 } 1319 1320 // negative simple so the default is true 1321 if (!ippdbPrintMetadatas(stdout, output, "warpDoneCleanup", !simple)) { 1322 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1323 psFree(output); 1324 return false; 1325 } 1326 1327 psFree(output); 1328 1329 return true; 1330 } 1141 1331 1142 1332 static bool isValidMode(pxConfig *config, const char *mode)
Note:
See TracChangeset
for help on using the changeset viewer.
