public Excerpt startRecord() { recordsExcerpt.startExcerpt(maxRecordSize); return recordsExcerpt; }
public void startExcerpt(int capacity) { excerpt.startExcerpt(capacity); }
@NotNull public Excerpt startExcerpt(int capacity, @NotNull String name) { checkStarted(); assert excerpt != null; excerpt.startExcerpt(capacity + 2 + name.length()); excerpt.writeEnum(name); return excerpt; }
public void write(@NotNull CharSequence s) { excerpt.startExcerpt(s.length() * 3); excerpt.writeUTF(s); excerpt.finish(); }
void addEntry() { excerpt.startExcerpt(sizeORecordBytes); excerpt.position(sizeORecordBytes); excerpt.finish(); }
@Override public void report(@NotNull MetaData metaData, @NotNull SmallReport smallReport) { excerpt.startExcerpt(200); // a guess to be lazy. excerpt.writeEnum(MessageType.report); metaData.writeForEngine(excerpt); smallReport.writeMarshallable(excerpt); excerpt.finish(); } }
@NotNull public Excerpt startExceprt(int capacity, char type) { excerpt.startExcerpt(HEADER_LENGTH + capacity); excerpt.writeLong(System.currentTimeMillis()); excerpt.writeLong(System.nanoTime()); excerpt.writeLong(0L); // read timestamp excerpt.writeInt24(0); // the length. excerpt.writeByte(type); // the message type. return excerpt; } }
@Override public void small(MetaData ignored, @NotNull SmallCommand command) { excerpt.startExcerpt(200); // guess the maximum size (or calculate it) excerpt.writeEnum(MessageType.small); MetaData.writeForGateway(excerpt); command.writeMarshallable(excerpt); excerpt.finish(); } }
public DirectMemoryReader() throws IOException { tsc = new IndexedChronicle(basePath, DATA_BIT_SIZE_HINT); tsc.useUnsafe(USE_UNSAFE); excerpt = tsc.createExcerpt(); excerpt.startExcerpt(100); }
@Override public void onMarketData(@Nullable MetaData metaData, @NotNull Update update) { if (metaData == null) { metaData = this.metaData; metaData.startTiming(); } excerpt.startExcerpt(1024); // a guess excerpt.writeEnum(MessageType.update); metaData.writeMarshallable(excerpt); update.writeMarshallable(excerpt); excerpt.finish(); } }
throw new StreamCorruptedException("size was " + size); excerpt.startExcerpt((int) size);
@Test public void testSerailization() throws IOException, ClassNotFoundException { final String basePath = BASE_DIR + "objects"; deleteOnExit(basePath); IndexedChronicle tsc = new IndexedChronicle(basePath); tsc.useUnsafe(false /*USE_UNSAFE*/); Excerpt excerpt = tsc.createExcerpt(); List objects = Arrays.asList(1, 1L, "one", new Date(1)); excerpt.startExcerpt(293); // a new ObjectOutputStream is required for each record as they are not reusable :( ObjectOutputStream coos = new ObjectOutputStream(excerpt.outputStream()); coos.writeObject(objects); coos.close(); excerpt.index(0); assertEquals(293, excerpt.remaining()); // a new ObjectInputStream is required for each record as they are not reusable :( ObjectInputStream cois = new ObjectInputStream(excerpt.inputStream()); List objects2 = (List) cois.readObject(); assertEquals(objects, objects2); } }
private static long timeLogToChronicle(int count) throws IOException { long start = System.nanoTime(); final String basePath = System.getProperty("java.io.tmpdir", "/tmp") + "/my.logger.log"; deleteOnExit(basePath); IntIndexedChronicle tsc = new IntIndexedChronicle(basePath); tsc.useUnsafe(USE_UNSAFE); Excerpt excerpt = tsc.createExcerpt(); double d = 0.001, factor = 1 + 10.0 / count; long timeInMS = System.currentTimeMillis() % 86400000; for (int i = 0; i < count; i++) { d *= factor; excerpt.startExcerpt(128); excerpt.appendTime(timeInMS).append(" [ "); excerpt.append(Thread.currentThread().getName()).append(" ] FINE "); excerpt.append("result= ").append(d, 6).append('\n'); excerpt.finish(); } tsc.close(); return System.nanoTime() - start; }
sb.appendCodePoint(j); excerpt.startExcerpt(2 + sb.length() * 3); excerpt.writeUTF(sb); excerpt.finish(); excerpt.startExcerpt(2 + 1); excerpt.writeUTF(null); excerpt.finish();
@Test public void testWrite_é() throws IOException { final String basePath = BASE_DIR + "text"; deleteOnExit(basePath); IndexedChronicle tsc = new IndexedChronicle(basePath); tsc.useUnsafe(USE_UNSAFE); tsc.clear(); Excerpt excerpt = tsc.createExcerpt(); excerpt.startExcerpt(4); String é = "é"; excerpt.writeUTF(é); excerpt.finish(); assertTrue(excerpt.index(0)); String e2 = excerpt.readUTF(); excerpt.finish(); assertEquals(e2, é); } }
excerpt.finish(); excerpt2.startExcerpt(8); excerpt2.writeChar('R'); excerpt2.writeInt(n);
excerpt.finish(); excerpt2.startExcerpt(8); excerpt2.writeChar('R'); excerpt2.writeInt(n);
@Override public void run() { try { final IndexedChronicle tsc = new IndexedChronicle(basePath); tsc.useUnsafe(USE_UNSAFE); final IndexedChronicle tsc2 = new IndexedChronicle(basePath2); tsc2.useUnsafe(USE_UNSAFE); tsc2.clear(); Excerpt excerpt = tsc.createExcerpt(); Excerpt excerpt2 = tsc2.createExcerpt(); for (int i = 0; i < RUNS; i++) { do { /* try again */ } while (!excerpt.index(i)); long time = excerpt.readLong(); excerpt.finish(); excerpt2.startExcerpt(8); excerpt2.writeLong(time); excerpt2.finish(); } } catch (IOException e) { e.printStackTrace(); } } });
excerpt.finish(); excerpt2.startExcerpt(6); excerpt2.writeChar('R'); excerpt2.writeInt(n);
@Override public void run() { al2.bind(); try { final IndexedChronicle tsc = new IndexedChronicle(basePath); tsc.useUnsafe(USE_UNSAFE); final IndexedChronicle tsc2 = new IndexedChronicle(basePath2); tsc2.useUnsafe(USE_UNSAFE); tsc2.clear(); Excerpt excerpt = tsc.createExcerpt(); Excerpt excerpt2 = tsc2.createExcerpt(); for (int i = 0; i < RUNS; i++) { do { busyWait(); } while (!excerpt.index(i)); long time = excerpt.readLong(); excerpt.finish(); excerpt2.startExcerpt(8); excerpt2.writeLong(time); excerpt2.finish(); } } catch (IOException e) { e.printStackTrace(); } finally { al2.release(); } } });