Changeset 86
- Timestamp:
- May 28, 2003, 2:14:52 PM (23 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/imregister/imreg/db.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/imregister/imreg/db.c
r70 r86 53 53 54 54 lockstate = (output.modify || output.delete) ? LCK_HARD : LCK_SOFT; 55 header.buffer = matrix.buffer = theader.buffer = table.buffer = (char *) NULL; 55 56 56 57 if (dBFile == (char *) NULL) { … … 61 62 /* lock database (soft) */ 62 63 f = fsetlockfile (dBFile, 300.0, lockstate, &dbstate); 64 if (dbstate == LCK_EMPTY) return (0); 63 65 if (f == (FILE *) NULL) { 64 66 fprintf (stderr, "ERROR: can't set lock on %s\n", dBFile); 65 67 exit (1); 66 68 } 67 if (dbstate == LCK_EMPTY) return (0); 68 69 /* load in table data */ 69 70 /* init & load in table data */ 70 71 table.header = &theader; 71 if (!fits_fread_header (f, &header)) escape (UNLOCK, "ERROR: can't read primary header");72 if (!fits_fread_matrix (f, &matrix, &header)) escape (UNLOCK, "ERROR: can't read primary header");73 if (!fits_fread_ftable (f, &table, "IMAGE_DATABASE"))escape (UNLOCK, "ERROR: can't read primary header");72 if (!fits_fread_header (f, &header)) escape (UNLOCK, "ERROR: can't read primary header"); 73 if (!fits_fread_matrix (f, &matrix, &header)) escape (UNLOCK, "ERROR: can't read primary header"); 74 if (!fits_fread_ftable (f, &table, "IMAGE_DATABASE")) escape (UNLOCK, "ERROR: can't read primary header"); 74 75 75 76 /* convert to internal format */ … … 94 95 make_backup (dBFile); 95 96 Fseek (f, 0, SEEK_SET); 96 if (!fits_fwrite_header (f, &header))escape (LOCK, "ERROR: can't update db");97 if (!fits_fwrite_matrix (f, &matrix))escape (LOCK, "ERROR: can't update db");97 if (!fits_fwrite_header (f, &header)) escape (LOCK, "ERROR: can't update db"); 98 if (!fits_fwrite_matrix (f, &matrix)) escape (LOCK, "ERROR: can't update db"); 98 99 if (!fits_fwrite_Theader (f, &theader)) escape (LOCK, "ERROR: can't update db"); 99 100 if (!fits_fwrite_table (f, &table)) escape (LOCK, "ERROR: can't update db"); 101 102 fits_free_header (&header); 103 fits_free_matrix (&matrix); 104 fits_free_header (&theader); 105 fits_free_table (&table); 106 100 107 fclearlockfile (dBFile, f, lockstate, &dbstate); 101 108 return (TRUE); … … 137 144 if (!fits_fwrite_Theader (f, &theader)) escape (LOCK, "ERROR: can't update db"); 138 145 if (!fits_fwrite_vtable (f, &vtable)) escape (LOCK, "ERROR: can't update db"); 146 147 fits_free_header (&header); 148 fits_free_matrix (&matrix); 149 fits_free_header (&theader); 150 fits_free_vtable (&vtable); 151 fits_free_table (&table); 152 139 153 fclearlockfile (dBFile, f, lockstate, &dbstate); 140 154 return (TRUE); … … 158 172 if (!fits_fwrite_vtable (f, &vtable)) escape (LOCK, "ERROR: can't append to db"); 159 173 174 fits_free_header (&header); 175 fits_free_matrix (&matrix); 176 fits_free_header (&theader); 177 fits_free_vtable (&vtable); 178 160 179 fclearlockfile (dBFile, f, lockstate, &dbstate); 161 180 return (TRUE); … … 177 196 178 197 int close_db () { 198 199 fits_free_header (&header); 200 fits_free_matrix (&matrix); 201 fits_free_header (&theader); 202 fits_free_table (&table); 203 179 204 if (dbstate == LCK_UNLOCK) return (TRUE); 180 205 fclearlockfile (dBFile, f, lockstate, &dbstate); … … 183 208 184 209 int close_lock_db () { 185 close (f); 210 211 fits_free_header (&header); 212 fits_free_matrix (&matrix); 213 fits_free_header (&theader); 214 fits_free_table (&table); 215 216 if (dbstate == LCK_UNLOCK) return (TRUE); 217 fclearlockfile (dBFile, f, LCK_XCLD, &dbstate); 186 218 return (TRUE); 187 219 } 220 221 int print_db_status (char *message) { 222 223 int fd; 224 225 if (!output.verbose) return (0); 226 if (f == (FILE *) NULL) { 227 fprintf (stderr, "%s - db: %s - fd: %d\n", message, "null", -1); 228 return (0); 229 } 230 fd = fileno (f); 231 fprintf (stderr, "%s - db: %s - fd: %d\n", message, dBFile, fd); 232 return (1); 233 } 188 234 189 235 int escape (int mode, char *message) {
Note:
See TracChangeset
for help on using the changeset viewer.
