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

io.kroxylicious.proxy.internal.net.NetworkBindingOperationProcessor Maven / Gradle / Ivy

/*
 * Copyright Kroxylicious Authors.
 *
 * Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
 */

package io.kroxylicious.proxy.internal.net;

import io.netty.bootstrap.ServerBootstrap;

/**
 * Processes {@link NetworkBindingOperation}s on a suitable {@link ServerBootstrap}.  Once the
 * operation is complete, the processor will complete the {@link NetworkBindingOperation#getFuture()}.
 */
public interface NetworkBindingOperationProcessor extends AutoCloseable {

    /**
     * Starts the processor running.
     *
     * @param plain plain bootstrap
     * @param tls tls bootstrap
     */
    void start(ServerBootstrap plain, ServerBootstrap tls);

    /**
     * Enqueues a network binding operation. Once the operation is complete the processor
     * will complete the {@link NetworkBindingOperation#getFuture()}.
     *
     * @param o operation to be performed.
     */
    void enqueueNetworkBindingEvent(NetworkBindingOperation o);

    /**
     * Closes the processor.
     */
    void close();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy