aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-stream.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-stream.c')
-rw-r--r--camel/camel-stream.c40
1 files changed, 11 insertions, 29 deletions
diff --git a/camel/camel-stream.c b/camel/camel-stream.c
index f649494b2d..79fa07cc34 100644
--- a/camel/camel-stream.c
+++ b/camel/camel-stream.c
@@ -31,10 +31,13 @@ static CamelObjectClass *parent_class = NULL;
/* Returns the class for a CamelStream */
#define CS_CLASS(so) CAMEL_STREAM_CLASS(CAMEL_OBJECT_GET_CLASS(so))
-static int stream_flush (CamelStream *stream);
-static int stream_close (CamelStream *stream);
-static gboolean stream_eos (CamelStream *stream);
-
+/* default implementations, do very little */
+static ssize_t stream_read (CamelStream *stream, char *buffer, size_t n) { return 0; }
+static ssize_t stream_write (CamelStream *stream, const char *buffer, size_t n) { return n; }
+static int stream_close (CamelStream *stream) { return 0; }
+static int stream_flush (CamelStream *stream) { return 0; }
+static gboolean stream_eos (CamelStream *stream) { return stream->eos; }
+static int stream_reset (CamelStream *stream) { return 0; }
static void
camel_stream_class_init (CamelStreamClass *camel_stream_class)
@@ -42,9 +45,12 @@ camel_stream_class_init (CamelStreamClass *camel_stream_class)
parent_class = camel_type_get_global_classfuncs( CAMEL_OBJECT_TYPE );
/* virtual method definition */
- camel_stream_class->flush = stream_flush;
+ camel_stream_class->read = stream_read;
+ camel_stream_class->write = stream_write;
camel_stream_class->close = stream_close;
+ camel_stream_class->flush = stream_flush;
camel_stream_class->eos = stream_eos;
+ camel_stream_class->reset = stream_reset;
}
CamelType
@@ -107,14 +113,6 @@ camel_stream_write (CamelStream *stream, const char *buffer, size_t n)
return CS_CLASS (stream)->write (stream, buffer, n);
}
-
-static int
-stream_flush (CamelStream *stream)
-{
- /* nothing */
- return 0;
-}
-
/**
* camel_stream_flush:
* @stream: a CamelStream object
@@ -132,14 +130,6 @@ camel_stream_flush (CamelStream *stream)
return CS_CLASS (stream)->flush (stream);
}
-
-static int
-stream_close (CamelStream *stream)
-{
- /* nothing */
- return 0;
-}
-
/**
* camel_stream_close:
* @stream:
@@ -156,13 +146,6 @@ camel_stream_close (CamelStream *stream)
return CS_CLASS (stream)->close (stream);
}
-
-static gboolean
-stream_eos (CamelStream *stream)
-{
- return stream->eos;
-}
-
/**
* camel_stream_eos:
* @stream: a CamelStream object
@@ -180,7 +163,6 @@ camel_stream_eos (CamelStream *stream)
return CS_CLASS (stream)->eos (stream);
}
-
/**
* camel_stream_reset: reset a stream
* @stream: the stream object