Replace per Image messenger with a global one, and use image id instead.

This commit is contained in:
Vreixo Formoso
2008-01-19 02:48:12 +01:00
parent 88eea232aa
commit df5aa263ec
24 changed files with 254 additions and 223 deletions

View File

@ -202,13 +202,12 @@ int ecma119_writer_compute_data_blocks(IsoImageWriter *writer)
target = writer->target;
/* compute position of directories */
iso_msg_debug(target->image->messenger,
"Computing position of dir structure");
iso_msg_debug(target->image->id, "Computing position of dir structure");
target->ndirs = 0;
calc_dir_pos(target, target->root);
/* compute length of pathlist */
iso_msg_debug(target->image->messenger, "Computing length of pathlist");
iso_msg_debug(target->image->id, "Computing length of pathlist");
path_table_size = calc_path_table_size(target->root);
/* compute location for path tables */
@ -313,7 +312,7 @@ int ecma119_writer_write_vol_desc(IsoImageWriter *writer)
t = writer->target;
image = t->image;
iso_msg_debug(image->messenger, "Write Primary Volume Descriptor");
iso_msg_debug(image->id, "Write Primary Volume Descriptor");
memset(&vol, 0, sizeof(struct ecma119_pri_vol_desc));
@ -550,7 +549,7 @@ int write_path_tables(Ecma119Image *t)
size_t i, j, cur;
Ecma119Node **pathlist;
iso_msg_debug(t->image->messenger, "Writing ISO Path tables");
iso_msg_debug(t->image->id, "Writing ISO Path tables");
/* allocate temporal pathlist */
pathlist = malloc(sizeof(void*) * t->ndirs);
@ -638,8 +637,7 @@ int ecma119_writer_create(Ecma119Image *target)
/* add this writer to image */
target->writers[target->nwriters++] = writer;
iso_msg_debug(target->image->messenger,
"Creating low level ECMA-119 tree...");
iso_msg_debug(target->image->id, "Creating low level ECMA-119 tree...");
ret = ecma119_tree_create(target);
if (ret < 0) {
return ret;
@ -740,7 +738,7 @@ void *write_function(void *arg)
IsoImageWriter *writer;
Ecma119Image *target = (Ecma119Image*)arg;
iso_msg_debug(target->image->messenger, "Starting image writing...");
iso_msg_debug(target->image->id, "Starting image writing...");
target->bytes_written = (off_t) 0;
target->percent_written = 0;
@ -755,7 +753,7 @@ void *write_function(void *arg)
}
/* write volume descriptors, one per writer */
iso_msg_debug(target->image->messenger, "Write volume descriptors");
iso_msg_debug(target->image->id, "Write volume descriptors");
for (i = 0; i < target->nwriters; ++i) {
writer = target->writers[i];
res = writer->write_vol_desc(writer);
@ -792,7 +790,7 @@ void *write_function(void *arg)
pthread_exit(NULL);
write_error: ;
iso_msg_fatal(target->image->messenger, LIBISO_WRITE_ERROR,
iso_msg_fatal(target->image->id, LIBISO_WRITE_ERROR,
"Image write error, code %d", res);
iso_ring_buffer_writer_close(target->buffer, 1);
pthread_exit(NULL);
@ -997,7 +995,7 @@ int ecma119_image_new(IsoImage *src, Ecma119WriteOpts *opts, Ecma119Image **img)
writer = target->writers[i];
ret = writer->write_vol_desc(writer);
if (ret < 0) {
iso_msg_debug(target->image->messenger,
iso_msg_debug(target->image->id,
"Error writing overwrite volume descriptors");
goto target_cleanup;
}
@ -1010,7 +1008,7 @@ int ecma119_image_new(IsoImage *src, Ecma119WriteOpts *opts, Ecma119Image **img)
/* copy the volume descriptors to the overwrite buffer... */
ret = iso_ring_buffer_read(target->buffer, buf, voldesc_size);
if (ret < 0) {
iso_msg_debug(target->image->messenger,
iso_msg_debug(target->image->id,
"Error reading overwrite volume descriptors");
goto target_cleanup;
}
@ -1039,7 +1037,7 @@ int ecma119_image_new(IsoImage *src, Ecma119WriteOpts *opts, Ecma119Image **img)
ret = pthread_create(&(target->wthread), &(target->th_attr),
write_function, (void *) target);
if (ret != 0) {
iso_msg_fatal(target->image->messenger, LIBISO_THREAD_ERROR,
iso_msg_fatal(target->image->id, LIBISO_THREAD_ERROR,
"Cannot create writer thread");
ret = ISO_THREAD_ERROR;
goto target_cleanup;
@ -1070,8 +1068,7 @@ static int bs_read(struct burn_source *bs, unsigned char *buf, int size)
return size;
} else if (ret < 0) {
/* error */
iso_msg_fatal(t->image->messenger, LIBISO_READ_ERROR,
"Error reading buffer");
iso_msg_fatal(t->image->id, LIBISO_READ_ERROR, "Error reading buffer");
return -1;
} else {
/* EOF */
@ -1095,8 +1092,8 @@ static void bs_free_data(struct burn_source *bs)
/* wait until writer thread finishes */
pthread_join(target->wthread, NULL);
iso_msg_debug(target->image->messenger, "Writer thread joined");
iso_msg_debug(target->image->messenger,
iso_msg_debug(target->image->id, "Writer thread joined");
iso_msg_debug(target->image->id,
"Ring buffer was %d times full and %d times empty",
iso_ring_buffer_get_times_full(target->buffer),
iso_ring_buffer_get_times_empty(target->buffer));
@ -1174,8 +1171,8 @@ int iso_write(Ecma119Image *target, void *buf, size_t count)
/* only report in 5% chunks */
if (percent >= target->percent_written + 5) {
iso_msg_debug(target->image->messenger,
"Processed %u of %u KB (%d %%)", kbw, kbt, percent);
iso_msg_debug(target->image->id, "Processed %u of %u KB (%d %%)",
kbw, kbt, percent);
target->percent_written = percent;
}
}