Add null output stream

This commit is contained in:
Adrian Johnson 2008-09-11 08:37:30 +09:30
parent 6772efcdf6
commit b74533b5a5
2 changed files with 27 additions and 0 deletions

View file

@ -161,6 +161,9 @@ _cairo_memory_stream_copy (cairo_output_stream_t *base,
cairo_private int
_cairo_memory_stream_length (cairo_output_stream_t *stream);
cairo_output_stream_t *
_cairo_null_stream_create (void);
/* cairo-base85-stream.c */
cairo_private cairo_output_stream_t *
_cairo_base85_stream_create (cairo_output_stream_t *output);
@ -169,4 +172,5 @@ _cairo_base85_stream_create (cairo_output_stream_t *output);
cairo_private cairo_output_stream_t *
_cairo_deflate_stream_create (cairo_output_stream_t *output);
#endif /* CAIRO_OUTPUT_STREAM_PRIVATE_H */

View file

@ -676,3 +676,26 @@ _cairo_memory_stream_length (cairo_output_stream_t *base)
return _cairo_array_num_elements (&stream->array);
}
static cairo_status_t
null_write (cairo_output_stream_t *base,
const unsigned char *data, unsigned int length)
{
return CAIRO_STATUS_SUCCESS;
}
cairo_output_stream_t *
_cairo_null_stream_create (void)
{
cairo_output_stream_t *stream;
stream = malloc (sizeof *stream);
if (stream == NULL) {
_cairo_error_throw (CAIRO_STATUS_NO_MEMORY);
return (cairo_output_stream_t *) &_cairo_output_stream_nil;
}
_cairo_output_stream_init (stream, null_write, NULL);
return stream;
}