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

com.microsoft.azure.servicebus.MessageSession Maven / Gradle / Ivy

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

package com.microsoft.azure.servicebus;

import java.net.URI;
import java.time.Instant;
import java.util.concurrent.CompletableFuture;

import com.microsoft.azure.servicebus.primitives.MessagingEntityType;
import com.microsoft.azure.servicebus.primitives.MessagingFactory;
import com.microsoft.azure.servicebus.primitives.ServiceBusException;

public class MessageSession extends MessageReceiver implements IMessageSession {
    private String requestedSessionId;
    
    MessageSession(URI namespaceEndpointURI, String entityPath, MessagingEntityType entityType, String requestedSessionId, ClientSettings clientSettings, ReceiveMode receiveMode) {
        super(namespaceEndpointURI, entityPath, entityType, clientSettings, receiveMode);
        this.requestedSessionId = requestedSessionId;
    }

    MessageSession(MessagingFactory messagingFactory, String entityPath, MessagingEntityType entityType, String requestedSessionId, ReceiveMode receiveMode) {
        super(messagingFactory, entityPath, entityType, receiveMode);
        this.requestedSessionId = requestedSessionId;
    }

    @Override
    protected final boolean isSessionReceiver() {
        return true;
    }

    @Override
    protected boolean isBrowsableSession() {
        return false;
    }

    @Override
    protected String getRequestedSessionId() {
        return this.requestedSessionId;
    }

    @Override
    public Instant getLockedUntilUtc() {
        return this.getInternalReceiver().getSessionLockedUntilUtc();
    }

    @Override
    public void renewSessionLock() throws InterruptedException, ServiceBusException {
        Utils.completeFuture(this.renewSessionLockAsync());
    }

    @Override
    public CompletableFuture renewSessionLockAsync() {
        return this.getInternalReceiver().renewSessionLocksAsync();
    }

    @Override
    public void setState(byte[] sessionState) throws InterruptedException, ServiceBusException {
        Utils.completeFuture(this.setStateAsync(sessionState));
    }

    @Override
    public CompletableFuture setStateAsync(byte[] sessionState) {
        return this.getInternalReceiver().setSessionStateAsync(sessionState);
    }

    @Override
    public byte[] getState() throws InterruptedException, ServiceBusException {
        return Utils.completeFuture(this.getStateAsync());
    }

    @Override
    public CompletableFuture getStateAsync() {
        return this.getInternalReceiver().getSessionStateAsync();
    }

    @Override
    public String getSessionId() {
        return this.getInternalReceiver().getSessionId();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy