123456789101112131415161718192021222324252627282930313233 |
- #ifndef GRASS_ROWIO_H
- #define GRASS_ROWIO_H
- typedef struct
- {
- int fd; /* file descriptor for reading */
- int nrows; /* number of rows to be held in memory */
- int len; /* buffer length */
- int cur; /* current row in memory */
- void *buf; /* current data buf */
- int (*getrow) (int, void *, int, int); /* routine to do the row reads */
- int (*putrow) (int, const void *, int, int); /* routine to do the row writes */
- struct ROWIO_RCB
- {
- void *buf; /* data buffer */
- int age; /* for order of access */
- int row; /* row number */
- int dirty;
- } *rcb;
- } ROWIO;
- int Rowio_fileno(const ROWIO *);
- void Rowio_forget(ROWIO *, int);
- void *Rowio_get(ROWIO *, int);
- void Rowio_flush(ROWIO *);
- int Rowio_put(ROWIO *, const void *, int);
- void Rowio_release(ROWIO *);
- int Rowio_setup(ROWIO *, int, int, int, int (*)(int, void *, int, int),
- int (*)(int, const void *, int, int));
- #endif
|