16861687168816891690169116921693169416951696
// And now, write the bytes until we have none while ( nbStored > 0 ) { if ( remaining > nbStored ) { pageData.mark(); pageData.position( pagePos ); pageData.put( bytes, bytes.length - nbStored, nbStored ); pageData.reset(); nbStored = 0; }
16941695169616971698169917001701170217031704
pageData.reset(); nbStored = 0; } else { pageData.mark(); pageData.position( pagePos ); pageData.put( bytes, bytes.length - nbStored, remaining ); pageData.reset(); pageNb++; pageData = pageIos[pageNb].getData();
17521753175417551756175717581759176017611762
17601761176217631764176517661767176817691770
pageData.reset(); nbStored = 0; } else { pageData.mark(); pageData.position( pagePos ); pageData.put( bytes, bytes.length - nbStored, remaining ); pageData.reset(); pageNb++;
22272228222922302231223222332234223522362237
* Dump a pageIO */ private void dump( PageIO pageIo ) { ByteBuffer buffer = pageIo.getData(); buffer.mark(); byte[] longBuffer = new byte[LONG_SIZE]; byte[] intBuffer = new byte[INT_SIZE]; // get the next page offset buffer.get( longBuffer );
207208209210211212213214215216217
int rd = in.read(buf); read += (rd < 0 ? 0 : rd); // rd == -1 if at end of stream. buf.flip(); int start = buf.position(); buf.mark(); while (buf.hasRemaining()) { byte b = buf.get(); if (b == '\n') { int end = buf.position(); int sz = end - start;
217218219220221222223224225226227
int sz = end - start; byte[] body = new byte[sz]; buf.reset(); // go back to mark buf.get(body, 0, sz - 1); // read data buf.get(); // read '\n' buf.mark(); // new mark. start = buf.position(); String s = new String(body); LOG.info("=> " + s); } }
260261262263264265266267268269270
270271272273274275276277278279280
309310311312313314315316317318319