Changeset 28043 for trunk/ippTools/src/pxtools.c
- Timestamp:
- May 19, 2010, 5:13:52 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
ippTools/src/pxtools.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/czw_branch/20100427 (added) merged: 27784,28017-28018,28028-28033,28042
- Property svn:mergeinfo changed
-
trunk/ippTools/src/pxtools.c
r27417 r28043 46 46 if (!strcmp(state, "scrubbed")) return true; 47 47 return false; 48 } 49 50 psString pxMergeCodeVersions(psString version1, psString version2) { 51 psString out = NULL; 52 53 bool mod1 = false; 54 bool mod2 = false; 55 56 psS32 num1; 57 psS32 num2; 58 psS32 numO; 59 60 if (!version1) { 61 psStringAppend(&out,version2); 62 return(out); 63 } 64 if (!version2) { 65 psStringAppend(&out,version1); 66 return(out); 67 } 68 69 if (strchr(version1,'M')) { 70 psStringSubstitute(&version1,"M",""); 71 mod1 = true; 72 } 73 if (strchr(version2,'M')) { 74 psStringSubstitute(&version2,"M",""); 75 mod2 = true; 76 } 77 78 num1 = strtol(version1,NULL,10); 79 num2 = strtol(version2,NULL,10); 80 81 if (num1 >= num2) { 82 numO = num1; 83 } 84 else { 85 numO = num2; 86 } 87 88 psStringAppend(&out,"%" PRId32,numO); 89 if (mod1 || mod2) { 90 psStringAppend(&out,"M"); 91 } 92 return(out); 93 } 94 95 bool pxCoalesceRunStatus(pxConfig *config, const psString dbQFile, psS64 stage_id, psString *software_ver, 96 psS32 *maskfrac_npix, psF32 *maskfrac_static, psF32 *maskfrac_dynamic, 97 psF32 *maskfrac_magic, psF32 *maskfrac_advisory) { 98 psString query = pxDataGet(dbQFile); 99 /* psString text_id = NULL; */ 100 /* psStringAppend(&text_id," %" PRId64,stage_id); */ 101 /* psStringSubstitute(&query,text_id,"@STAGE_ID@"); */ 102 /* psFree(text_id); */ 103 if (!p_psDBRunQueryF(config->dbh, query, stage_id)) { 104 psError(PS_ERR_UNKNOWN, false, "database error"); 105 psFree(query); 106 return(false); 107 } 108 psFree(query); 109 psArray *output = p_psDBFetchResult(config->dbh); 110 if (!output) { 111 psError(PS_ERR_UNKNOWN, false, "database error"); 112 return(false); 113 } 114 115 for (long i = 0; i < psArrayLength(output); i++) { 116 psMetadata *row = output->data[i]; 117 118 psS32 this_npix = psMetadataLookupS32(NULL, row, "maskfrac_npix"); 119 psF32 this_static = psMetadataLookupF32(NULL, row, "maskfrac_static"); 120 psF32 this_dynamic = psMetadataLookupF32(NULL, row, "maskfrac_dynamic"); 121 psF32 this_magic = psMetadataLookupF32(NULL, row, "maskfrac_magic"); 122 psF32 this_advisory = psMetadataLookupF32(NULL, row, "maskfrac_advisory"); 123 psString this_version = psMetadataLookupStr(NULL, row, "software_ver"); 124 125 *software_ver = pxMergeCodeVersions(*software_ver,this_version); 126 127 *maskfrac_static = ((*maskfrac_static * *maskfrac_npix) + (this_npix * this_static)) / (this_npix + *maskfrac_npix); 128 *maskfrac_dynamic = ((*maskfrac_dynamic * *maskfrac_npix) + (this_npix * this_dynamic)) / (this_npix + *maskfrac_npix); 129 *maskfrac_magic = ((*maskfrac_magic * *maskfrac_npix) + (this_npix * this_magic)) / (this_npix + *maskfrac_npix); 130 *maskfrac_advisory = ((*maskfrac_advisory * *maskfrac_npix) + (this_npix * this_advisory)) / (this_npix + *maskfrac_npix); 131 *maskfrac_npix += this_npix; 132 } 133 psFree(output); 134 return(true); 135 } 136 137 bool pxSetRunSoftware(pxConfig *config, const psString tableName, const psString stage_id_name, const psS64 stage_id, 138 psString software_ver) { 139 char *query = "UPDATE %s SET software_ver = '%s' WHERE %s = %" PRId64; 140 printf(query,tableName,software_ver,stage_id_name,stage_id); 141 if (!p_psDBRunQueryF(config->dbh,query,tableName,software_ver,stage_id_name,stage_id)) { 142 psError(PS_ERR_UNKNOWN, false, 143 "failed to set software version for %s %" PRId64,stage_id_name,stage_id); 144 return(false); 145 } 146 147 return(true); 148 } 149 bool pxSetRunMaskfrac(pxConfig *config, const psString tableName, const psString stage_id_name, const psS64 stage_id, 150 psS32 maskfrac_npix, psF32 maskfrac_static, psF32 maskfrac_dynamic, 151 psF32 maskfrac_magic, psF32 maskfrac_advisory) { 152 char *query = "UPDATE %s SET maskfrac_npix = %d, maskfrac_static = %f, maskfrac_dynamic = %f, maskfrac_magic = %f, maskfrac_advisory = %f WHERE %s = %" PRId64; 153 if (!p_psDBRunQueryF(config->dbh,query,tableName,maskfrac_npix,maskfrac_static, 154 maskfrac_dynamic, maskfrac_magic,maskfrac_advisory,stage_id_name,stage_id)) { 155 psError(PS_ERR_UNKNOWN, false, 156 "failed to set maskfrac stats for %s %" PRId64,stage_id_name,stage_id); 157 return(false); 158 } 159 160 161 162 return(true); 48 163 } 49 164
Note:
See TracChangeset
for help on using the changeset viewer.
