00001
00002
00003
00004
00005
00006 #ifndef _BUFFER_H_
00007 #define _BUFFER_H_
00008
00009 #include "standard.h"
00010
00011 typedef struct {
00012 int head, tail;
00013 int full;
00014 int n;
00015 size_t len;
00016 void *data;
00017 } Buffer;
00018
00019 Buffer *mkbuffer(int n, size_t len);
00020
00021
00022
00023
00024 int bsize(Buffer *b);
00025
00026
00027
00028
00029 int bhead(Buffer *b);
00030
00031
00032
00033
00034 int btail(Buffer *b);
00035
00036
00037
00038
00039 void bwrite(Buffer *b, void *data);
00040
00041
00042
00043
00044 int bread(Buffer *b, void *data);
00045
00046
00047
00048
00049 int blevel(Buffer *b);
00050
00051
00052
00053
00054 void *bpeek(Buffer *b, int n);
00055
00056
00057
00058
00059 void closebuffer(Buffer *b);
00060
00061
00062
00063
00064
00065 #endif
00066
00067