diff options
Diffstat (limited to 'camel/camel-simple-data-wrapper.c')
-rw-r--r-- | camel/camel-simple-data-wrapper.c | 164 |
1 files changed, 65 insertions, 99 deletions
diff --git a/camel/camel-simple-data-wrapper.c b/camel/camel-simple-data-wrapper.c index b0f4553360..7f128116dc 100644 --- a/camel/camel-simple-data-wrapper.c +++ b/camel/camel-simple-data-wrapper.c @@ -2,15 +2,15 @@ /* camel-simple-data-wrapper.c : simple implementation of a data wrapper */ /* store the data in a glib byte array */ -/* +/* * - * Author : + * Author : * Bertrand Guiheneuf <bertrand@helixcode.com> * * Copyright 1999, 2000 Helix Code, Inc. (http://www.helixcode.com) * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * @@ -28,37 +28,38 @@ #include "camel-simple-data-wrapper.h" #include "camel-simple-data-wrapper-stream.h" -#include "camel-log.h" -static CamelDataWrapperClass *parent_class=NULL; +static CamelDataWrapperClass *parent_class = NULL; /* Returns the class for a CamelDataWrapper */ -#define CSDW_CLASS(so) CAMEL_SIMPLE_DATA_WRAPPER_CLASS (GTK_OBJECT(so)->klass) +#define CSDW_CLASS(so) CAMEL_SIMPLE_DATA_WRAPPER_CLASS (GTK_OBJECT (so)->klass) -static void my_construct_from_stream (CamelDataWrapper *data_wrapper, +static void construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); -static void my_write_to_stream (CamelDataWrapper *data_wrapper, +static void write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); -static void my_finalize (GtkObject *object); -static CamelStream * my_get_output_stream (CamelDataWrapper *data_wrapper); +static void finalize (GtkObject *object); +static CamelStream * get_output_stream (CamelDataWrapper *data_wrapper); static void camel_simple_data_wrapper_class_init (CamelSimpleDataWrapperClass *camel_simple_data_wrapper_class) { - CamelDataWrapperClass *camel_data_wrapper_class = CAMEL_DATA_WRAPPER_CLASS (camel_simple_data_wrapper_class); - GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (camel_data_wrapper_class); + CamelDataWrapperClass *camel_data_wrapper_class = + CAMEL_DATA_WRAPPER_CLASS (camel_simple_data_wrapper_class); + GtkObjectClass *gtk_object_class = + GTK_OBJECT_CLASS (camel_data_wrapper_class); parent_class = gtk_type_class (camel_data_wrapper_get_type ()); - /* virtual method definition */ + /* virtual method overload */ - camel_data_wrapper_class->write_to_stream = my_write_to_stream; - camel_data_wrapper_class->construct_from_stream = my_construct_from_stream; - camel_data_wrapper_class->get_output_stream = my_get_output_stream; + camel_data_wrapper_class->write_to_stream = write_to_stream; + camel_data_wrapper_class->construct_from_stream = construct_from_stream; + camel_data_wrapper_class->get_output_stream = get_output_stream; - gtk_object_class->finalize = my_finalize; + gtk_object_class->finalize = finalize; } @@ -74,9 +75,9 @@ GtkType camel_simple_data_wrapper_get_type (void) { static GtkType camel_simple_data_wrapper_type = 0; - - if (!camel_simple_data_wrapper_type) { - GtkTypeInfo camel_simple_data_wrapper_info = + + if (!camel_simple_data_wrapper_type) { + GtkTypeInfo camel_simple_data_wrapper_info = { "CamelSimpleDataWrapper", sizeof (CamelSimpleDataWrapper), @@ -87,160 +88,125 @@ camel_simple_data_wrapper_get_type (void) /* reserved_2 */ NULL, (GtkClassInitFunc) NULL, }; - - camel_simple_data_wrapper_type = gtk_type_unique (camel_data_wrapper_get_type (), - &camel_simple_data_wrapper_info); + + camel_simple_data_wrapper_type = + gtk_type_unique (camel_data_wrapper_get_type (), + &camel_simple_data_wrapper_info); } - + return camel_simple_data_wrapper_type; } -static void -my_finalize (GtkObject *object) +static void +finalize (GtkObject *object) { - CamelSimpleDataWrapper *simple_data_wrapper = CAMEL_SIMPLE_DATA_WRAPPER (object); + CamelSimpleDataWrapper *simple_data_wrapper = + CAMEL_SIMPLE_DATA_WRAPPER (object); - CAMEL_LOG_FULL_DEBUG ("Entering CamelMimePart::finalize\n"); - if (simple_data_wrapper->byte_array) g_byte_array_free (simple_data_wrapper->byte_array, TRUE); + if (simple_data_wrapper->byte_array) + g_byte_array_free (simple_data_wrapper->byte_array, TRUE); GTK_OBJECT_CLASS (parent_class)->finalize (object); - CAMEL_LOG_FULL_DEBUG ("Leaving CamelMimePart::finalize\n"); } /** - * camel_simple_data_wrapper_new: create a new CamelSimpleDataWrapper object - * - * - * - * Return value: + * camel_simple_data_wrapper_new: + * + * Return value: a new CamelSimpleDataWrapper object **/ CamelSimpleDataWrapper * camel_simple_data_wrapper_new (void) { - CamelSimpleDataWrapper *simple_data_wrapper; - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering new()\n"); - - simple_data_wrapper = (CamelSimpleDataWrapper *)gtk_type_new (CAMEL_SIMPLE_DATA_WRAPPER_TYPE); - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Leaving new()\n"); - return simple_data_wrapper; + return (CamelSimpleDataWrapper *) + gtk_type_new (CAMEL_SIMPLE_DATA_WRAPPER_TYPE); } - static void -my_write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) +write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { - CamelSimpleDataWrapper *simple_data_wrapper = CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper); + CamelSimpleDataWrapper *simple_data_wrapper = + CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper); GByteArray *array; - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering my_write_to_stream\n"); - g_assert (data_wrapper); - g_assert (stream); - array = simple_data_wrapper->byte_array; if ( array && array->len) camel_stream_write (stream, (gchar *)array->data, array->len); else parent_class->write_to_stream (data_wrapper, stream); - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Leaving my_write_to_stream\n"); } -#define my_CMSDW_TMP_BUF_SIZE 100 +#define CMSDW_TMP_BUF_SIZE 100 static void -my_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) +construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { - CamelSimpleDataWrapper *simple_data_wrapper = CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper); + CamelSimpleDataWrapper *simple_data_wrapper = + CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper); gint nb_bytes_read; static gchar *tmp_buf; GByteArray *array; - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering my_construct_from_stream\n"); + if (!tmp_buf) + tmp_buf = g_new (gchar, CMSDW_TMP_BUF_SIZE); - g_assert (data_wrapper); - g_assert (stream); - - if (!tmp_buf) { - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream allocating new temp buffer " - "with %d bytes\n", my_CMSDW_TMP_BUF_SIZE); - tmp_buf = g_new (gchar, my_CMSDW_TMP_BUF_SIZE); - } - array = simple_data_wrapper->byte_array; - if (array) { - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream freeing old byte array\n"); + if (array) g_byte_array_free (array, FALSE); - } - + array = g_byte_array_new (); - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream new byte array address:%p\n", array); simple_data_wrapper->byte_array = array; - nb_bytes_read = camel_stream_read (stream, tmp_buf, my_CMSDW_TMP_BUF_SIZE); - while (nb_bytes_read>0) { - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream read %d bytes from stream\n", nb_bytes_read); - if (nb_bytes_read>0) g_byte_array_append (array, tmp_buf, nb_bytes_read); - nb_bytes_read = camel_stream_read (stream, tmp_buf, my_CMSDW_TMP_BUF_SIZE); + nb_bytes_read = camel_stream_read (stream, tmp_buf, CMSDW_TMP_BUF_SIZE); + while (nb_bytes_read > 0) { + if (nb_bytes_read > 0) + g_byte_array_append (array, tmp_buf, nb_bytes_read); + nb_bytes_read = camel_stream_read (stream, tmp_buf, + CMSDW_TMP_BUF_SIZE); }; - - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Leaving my_construct_from_stream\n"); } /** - * camel_simple_data_wrapper_set_text: set some text as data wrapper content + * camel_simple_data_wrapper_set_text: set some text as data wrapper content * @simple_data_wrapper: SimpleDataWrapper object * @text: the text to use - * + * * Utility routine used to set up the content of a SimpleDataWrapper object - * to be a character string. + * to be a character string. **/ void camel_simple_data_wrapper_set_text (CamelSimpleDataWrapper *simple_data_wrapper, const gchar *text) { GByteArray *array; - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering set_text\n"); array = simple_data_wrapper->byte_array; - if (array) { - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::set_text freeing old byte array\n"); + if (array) g_byte_array_free (array, FALSE); - } - + array = g_byte_array_new (); simple_data_wrapper->byte_array = array; - - g_byte_array_append (array, text, strlen (text)); - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering set_text\n"); + g_byte_array_append (array, text, strlen (text)); } - - - static CamelStream * -my_get_output_stream (CamelDataWrapper *data_wrapper) +get_output_stream (CamelDataWrapper *data_wrapper) { CamelSimpleDataWrapper *simple_data_wrapper; CamelStream *output_stream = NULL; - - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::get_output_stream leaving\n"); - - g_assert (data_wrapper); simple_data_wrapper = CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper); - - if (simple_data_wrapper->byte_array && !(simple_data_wrapper->has_byte_array_stream)) { + + if (simple_data_wrapper->byte_array && + !(simple_data_wrapper->has_byte_array_stream)) { output_stream = camel_simple_data_wrapper_stream_new (simple_data_wrapper); camel_data_wrapper_set_output_stream (data_wrapper, output_stream); } - CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::get_output_stream leaving\n"); - return parent_class->get_output_stream (data_wrapper); - } |