@Override public void clear() { ExcerptAppender writeExcerpt = getExcerpt(16, clear); writeExcerpt.finish(); }
@SuppressWarnings("unchecked") protected void writeRemove(Object key) { ExcerptAppender excerpt = getExcerpt(messageSizeHint, remove); writeKey(excerpt, (K) key); excerpt.finish(); }
protected void writePut(K key, V previous, V value) { ExcerptAppender excerpt = getExcerpt(messageSizeHint, put); writeKey(excerpt, key); writeValue(excerpt, value); excerpt.finish(); }
protected void writePutAll(Map<? extends K, ? extends V> m) { ExcerptAppender excerpt = getExcerpt(m.size() * messageSizeHint, putAll); long pos = excerpt.position(); excerpt.writeInt(0); // place holder for the actual size. int count = 0; for (Map.Entry<? extends K, ? extends V> entry : m.entrySet()) { K key = entry.getKey(); V value = entry.getValue(); V previous = localCache.put(key, value); if (sameOrNotEqual(previous, value)) { writeKey(excerpt, key); writeValue(excerpt, value); count++; } } excerpt.writeInt(pos, count); excerpt.finish(); }
@Override public Long offer(@Nonnull T t) { synchronized (monitor) { Buffer buff = codec.apply(t); int len = buff.remaining(); exAppender.startExcerpt(4 + len); exAppender.writeInt(len); exAppender.write(buff.byteBuffer()); exAppender.finish(); size.incrementAndGet(); lastId.set(exAppender.lastWrittenIndex()); } if (LOG.isTraceEnabled()) { LOG.trace("Offered {} to Chronicle at index {}, size {}", t, lastId(), size()); } return lastId(); }
@Override public Long offerAll(@Nonnull Collection<T> t) { if(t.isEmpty()){ return lastId(); } Function<T, Buffer> encoder = codec; int elasticity = 16; Buffer buff; synchronized (monitor) { long count = 0l; for(T v : t) { buff = encoder.apply(v); int len = buff.remaining(); if(count++ == 0){ exAppender.startExcerpt(4 + elasticity*t.size()*len); } exAppender.writeInt(len); exAppender.write(buff.byteBuffer()); size.incrementAndGet(); } lastId.set(exAppender.lastWrittenIndex()); exAppender.finish(); } if (LOG.isTraceEnabled()) { LOG.trace("Offered {} to Chronicle at index {}, size {}", t, lastId(), size()); } return lastId(); }
@Override public void clear() { ExcerptAppender writeExcerpt = getExcerpt(16, clear); writeExcerpt.finish(); }
public final void appendMessage( final String message ) { try { ExcerptAppender writer = chronicle.createAppender(); writer.startExcerpt( STRING_SIZE_OVERHEAD + message.length() ); writer.append( message ); writer.finish(); } catch( Exception e ) { LOGGER.warn("Failed to persist Message [{}]", message ); LOGGER.warn("Exception: ", e ); } }
@SuppressWarnings("unchecked") protected void writeRemove(Object key) { ExcerptAppender excerpt = getExcerpt(messageSizeHint, remove); writeKey(excerpt, (K) key); excerpt.finish(); }
protected void writePut(K key, V previous, V value) { ExcerptAppender excerpt = getExcerpt(messageSizeHint, put); writeKey(excerpt, key); writeValue(excerpt, value); excerpt.finish(); }
protected void writePutAll(Map<? extends K, ? extends V> m) { ExcerptAppender excerpt = getExcerpt(m.size() * messageSizeHint, putAll); long pos = excerpt.position(); excerpt.writeInt(0); // place holder for the actual size. int count = 0; for (Map.Entry<? extends K, ? extends V> entry : m.entrySet()) { K key = entry.getKey(); V value = entry.getValue(); V previous = localCache.put(key, value); if (sameOrNotEqual(previous, value)) { writeKey(excerpt, key); writeValue(excerpt, value); count++; } } excerpt.writeInt(pos, count); excerpt.finish(); }
writer.startExcerpt( length ); writer.append( message ); writer.finish();
@Override public void small(MetaData ignored, @NotNull SmallCommand command) { excerpt.startExcerpt(); excerpt.writeEnum(MessageType.small); MetaData.writeForGateway(excerpt); command.writeMarshallable(excerpt); excerpt.finish(); } }
@Override protected boolean onSubmit(final SelectionKey key, long size, boolean ack) throws IOException { readUpTo((int) size); appender.startExcerpt((int) size); appender.write(readBuffer); appender.finish(); pauser.unpause(); if (ack) { sendSizeAndIndex(ChronicleTcp.ACK_LEN, appender.lastWrittenIndex()); } return true; }
@Override public void report(@NotNull MetaData metaData, @NotNull SmallReport smallReport) { excerpt.startExcerpt(); excerpt.writeEnum(MessageType.report); metaData.writeForEngine(excerpt); smallReport.writeMarshallable(excerpt); excerpt.finish(); } }
/** * @see com.ottogroup.bi.spqr.pipeline.queue.StreamingMessageQueueProducer#insert(com.ottogroup.bi.spqr.pipeline.message.StreamingDataMessage) */ public boolean insert(StreamingDataMessage message) { // TODO add concurrency handler to support multiple writers properly if(message != null) { synchronized (queueProducer) { queueProducer.startExcerpt(); queueProducer.writeLong(message.getTimestamp()); queueProducer.writeInt(message.getBody().length); queueProducer.write(message.getBody()); queueProducer.finish(); if(this.messageInsertionCounter != null) this.messageInsertionCounter.inc(); return true; } } return false; }
app.startExcerpt(); app.writeObject(new MessageKey("type", 123L)); app.finish();
Log write(AppenderHolder holder) { long time = getTimestamp(); long index = holder.getAppenderIndex(time); ExcerptAppender appender = holder.getAppender(time); appender.startExcerpt(getLength()); appender.writeLong(time); appender.write(RESERVED_META); appender.writeInt(content.length); appender.write(content); appender.finish(); this.index = index; return this; }
Log write(Encodable e, AppenderHolder holder) { long time = getTimestamp(); long index = holder.getAppenderIndex(time); ExcerptAppender appender = holder.getAppender(time); int contentLength = e.getTotalSize(); int logLength = 8 + 8 + 4 + contentLength; appender.startExcerpt(logLength); appender.writeLong(time); appender.write(RESERVED_META); appender.writeInt(contentLength); e.writeTo(new DirectBuffer(appender.address() + 8 + 8 + 4, contentLength), 0); appender.position(logLength); appender.finish(); this.index = index; return this; }