All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.eventhubs.impl.ReplayableWorkItem Maven / Gradle / Ivy

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.azure.eventhubs.impl;

import java.time.Duration;
import java.util.concurrent.CompletableFuture;

public class ReplayableWorkItem extends WorkItem {
    private byte[] amqpMessage;
    private int messageFormat;
    private int encodedMessageSize;
    private boolean waitingForAck;

    private Exception lastKnownException;
    private CompletableFuture timeoutTask;

    public ReplayableWorkItem(final byte[] amqpMessage, final int encodedMessageSize, final int messageFormat, final CompletableFuture completableFuture, final Duration timeout) {
        super(completableFuture, timeout);
        this.initialize(amqpMessage, encodedMessageSize, messageFormat);
    }

    public ReplayableWorkItem(final byte[] amqpMessage, final int encodedMessageSize, final int messageFormat, final CompletableFuture completableFuture, final TimeoutTracker timeout) {
        super(completableFuture, timeout);
        this.initialize(amqpMessage, encodedMessageSize, messageFormat);
    }

    private void initialize(final byte[] amqpMessage, final int encodedMessageSize, final int messageFormat) {
        this.amqpMessage = amqpMessage;
        this.messageFormat = messageFormat;
        this.encodedMessageSize = encodedMessageSize;
    }

    public byte[] getMessage() {
        return this.amqpMessage;
    }

    public void clearMessage() {
        this.amqpMessage = null;
    }

    public int getEncodedMessageSize() {
        return this.encodedMessageSize;
    }

    public int getMessageFormat() {
        return this.messageFormat;
    }

    public Exception getLastKnownException() {
        return this.lastKnownException;
    }

    public void setLastKnownException(Exception exception) {
        this.lastKnownException = exception;
    }

    public CompletableFuture getTimeoutTask() {
        return this.timeoutTask;
    }

    public void setTimeoutTask(final CompletableFuture timeoutTask) {
        this.timeoutTask = timeoutTask;
    }

    public void setWaitingForAck() {
        this.waitingForAck = true;
    }

    public boolean isWaitingForAck() {
        return this.waitingForAck;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy