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

com.azure.cosmos.implementation.changefeed.CancellationTokenSource Maven / Gradle / Ivy

Go to download

This Package contains Microsoft Azure Cosmos SDK (with Reactive Extension Reactor support) for Azure Cosmos DB SQL API

There is a newer version: 4.61.1
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.cosmos.implementation.changefeed;

import java.io.Closeable;
import java.io.IOException;

/**
 * Signals to a {@link CancellationToken} that it should be canceled..
 */
public class CancellationTokenSource implements Closeable {

    private volatile boolean tokenSourceClosed;
    private volatile boolean cancellationRequested;

    public CancellationTokenSource() {
        this.tokenSourceClosed = false;
        this.cancellationRequested = false;
    }

    public synchronized boolean isCancellationRequested() {
        if (tokenSourceClosed) {
            throw new IllegalStateException("Object already closed");
        }

        return this.cancellationRequested;
    }

    public CancellationToken getToken() {
        return new CancellationToken(this);
    }

    public synchronized void cancel() {
        this.cancellationRequested = true;
    }

    @Override
    public synchronized void close() throws IOException {
        if (tokenSourceClosed) return;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy