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

io.atomix.catalyst.transport.Server Maven / Gradle / Ivy

There is a newer version: 1.2.1
Show newest version
/*
 * Copyright 2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.atomix.catalyst.transport;

import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;

/**
 * Transport server.
 * 

* This is a low-level abstraction through which Catalyst servers receive connections from clients. Users should never use * this API directly. * * @author Jordan Halterman */ public interface Server { /** * Listens for connections on the server. *

* Once the server has started listening on the provided {@code address}, {@link Consumer#accept(Object)} will be * called for the provided {@link Consumer} each time a new connection to the server is established. *

* Once the server has bound to the provided {@link java.net.InetSocketAddress address} the returned * {@link java.util.concurrent.CompletableFuture} will be completed. * * @param address The address on which to listen for connections. * @return A completable future to be called once the server has started listening for connections. * @throws NullPointerException if {@code address} or {@code listener} are null */ CompletableFuture listen(Address address, Consumer listener); /** * Closes the server. *

* When the server is closed, any {@link Connection#closeListener(Consumer) close listeners} registered * on the server's {@link Connection}s will be invoked prior to shutdown. * * @return A completable future to be completed once the server is closed. */ CompletableFuture close(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy