aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-data-wrapper.c
diff options
context:
space:
mode:
authorbertrand <Bertrand.Guiheneuf@inria.fr>1999-05-09 00:31:26 +0800
committerBertrand Guiheneuf <bertrand@src.gnome.org>1999-05-09 00:31:26 +0800
commitfb68f5a78c905babb62460b92ac378a036b03231 (patch)
tree9751d050f565a3f11700435758523da69dbcdc44 /camel/camel-data-wrapper.c
parent6e4afd20567494cda7ab80c466a6b0fc05b8db31 (diff)
downloadgsoc2013-evolution-fb68f5a78c905babb62460b92ac378a036b03231.tar.gz
gsoc2013-evolution-fb68f5a78c905babb62460b92ac378a036b03231.tar.zst
gsoc2013-evolution-fb68f5a78c905babb62460b92ac378a036b03231.zip
method to stream data content in a buffer.
1999-05-08 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-data-wrapper.c (camel_data_wrapper_write_to_buffer): method to stream data content in a buffer. (camel_data_wrapper_write_to_file): (camel_data_wrapper_construct_from_buffer): (camel_data_wrapper_construct_from_file): new methods. Basic data_wrapper interface. Will have to add MIME content type and bonobo object creation from content type. Bertrand. svn path=/trunk/; revision=893
Diffstat (limited to 'camel/camel-data-wrapper.c')
-rw-r--r--camel/camel-data-wrapper.c104
1 files changed, 103 insertions, 1 deletions
diff --git a/camel/camel-data-wrapper.c b/camel/camel-data-wrapper.c
index 19abc31c4c..9020b7e8fc 100644
--- a/camel/camel-data-wrapper.c
+++ b/camel/camel-data-wrapper.c
@@ -1,5 +1,8 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* camelDataWrapper.c : Abstract class for an data_wrapper */
+/* camelDataWrapper.c : Abstract class for a data_wrapper */
+
+/** THIS IS MOSTLY AN ABSTRACT CLASS THAT SHOULD HAVE BEEN AN
+ INTERFACE. **/
/*
*
@@ -28,12 +31,21 @@ static GtkObjectClass *parent_class=NULL;
/* Returns the class for a CamelDataWrapper */
#define CDH_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (GTK_OBJECT(so)->klass)
+static void __camel_data_wrapper_write_to_buffer(CamelDataWrapper *data_wrapper, gchar *buffer);
+static void __camel_data_wrapper_write_to_file(CamelDataWrapper *data_wrapper, FILE *file);
+static void __camel_data_wrapper_construct_from_buffer(CamelDataWrapper *data_wrapper, gchar *buffer, guint size);
+static void __camel_data_wrapper_construct_from_file (CamelDataWrapper *data_wrapper, FILE *file, guint size);
+
static void
camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class)
{
parent_class = gtk_type_class (gtk_object_get_type ());
/* virtual method definition */
+ camel_data_wrapper_class->write_to_buffer = __camel_data_wrapper_write_to_buffer;
+ camel_data_wrapper_class->write_to_file = __camel_data_wrapper_write_to_file;
+ camel_data_wrapper_class->construct_from_buffer = __camel_data_wrapper_construct_from_buffer;
+ camel_data_wrapper_class->construct_from_file = __camel_data_wrapper_construct_from_file;
/* virtual method overload */
}
@@ -70,3 +82,93 @@ camel_data_wrapper_get_type (void)
+
+/**
+ * __camel_data_wrapper_write_to_buffer: write data content in a byte buffer
+ * @data_wrapper: the data wrapper object
+ * @buffer: byte buffer where data will be written
+ *
+ * This method must be overriden by subclasses
+ * Data must be written in the bytes buffer
+ * in a architecture independant fashion.
+ * If data is a standard data (for example an jpg image)
+ * it must be serialized in the buffer exactly as it
+ * would be saved on disk. A simple dump of the buffer in
+ * a file should be sufficient for the data to be
+ * re-read by a foreign application.
+ *
+ **/
+static void
+__camel_data_wrapper_write_to_buffer(CamelDataWrapper *data_wrapper, gchar *buffer)
+{
+ /* nothing */
+}
+
+
+/**
+ * camel_data_wrapper_write_to_buffer: write data in a memory buffer
+ * @data_wrapper: the data wrapper object
+ * @buffer: byte buffer where data will be written
+ *
+ * Write data content in a buffer. Data is stored in a machine
+ * independant format.
+ *
+ **/
+void
+camel_data_wrapper_write_to_buffer(CamelDataWrapper *data_wrapper, gchar *buffer)
+{
+ CDH_CLASS(data_wrapper)->write_to_buffer (data_wrapper, buffer);
+}
+
+
+
+static void
+__camel_data_wrapper_write_to_file(CamelDataWrapper *data_wrapper, FILE *file)
+{
+ /* nothing */
+}
+
+
+/**
+ * camel_data_wrapper_write_to_file: write data in a binary file
+ * @data_wrapper: the data wrapper object
+ * @file: file descriptoe where to write data
+ *
+ * Write data content in a binary file.
+ *
+ **/
+void
+camel_data_wrapper_write_to_file(CamelDataWrapper *data_wrapper, FILE *file)
+{
+ CDH_CLASS(data_wrapper)->write_to_file (data_wrapper, file);
+}
+
+
+static void
+__camel_data_wrapper_construct_from_buffer(CamelDataWrapper *data_wrapper, gchar *buffer, guint size)
+{
+ /* nothing */
+}
+
+void
+camel_data_wrapper_construct_from_buffer(CamelDataWrapper *data_wrapper, gchar *buffer, guint size)
+{
+ CDH_CLASS(data_wrapper)->construct_from_buffer (data_wrapper, buffer, size);
+}
+
+
+
+static void
+__camel_data_wrapper_construct_from_file (CamelDataWrapper *data_wrapper, FILE *file, guint size)
+{
+ /* nothing */
+}
+
+void
+camel_data_wrapper_construct_from_file (CamelDataWrapper *data_wrapper, FILE *file, guint size)
+{
+ CDH_CLASS(data_wrapper)->construct_from_file (data_wrapper, file, size);
+}
+
+
+