View Javadoc
1   /*
2    * Copyright 2024 The Netty Project
3    *
4    * The Netty Project licenses this file to you under the Apache License,
5    * version 2.0 (the "License"); you may not use this file except in compliance
6    * with the License. You may obtain a copy of the License at:
7    *
8    *   https://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13   * License for the specific language governing permissions and limitations
14   * under the License.
15   */
16  package io.netty.channel;
17  
18  import io.netty.util.concurrent.Future;
19  
20  /**
21   * {@link EventLoopGroup} for {@link IoEventLoop}s.
22   */
23  public interface IoEventLoopGroup extends EventLoopGroup {
24  
25      @Override
26      IoEventLoop next();
27  
28      /**
29       * @deprecated Use {@link #register(IoHandle)}
30       */
31      @Deprecated
32      @Override
33      default ChannelFuture register(Channel channel) {
34          return next().register(channel);
35      }
36  
37      /**
38       * @deprecated Use {@link #register(IoHandle)}
39       */
40      @Deprecated
41      @Override
42     default ChannelFuture register(ChannelPromise promise) {
43          return next().register(promise);
44      }
45  
46      /**
47       * Register the {@link IoHandle} to the {@link EventLoop} for I/O processing.
48       *
49       * @param handle        the {@link IoHandle} to register.
50       * @return              the {@link Future} that is notified once the operations completes.
51       */
52      default Future<IoRegistration> register(IoHandle handle) {
53          return next().register(handle);
54      }
55  
56      /**
57       * Returns {@code true} if the given type is compatible with this {@link IoEventLoopGroup} and so can be registered
58       * to the contained {@link IoEventLoop}s, {@code false} otherwise.
59       *
60       * @param handleType    the type of the {@link IoHandle}.
61       * @return              if compatible of not.
62       */
63      default boolean isCompatible(Class<? extends IoHandle> handleType) {
64          return next().isCompatible(handleType);
65      }
66  
67      /**
68       * Returns {@code true} if the given {@link IoHandler} type is used by this {@link IoEventLoopGroup},
69       * {@code false} otherwise.
70       *
71       * @param handlerType the type of the {@link IoHandler}.
72       * @return            if used or not.
73       */
74      default boolean isIoType(Class<? extends IoHandler> handlerType) {
75          return next().isIoType(handlerType);
76      }
77  }