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

dorkbox.network.util.udt.UdtEndpointProxy Maven / Gradle / Ivy

/*
 * Copyright 2010 dorkbox, llc
 *
 * 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 dorkbox.network.util.udt;

import dorkbox.util.NamedThreadFactory;
import io.netty.bootstrap.Bootstrap;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;

/**
 * This 'proxy' class exists in order to permit the client/server/endpoint classes from barfing when loading (ie, the JVM classloader),
 * since the classloader only checks ONE level deep for deps, not TWO levels deep.
 * 

* This exploits the class loading behavior, but it nicely permits us to choose if we want to use UDT or not, without * classloading complications */ public class UdtEndpointProxy { public static EventLoopGroup getBoss(int threadPoolSize, String name, ThreadGroup nettyGroup) { return new NioEventLoopGroup(threadPoolSize, new NamedThreadFactory(name + "-boss-UDT", nettyGroup), io.netty.channel.udt.nio.NioUdtProvider.BYTE_PROVIDER); } public static EventLoopGroup getWorker(int threadPoolSize, String name, ThreadGroup nettyGroup) { return new NioEventLoopGroup(threadPoolSize, new NamedThreadFactory(name + "-worker-UDT", nettyGroup), io.netty.channel.udt.nio.NioUdtProvider.BYTE_PROVIDER); } public static void setChannelFactory(ServerBootstrap udtBootstrap) { udtBootstrap.channelFactory(io.netty.channel.udt.nio.NioUdtProvider.BYTE_ACCEPTOR); } public static void setChannelFactory(Bootstrap udtBootstrap) { udtBootstrap.channelFactory(io.netty.channel.udt.nio.NioUdtProvider.BYTE_CONNECTOR); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy