source: lib/wandio.h @ 15e9390

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivegetfragoffhelplibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since 15e9390 was 15e9390, checked in by Perry Lorier <perry@…>, 11 years ago

Rearrange struct fields to get better packing on 64bit machines.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#ifndef IO_H
2#define IO_H 1
3#include <sys/types.h>
4#include <stdio.h>
5
6typedef struct io_t io_t;
7typedef struct iow_t iow_t;
8
9struct compression_type {
10        const char *name;
11        const char *ext;
12        int compress_flag;
13};
14extern struct compression_type compression_type[];
15
16typedef struct {
17        const char *name;
18        off_t (*read)(io_t *io, void *buffer, off_t len);
19        off_t (*peek)(io_t *io, void *buffer, off_t len);
20        off_t (*tell)(io_t *io);
21        off_t (*seek)(io_t *io, off_t offset, int whence);
22        void (*close)(io_t *io);
23} io_source_t;
24
25typedef struct {
26        const char *name;
27        off_t (*write)(iow_t *iow, const char *buffer, off_t len);
28        void (*close)(iow_t *iow);
29} iow_source_t;
30
31struct io_t {
32        io_source_t *source;
33        void *data;
34};
35
36struct iow_t {
37        iow_source_t *source;
38        void *data;
39};
40
41enum {
42        WANDIO_COMPRESS_NONE    = 0,
43        WANDIO_COMPRESS_ZLIB    = 1,
44        WANDIO_COMPRESS_BZ2     = 2,
45        WANDIO_COMPRESS_MASK    = 3
46};
47
48
49io_t *bz_open(io_t *parent);
50io_t *zlib_open(io_t *parent);
51io_t *thread_open(io_t *parent);
52io_t *peek_open(io_t *parent);
53io_t *stdio_open(const char *filename);
54
55iow_t *zlib_wopen(iow_t *child, int compress_level);
56iow_t *bz_wopen(iow_t *child, int compress_level);
57iow_t *thread_wopen(iow_t *child);
58iow_t *stdio_wopen(const char *filename);
59
60io_t *wandio_create(const char *filename);
61off_t wandio_tell(io_t *io);
62off_t wandio_seek(io_t *io, off_t offset, int whence);
63off_t wandio_read(io_t *io, void *buffer, off_t len);
64off_t wandio_peek(io_t *io, void *buffer, off_t len);
65void wandio_destroy(io_t *io);
66
67iow_t *wandio_wcreate(const char *filename, int compression_level, int flags);
68off_t wandio_wwrite(iow_t *iow, const void *buffer, off_t len);
69void wandio_wdestroy(iow_t *iow);
70
71#endif
Note: See TracBrowser for help on using the repository browser.