Search in sources :

Example 1 with Status

use of io.pravega.client.stream.Transaction.Status in project pravega by pravega.

the class EventStreamWriterImpl method getTxn.

@Override
public Transaction<Type> getTxn(UUID txId) {
    StreamSegments segments = getAndHandleExceptions(controller.getCurrentSegments(stream.getScope(), stream.getStreamName()), RuntimeException::new);
    Status status = getAndHandleExceptions(controller.checkTransactionStatus(stream, txId), RuntimeException::new);
    if (status != Status.OPEN) {
        return new TransactionImpl<>(txId, controller, stream);
    }
    Map<Segment, SegmentTransaction<Type>> transactions = new HashMap<>();
    for (Segment s : segments.getSegments()) {
        SegmentOutputStream out = outputStreamFactory.createOutputStreamForTransaction(s, txId, segmentSealedCallBack, config, segments.getDelegationToken());
        SegmentTransactionImpl<Type> impl = new SegmentTransactionImpl<>(txId, out, serializer);
        transactions.put(s, impl);
    }
    return new TransactionImpl<Type>(txId, transactions, segments, controller, stream, pinger);
}
Also used : Status(io.pravega.client.stream.Transaction.Status) HashMap(java.util.HashMap) SegmentOutputStream(io.pravega.client.segment.impl.SegmentOutputStream) Segment(io.pravega.client.segment.impl.Segment)

Aggregations

Segment (io.pravega.client.segment.impl.Segment)1 SegmentOutputStream (io.pravega.client.segment.impl.SegmentOutputStream)1 Status (io.pravega.client.stream.Transaction.Status)1 HashMap (java.util.HashMap)1