00001 #ifndef _dev_w3_org__2001_blindfold_bytestream_implementation_h
00002 #define _dev_w3_org__2001_blindfold_bytestream_implementation_h
00003
00004 #include "bytestream.h"
00005
00029 typedef size_t (ByteReadFunction)(bytesource *self,
00030 void *buf, size_t count);
00031
00033 typedef size_t (ByteWriteFunction)(ByteSink *self,
00034 void *buf, size_t count);
00035
00037 typedef bytesource *(bytesourceSetFunction)(bytesource *source);
00038
00040 typedef ByteSink *(ByteSinkSetFunction)(ByteSink *sink);
00041
00042
00043
00044
00045
00046
00047 struct byte_source {
00052 ByteReadFunction *read;
00053
00059 bytesourceSetFunction *attach_sink;
00060
00062 ReleaseFunction *release;
00063 };
00064
00066 struct byte_sink {
00068 ByteWriteFunction *write;
00069
00071 ReleaseFunction *release;
00072 };
00073