|
123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef BTPD_STREAM_H
- #define BTPD_STREAM_H
-
- typedef int (*F_fdcb)(const char *, int *, void *);
-
- #define def_stream(name) \
- struct name {\
- struct metainfo *meta;\
- F_fdcb fd_cb;\
- void *fd_arg;\
- unsigned index;\
- off_t t_off;\
- off_t f_off;\
- int fd;\
- }
-
- def_stream(bt_stream_ro);
-
- struct bt_stream_ro *
- bts_open_ro(struct metainfo *meta, off_t off, F_fdcb fd_cb, void *fd_arg);
- int bts_read_ro(struct bt_stream_ro *bts, char *buf, size_t len);
- void bts_seek_ro(struct bt_stream_ro *bts, off_t nbytes);
- void bts_close_ro(struct bt_stream_ro *bts);
-
- def_stream(bt_stream_wo);
-
- struct bt_stream_wo *
- bts_open_wo(struct metainfo *meta, off_t off, F_fdcb fd_cb, void *fd_arg);
- int bts_write_wo(struct bt_stream_wo *bts, const char *buf, size_t len);
- int bts_close_wo(struct bt_stream_wo *bts);
-
- int bts_sha(struct bt_stream_ro *bts, off_t length, uint8_t *hash);
- int bts_hashes(struct metainfo *, F_fdcb fd_cb,
- void (*cb)(uint32_t, uint8_t *, void *), void *arg);
-
- #endif
|