@Override public void closeAndSeal() throws IOException { out.close(); meta.sealSegment(); meta.close(); }
public SegmentIteratorImpl(SegmentInputStreamFactory factory, Segment segment, Serializer<T> deserializer, long startingOffset, long endingOffset) { this.segment = segment; this.deserializer = deserializer; this.startingOffset = startingOffset; this.endingOffset = endingOffset; input = factory.createEventReaderForSegment(segment); input.setOffset(startingOffset); }
@Override public SegmentInputStream createInputStreamForSegment(Segment segment, String delegationToken) { AsyncSegmentInputStreamImpl async = new AsyncSegmentInputStreamImpl(controller, cf, segment, delegationToken); async.getConnection(); return new SegmentInputStreamImpl(async, 0); } }
/** * Creates a new instance of the ClientFactory class. * Note: ConnectionFactory and Controller is closed when {@link ClientFactoryImpl#close()} is invoked. * * @param scope The scope string. * @param controller The reference to Controller. * @param connectionFactory The reference to Connection Factory impl. */ @VisibleForTesting public ClientFactoryImpl(String scope, Controller controller, ConnectionFactory connectionFactory) { this(scope, controller, connectionFactory, new SegmentInputStreamFactoryImpl(controller, connectionFactory), new SegmentOutputStreamFactoryImpl(controller, connectionFactory), new ConditionalOutputStreamFactoryImpl(controller, connectionFactory), new SegmentMetadataClientFactoryImpl(controller, connectionFactory)); }
@Override public SegmentOutputStream createOutputStreamForSegment(Segment segment, Consumer<Segment> segmentSealedCallback, EventWriterConfig config, String delegationToken) { SegmentOutputStreamImpl result = new SegmentOutputStreamImpl(segment.getScopedName(), controller, cf, UUID.randomUUID(), segmentSealedCallback, getRetryFromConfig(config), delegationToken); try { result.getConnection(); } catch (RetriesExhaustedException | SegmentSealedException | NoSuchSegmentException e) { log.warn("Initial connection attempt failure. Suppressing.", e); } return result; }
public ByteStreamClientImpl(String scope, Controller controller, ConnectionFactory connectionFactory) { this.scope = Preconditions.checkNotNull(scope); this.controller = Preconditions.checkNotNull(controller); this.connectionFactory = Preconditions.checkNotNull(connectionFactory); this.inputStreamFactory = new SegmentInputStreamFactoryImpl(controller, connectionFactory); this.outputStreamFactory = new SegmentOutputStreamFactoryImpl(controller, connectionFactory); this.metaStreamFactory = new SegmentMetadataClientFactoryImpl(controller, connectionFactory); }
@Override public SegmentOutputStream createOutputStreamForSegment(Segment segment, EventWriterConfig config, String delegationToken) { return new SegmentOutputStreamImpl(segment.getScopedName(), controller, cf, UUID.randomUUID(), Callbacks::doNothing, getRetryFromConfig(config), delegationToken); }
@Override public Revision fetchOldestRevision() { long startingOffset = meta.getSegmentInfo().getStartingOffset(); return new RevisionImpl(segment, startingOffset, 0); }
private Object writeReplace() throws ObjectStreamException { return new SerializedForm(getScopedName()); }
@Override public long fetchTailOffset() { return meta.fetchCurrentSegmentLength(); }
@Override public EventSegmentReader createEventReaderForSegment(Segment segment) { return createEventReaderForSegment(segment, SegmentInputStreamImpl.DEFAULT_BUFFER_SIZE); }
@Override public boolean hasNext() { return input.getOffset() < endingOffset; }
@Override public void close() { input.close(); }
@VisibleForTesting static EventSegmentReaderImpl getEventSegmentReader(AsyncSegmentInputStream async, long startOffset, long endOffset, int bufferSize) { return new EventSegmentReaderImpl(new SegmentInputStreamImpl(async, startOffset, endOffset, bufferSize)); }
@Override public String getSegmentName() { return segment.getScopedName(); }
private boolean transformDataAppended(Reply reply) { if (reply instanceof DataAppended) { return true; } else if (reply instanceof ConditionalCheckFailed) { return false; } else { throw handelUnexpectedReply(reply); } }
@Override public SegmentOutputStream createOutputStreamForTransaction(Segment segment, UUID txId, EventWriterConfig config, String delegationToken) { return new SegmentOutputStreamImpl(StreamSegmentNameUtils.getTransactionNameFromId(segment.getScopedName(), txId), controller, cf, UUID.randomUUID(), nopSegmentSealedCallback, getRetryFromConfig(config), delegationToken); }
private AppendSetup transformAppendSetup(Reply reply) { if (reply instanceof AppendSetup) { return (AppendSetup) reply; } else { throw handelUnexpectedReply(reply); } }