Class Bootstrap

    • Field Detail

      • options

        private volatile java.util.Map<java.lang.String,​java.lang.Object> options
      • ORDER_TEST_SAMPLES

        private static final short[] ORDER_TEST_SAMPLES
    • Method Detail

      • getFactory

        public ChannelFactory getFactory()
        Returns the ChannelFactory that will be used to perform an I/O operation.
        Throws:
        java.lang.IllegalStateException - if the factory is not set for this bootstrap yet. The factory can be set in the constructor or setFactory(ChannelFactory).
      • setFactory

        public void setFactory​(ChannelFactory factory)
        Sets the ChannelFactory that will be used to perform an I/O operation. This method can be called only once and can't be called at all if the factory was specified in the constructor.
        Throws:
        java.lang.IllegalStateException - if the factory is already set
      • getPipeline

        public ChannelPipeline getPipeline()
        Returns the default ChannelPipeline which is cloned when a new Channel is created. Bootstrap creates a new pipeline which has the same entries with the returned pipeline for a new Channel.

        Please note that this method is a convenience method that works only when 1) you create only one channel from this bootstrap (e.g. one-time client-side or connectionless channel) or 2) all handlers in the pipeline is stateless. You have to use setPipelineFactory(ChannelPipelineFactory) if 1) your pipeline contains a stateful ChannelHandler and 2) one or more channels are going to be created by this bootstrap (e.g. server-side channels).

        Returns:
        the default ChannelPipeline
        Throws:
        java.lang.IllegalStateException - if setPipelineFactory(ChannelPipelineFactory) was called by a user last time.
      • setPipeline

        public void setPipeline​(ChannelPipeline pipeline)
        Sets the default ChannelPipeline which is cloned when a new Channel is created. Bootstrap creates a new pipeline which has the same entries with the specified pipeline for a new channel.

        Calling this method also sets the pipelineFactory property to an internal ChannelPipelineFactory implementation which returns a shallow copy of the specified pipeline.

        Please note that this method is a convenience method that works only when 1) you create only one channel from this bootstrap (e.g. one-time client-side or connectionless channel) or 2) all handlers in the pipeline is stateless. You have to use setPipelineFactory(ChannelPipelineFactory) if 1) your pipeline contains a stateful ChannelHandler and 2) one or more channels are going to be created by this bootstrap (e.g. server-side channels).

      • getPipelineAsMap

        public java.util.Map<java.lang.String,​ChannelHandler> getPipelineAsMap()
        Dependency injection friendly convenience method for getPipeline() which returns the default pipeline of this bootstrap as an ordered map.

        Please note that this method is a convenience method that works only when 1) you create only one channel from this bootstrap (e.g. one-time client-side or connectionless channel) or 2) all handlers in the pipeline is stateless. You have to use setPipelineFactory(ChannelPipelineFactory) if 1) your pipeline contains a stateful ChannelHandler and 2) one or more channels are going to be created by this bootstrap (e.g. server-side channels).

        Throws:
        java.lang.IllegalStateException - if setPipelineFactory(ChannelPipelineFactory) was called by a user last time.
      • setPipelineAsMap

        public void setPipelineAsMap​(java.util.Map<java.lang.String,​ChannelHandler> pipelineMap)
        Dependency injection friendly convenience method for setPipeline(ChannelPipeline) which sets the default pipeline of this bootstrap from an ordered map.

        Please note that this method is a convenience method that works only when 1) you create only one channel from this bootstrap (e.g. one-time client-side or connectionless channel) or 2) all handlers in the pipeline is stateless. You have to use setPipelineFactory(ChannelPipelineFactory) if 1) your pipeline contains a stateful ChannelHandler and 2) one or more channels are going to be created by this bootstrap (e.g. server-side channels).

        Throws:
        java.lang.IllegalArgumentException - if the specified map is not an ordered map
      • getOptions

        public java.util.Map<java.lang.String,​java.lang.Object> getOptions()
        Returns the options which configures a new Channel and its child Channels. The names of the child Channel options are prepended with "child." (e.g. "child.keepAlive").
      • setOptions

        public void setOptions​(java.util.Map<java.lang.String,​java.lang.Object> options)
        Sets the options which configures a new Channel and its child Channels. To set the options of a child Channel, prepend "child." to the option name (e.g. "child.keepAlive").
      • getOption

        public java.lang.Object getOption​(java.lang.String key)
        Returns the value of the option with the specified key. To retrieve the option value of a child Channel, prepend "child." to the option name (e.g. "child.keepAlive").
        Parameters:
        key - the option name
        Returns:
        the option value if the option is found. null otherwise.
      • setOption

        public void setOption​(java.lang.String key,
                              java.lang.Object value)
        Sets an option with the specified key and value. If there's already an option with the same key, it is replaced with the new value. If the specified value is null, an existing option with the specified key is removed. To set the option value of a child Channel, prepend "child." to the option name (e.g. "child.keepAlive").
        Parameters:
        key - the option name
        value - the option value
      • isOrderedMap

        static boolean isOrderedMap​(java.util.Map<?,​?> map)
        Returns true if and only if the specified map is an ordered map, like LinkedHashMap is.