15 #include <grass/rowio.h>
17 static void *my_select(ROWIO *,
int);
18 static void pageout(ROWIO *,
int);
53 for (i = 0; i < R->nrows; i++)
54 if (row == R->rcb[i].row)
55 return my_select(R, i);
60 for (i = 0; i < R->nrows; i++)
61 if (R->rcb[i].row < 0) {
65 else if (age < R->rcb[i].age) {
72 i = (*R->getrow) (R->fd, R->rcb[cur].buf, R->rcb[cur].row = row, R->len);
73 R->rcb[cur].dirty = 0;
81 return my_select(R, cur);
93 for (i = 0; i < R->nrows; i++)
97 static void pageout(ROWIO * R,
int cur)
99 if (R->rcb[cur].row < 0)
101 if (!R->rcb[cur].dirty)
103 (*R->putrow) (R->fd, R->rcb[cur].buf, R->rcb[cur].row, R->len);
104 R->rcb[cur].dirty = 0;
107 static void *my_select(ROWIO * R,
int n)
112 for (i = 0; i < R->nrows; i++)
114 R->cur = R->rcb[n].row;
115 R->buf = R->rcb[n].buf;
void Rowio_flush(ROWIO *R)
Flush data.
void * Rowio_get(ROWIO *R, int row)
Read a row.