15#include <grass/rowio.h>
17static void *my_select(ROWIO *,
int);
18static void pageout(ROWIO *,
int);
52 for (i = 0; i < R->nrows; i++)
53 if (row == R->rcb[i].row)
54 return my_select(R, i);
59 for (i = 0; i < R->nrows; i++)
60 if (R->rcb[i].row < 0) {
64 else if (age < R->rcb[i].age) {
71 i = (*R->getrow)(R->fd, R->rcb[cur].buf, R->rcb[cur].row = row, R->len);
72 R->rcb[cur].dirty = 0;
80 return my_select(R, cur);
92 for (i = 0; i < R->nrows; i++)
96static void pageout(ROWIO *R,
int cur)
98 if (R->rcb[cur].row < 0)
100 if (!R->rcb[cur].dirty)
102 (*R->putrow)(R->fd, R->rcb[cur].buf, R->rcb[cur].row, R->len);
103 R->rcb[cur].dirty = 0;
106static void *my_select(ROWIO *R,
int n)
111 for (i = 0; i < R->nrows; i++)
113 R->cur = R->rcb[n].row;
114 R->buf = R->rcb[n].buf;
void Rowio_flush(ROWIO *R)
Flush data.
void * Rowio_get(ROWIO *R, int row)
Read a row.