00001 #ifndef _dev_w3_org__2001_blindfold_bytestream_h
00002 #define _dev_w3_org__2001_blindfold_bytestream_h
00003
00021 #include <stdio.h>
00022
00030 typedef struct bytesource_s bytesource;
00031
00039 typedef struct bytesink_s bytesink;
00040
00042
00053 bytesource *bytesource_new_for_uri(char *uri);
00054
00064 bytesource *bytesource_new_for_buffer(char *buf, size_t bytes);
00065
00067 bytesource *bytesource_new_for_string(char *str);
00069 bytesource *bytesource_new_for_FILE(FILE *f);
00071 bytesource *bytesource_new_for_fd(int fd);
00072
00074 bytesink *bytesink_new_for_uri(char *uri);
00076 bytesink *bytesink_new_for_buffer(char *buf, size_t bytes);
00078 bytesink *bytesink_new_for_string(char *str);
00080 bytesink *bytesink_new_for_FILE(FILE *f);
00082 bytesink *bytesink_new_for_fd(int fd);
00083
00084
00085
00093 size_t bytesource_read(bytesource *source, void *buf, size_t count);
00094
00102 size_t bytesink_write(bytesink *destination, void *buf, size_t count);
00103
00112 void bytestream_attach(bytesource *source, bytesink *sink);
00113
00118 void bytesink_release(bytesink *b);
00119
00124 void bytesource_release(bytesource *b);
00125
00126
00127 #endif