* Fixed a problem Channel.bind/connect allows null parameter
* More JavaDoc
This commit is contained in:
parent
c344058a6f
commit
d1be3feefc
@ -22,6 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -113,24 +114,27 @@ public interface Channel {
|
|||||||
ChannelPipeline getPipeline();
|
ChannelPipeline getPipeline();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return {@code true} if and only if this channel is open.
|
* Returns {@code true} if and only if this channel is open.
|
||||||
*/
|
*/
|
||||||
boolean isOpen();
|
boolean isOpen();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return {@code true} if and only if this channel is bound to a
|
* Returns {@code true} if and only if this channel is bound to a
|
||||||
* {@linkplain #getLocalAddress() local address}.
|
* {@linkplain #getLocalAddress() local address}.
|
||||||
*/
|
*/
|
||||||
boolean isBound();
|
boolean isBound();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return {@code true} if and only if this channel is connected to a
|
* Returns {@code true} if and only if this channel is connected to a
|
||||||
* {@linkplain #getRemoteAddress() remote address}.
|
* {@linkplain #getRemoteAddress() remote address}.
|
||||||
*/
|
*/
|
||||||
boolean isConnected();
|
boolean isConnected();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the local address where this channel is bound to.
|
* Returns the local address where this channel is bound to. The returned
|
||||||
|
* {@link SocketAddress} is supposed to be down-cast into more concrete
|
||||||
|
* type such as {@link InetSocketAddress} to retrieve the detailed
|
||||||
|
* information.
|
||||||
*
|
*
|
||||||
* @return the local address of this channel.
|
* @return the local address of this channel.
|
||||||
* {@code null} if this channel is not bound.
|
* {@code null} if this channel is not bound.
|
||||||
@ -138,7 +142,10 @@ public interface Channel {
|
|||||||
SocketAddress getLocalAddress();
|
SocketAddress getLocalAddress();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the remote address where this channel is connected to.
|
* Returns the remote address where this channel is connected to. The
|
||||||
|
* returned {@link SocketAddress} is supposed to be down-cast into more
|
||||||
|
* concrete type such as {@link InetSocketAddress} to retrieve the detailed
|
||||||
|
* information.
|
||||||
*
|
*
|
||||||
* @return the remote address of this channel.
|
* @return the remote address of this channel.
|
||||||
* {@code null} if this channel is not connected.
|
* {@code null} if this channel is not connected.
|
||||||
@ -152,6 +159,8 @@ public interface Channel {
|
|||||||
*
|
*
|
||||||
* @return the {@link ChannelFuture} which will be notified when the
|
* @return the {@link ChannelFuture} which will be notified when the
|
||||||
* write request succeeds or fails
|
* write request succeeds or fails
|
||||||
|
*
|
||||||
|
* @throws NullPointerException if the specified message is {@code null}
|
||||||
*/
|
*/
|
||||||
ChannelFuture write(Object message);
|
ChannelFuture write(Object message);
|
||||||
|
|
||||||
@ -161,10 +170,14 @@ public interface Channel {
|
|||||||
* message instead of this channel's current remote address.
|
* message instead of this channel's current remote address.
|
||||||
*
|
*
|
||||||
* @param message the message to write
|
* @param message the message to write
|
||||||
* @param remoteAddress where to send the specified message
|
* @param remoteAddress where to send the specified message.
|
||||||
|
* This method is identical to {@link #write(Object)}
|
||||||
|
* if {@code null} is specified here.
|
||||||
*
|
*
|
||||||
* @return the {@link ChannelFuture} which will be notified when the
|
* @return the {@link ChannelFuture} which will be notified when the
|
||||||
* write request succeeds or fails
|
* write request succeeds or fails
|
||||||
|
*
|
||||||
|
* @throws NullPointerException if the specified message is {@code null}
|
||||||
*/
|
*/
|
||||||
ChannelFuture write(Object message, SocketAddress remoteAddress);
|
ChannelFuture write(Object message, SocketAddress remoteAddress);
|
||||||
|
|
||||||
@ -175,6 +188,8 @@ public interface Channel {
|
|||||||
*
|
*
|
||||||
* @return the {@link ChannelFuture} which will be notified when the
|
* @return the {@link ChannelFuture} which will be notified when the
|
||||||
* bind request succeeds or fails
|
* bind request succeeds or fails
|
||||||
|
*
|
||||||
|
* @throws NullPointerException if the specified address is {@code null}
|
||||||
*/
|
*/
|
||||||
ChannelFuture bind(SocketAddress localAddress);
|
ChannelFuture bind(SocketAddress localAddress);
|
||||||
|
|
||||||
@ -185,6 +200,8 @@ public interface Channel {
|
|||||||
*
|
*
|
||||||
* @return the {@link ChannelFuture} which will be notified when the
|
* @return the {@link ChannelFuture} which will be notified when the
|
||||||
* connection request succeeds or fails
|
* connection request succeeds or fails
|
||||||
|
*
|
||||||
|
* @throws NullPointerException if the specified address is {@code null}
|
||||||
*/
|
*/
|
||||||
ChannelFuture connect(SocketAddress remoteAddress);
|
ChannelFuture connect(SocketAddress remoteAddress);
|
||||||
|
|
||||||
|
@ -23,6 +23,12 @@
|
|||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* An I/O event or I/O request associated with a {@link Channel}.
|
||||||
|
* <p>
|
||||||
|
* A {@link ChannelEvent} is supposed to be handled by the
|
||||||
|
* {@link ChannelPipeline} which is owned by the {@link Channel} that
|
||||||
|
* the event belongs to. Once an event is sent to a {@link ChannelPipeline},
|
||||||
|
* it is handled by a list of {@link ChannelHandler}s.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -33,6 +39,18 @@ package org.jboss.netty.channel;
|
|||||||
* @apiviz.composedOf org.jboss.netty.channel.ChannelFuture
|
* @apiviz.composedOf org.jboss.netty.channel.ChannelFuture
|
||||||
*/
|
*/
|
||||||
public interface ChannelEvent {
|
public interface ChannelEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link Channel} which is associated with this event.
|
||||||
|
*/
|
||||||
Channel getChannel();
|
Channel getChannel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelFuture} which is associated with this event.
|
||||||
|
* If this event is a upstream event, this method will always return a
|
||||||
|
* {@link SucceededChannelFuture} because the event has occurred already.
|
||||||
|
* If this event is a downstream event (i.e. I/O request), the returned
|
||||||
|
* future will be notified when the I/O request succeeds or fails.
|
||||||
|
*/
|
||||||
ChannelFuture getFuture();
|
ChannelFuture getFuture();
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* A {@link RuntimeException} which is thrown when an I/O operation fails.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -35,18 +36,30 @@ public class ChannelException extends RuntimeException {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 2908618315971075004L;
|
private static final long serialVersionUID = 2908618315971075004L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new exception.
|
||||||
|
*/
|
||||||
public ChannelException() {
|
public ChannelException() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new exception.
|
||||||
|
*/
|
||||||
public ChannelException(String message, Throwable cause) {
|
public ChannelException(String message, Throwable cause) {
|
||||||
super(message, cause);
|
super(message, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new exception.
|
||||||
|
*/
|
||||||
public ChannelException(String message) {
|
public ChannelException(String message) {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new exception.
|
||||||
|
*/
|
||||||
public ChannelException(Throwable cause) {
|
public ChannelException(Throwable cause) {
|
||||||
super(cause);
|
super(cause);
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
|
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Creates a new {@link Channel}.
|
||||||
|
* <p>
|
||||||
|
* {@link ChannelFactory} is the central interface of a transport
|
||||||
|
* implementation. It creates a {@link Channel} which is associated with a
|
||||||
|
* specific communication entity such as a network socket, depending on its
|
||||||
|
* implementation. For example, the {@link NioServerSocketChannelFactory}
|
||||||
|
* creates a channel which has a NIO-based server socket as its underlying
|
||||||
|
* communication entity.
|
||||||
|
* <p>
|
||||||
|
* Once a new {@link Channel} is created, the {@link ChannelPipeline} which
|
||||||
|
* was specified as a parameter in the {@link #newChannel(ChannelPipeline)}
|
||||||
|
* is attached to the new {@link Channel}, and starts to handle all
|
||||||
|
* {@link ChannelEvent}s associated with the new {@link Channel}.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -34,5 +49,17 @@ package org.jboss.netty.channel;
|
|||||||
* @apiviz.has org.jboss.netty.channel.Channel oneway - - creates
|
* @apiviz.has org.jboss.netty.channel.Channel oneway - - creates
|
||||||
*/
|
*/
|
||||||
public interface ChannelFactory {
|
public interface ChannelFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates and opens a new {@link Channel} and attaches it to the
|
||||||
|
* specified {@link ChannelPipeline}.
|
||||||
|
*
|
||||||
|
* @param pipeline the {@link ChannelPipeline} which is going to be
|
||||||
|
* attached to the new {@link Channel}
|
||||||
|
*
|
||||||
|
* @return the newly open channel
|
||||||
|
*
|
||||||
|
* @throws ChannelException if failed to create and open a new channel
|
||||||
|
*/
|
||||||
Channel newChannel(ChannelPipeline pipeline);
|
Channel newChannel(ChannelPipeline pipeline);
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* The context of a {@link ChannelHandler} which enables the interaction with
|
||||||
|
* its {@link ChannelPipeline}.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -33,13 +34,46 @@ package org.jboss.netty.channel;
|
|||||||
* @apiviz.owns org.jboss.netty.channel.ChannelHandler
|
* @apiviz.owns org.jboss.netty.channel.ChannelHandler
|
||||||
*/
|
*/
|
||||||
public interface ChannelHandlerContext {
|
public interface ChannelHandlerContext {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelPipeline} that the {@link ChannelHandler}
|
||||||
|
* belongs to.
|
||||||
|
*/
|
||||||
ChannelPipeline getPipeline();
|
ChannelPipeline getPipeline();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the {@link ChannelHandler} in the
|
||||||
|
* {@link ChannelPipeline}.
|
||||||
|
*/
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelHandler} that this context object is
|
||||||
|
* serving.
|
||||||
|
*/
|
||||||
ChannelHandler getHandler();
|
ChannelHandler getHandler();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@code true} if and only if the {@link ChannelHandler} is an
|
||||||
|
* instance of {@link ChannelUpstreamHandler}.
|
||||||
|
*/
|
||||||
boolean canHandleUpstream();
|
boolean canHandleUpstream();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@code true} if and only if the {@link ChannelHandler} is an
|
||||||
|
* instance of {@link ChannelDownstreamHandler}.
|
||||||
|
*/
|
||||||
boolean canHandleDownstream();
|
boolean canHandleDownstream();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends the specified {@link ChannelEvent} to the next handler in the
|
||||||
|
* {@link ChannelPipeline}.
|
||||||
|
*/
|
||||||
void sendUpstream(ChannelEvent e);
|
void sendUpstream(ChannelEvent e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends the specified {@link ChannelEvent} to the previous handler in the
|
||||||
|
* {@link ChannelPipeline}.
|
||||||
|
*/
|
||||||
void sendDownstream(ChannelEvent e);
|
void sendDownstream(ChannelEvent e);
|
||||||
}
|
}
|
@ -125,37 +125,176 @@ import org.jboss.netty.handler.ssl.SslHandler;
|
|||||||
* @apiviz.uses org.jboss.netty.channel.ChannelSink - - sends events downstream
|
* @apiviz.uses org.jboss.netty.channel.ChannelSink - - sends events downstream
|
||||||
*/
|
*/
|
||||||
public interface ChannelPipeline {
|
public interface ChannelPipeline {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts a {@link ChannelHandler} at the first position of this pipeline.
|
||||||
|
*
|
||||||
|
* @param name the name of the handler to insert first
|
||||||
|
* @param handler the handler to insert first
|
||||||
|
*/
|
||||||
void addFirst (String name, ChannelHandler handler);
|
void addFirst (String name, ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Appends a {@link ChannelHandler} at the last position of this pipeline.
|
||||||
|
*
|
||||||
|
* @param name the name of the handler to append
|
||||||
|
* @param handler the handler to append
|
||||||
|
*/
|
||||||
void addLast (String name, ChannelHandler handler);
|
void addLast (String name, ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts a {@link ChannelHandler} before an existing handler of this
|
||||||
|
* pipeline.
|
||||||
|
*
|
||||||
|
* @param baseName the name of the existing handler
|
||||||
|
* @param name the name of the handler to insert before
|
||||||
|
* @param handler the handler to insert before
|
||||||
|
*/
|
||||||
void addBefore(String baseName, String name, ChannelHandler handler);
|
void addBefore(String baseName, String name, ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts a {@link ChannelHandler} after an existing handler of this
|
||||||
|
* pipeline.
|
||||||
|
*
|
||||||
|
* @param baseName the name of the existing handler
|
||||||
|
* @param name the name of the handler to insert after
|
||||||
|
* @param handler the handler to insert after
|
||||||
|
*/
|
||||||
void addAfter (String baseName, String name, ChannelHandler handler);
|
void addAfter (String baseName, String name, ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the specified {@link ChannelHandler} from this pipeline.
|
||||||
|
*/
|
||||||
void remove(ChannelHandler handler);
|
void remove(ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the {@link ChannelHandler} with the specified name from this
|
||||||
|
* pipeline.
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
ChannelHandler remove(String name);
|
ChannelHandler remove(String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the {@link ChannelHandler} of the specified type from this
|
||||||
|
* pipeline
|
||||||
|
*
|
||||||
|
* @param <T> the type of the handler
|
||||||
|
* @param handlerType the type of the handler
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
<T extends ChannelHandler> T remove(Class<T> handlerType);
|
<T extends ChannelHandler> T remove(Class<T> handlerType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the first {@link ChannelHandler} in this pipeline.
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
ChannelHandler removeFirst();
|
ChannelHandler removeFirst();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the last {@link ChannelHandler} in this pipeline.
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
ChannelHandler removeLast();
|
ChannelHandler removeLast();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces the specified {@link ChannelHandler} with a new handler in
|
||||||
|
* this pipeline.
|
||||||
|
*/
|
||||||
void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler);
|
void replace(ChannelHandler oldHandler, String newName, ChannelHandler newHandler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces the {@link ChannelHandler} of the specified name with a new
|
||||||
|
* handler in this pipeline.
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler);
|
ChannelHandler replace(String oldName, String newName, ChannelHandler newHandler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces the {@link ChannelHandler} of the specified type with a new
|
||||||
|
* handler in this pipeline.
|
||||||
|
*
|
||||||
|
* @return the removed handler
|
||||||
|
*/
|
||||||
<T extends ChannelHandler> T replace(Class<T> oldHandlerType, String newName, ChannelHandler newHandler);
|
<T extends ChannelHandler> T replace(Class<T> oldHandlerType, String newName, ChannelHandler newHandler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first {@link ChannelHandler} in this pipeline.
|
||||||
|
*/
|
||||||
ChannelHandler getFirst();
|
ChannelHandler getFirst();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the last {@link ChannelHandler} in this pipeline.
|
||||||
|
*/
|
||||||
ChannelHandler getLast();
|
ChannelHandler getLast();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelHandler} with the specified name in this
|
||||||
|
* pipeline.
|
||||||
|
*/
|
||||||
ChannelHandler get(String name);
|
ChannelHandler get(String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelHandler} of the specified type in this
|
||||||
|
* pipeline.
|
||||||
|
*/
|
||||||
<T extends ChannelHandler> T get(Class<T> handlerType);
|
<T extends ChannelHandler> T get(Class<T> handlerType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the context object of the specified {@link ChannelHandler} in
|
||||||
|
* this pipeline.
|
||||||
|
*/
|
||||||
ChannelHandlerContext getContext(ChannelHandler handler);
|
ChannelHandlerContext getContext(ChannelHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the context object of the {@link ChannelHandler} with the
|
||||||
|
* specified name in this pipeline.
|
||||||
|
*/
|
||||||
ChannelHandlerContext getContext(String name);
|
ChannelHandlerContext getContext(String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the context object of the {@link ChannelHandler} of the
|
||||||
|
* specified type in this pipeline.
|
||||||
|
*/
|
||||||
ChannelHandlerContext getContext(Class<? extends ChannelHandler> handlerType);
|
ChannelHandlerContext getContext(Class<? extends ChannelHandler> handlerType);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires the specified {@link ChannelEvent} to the first
|
||||||
|
* {@link ChannelUpstreamHandler} in this pipeline.
|
||||||
|
*/
|
||||||
void sendUpstream(ChannelEvent e);
|
void sendUpstream(ChannelEvent e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires the specified {@link ChannelEvent} to the last
|
||||||
|
* {@link ChannelDownstreamHandler} in this pipeline.
|
||||||
|
*/
|
||||||
void sendDownstream(ChannelEvent e);
|
void sendDownstream(ChannelEvent e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link Channel} that this pipeline is attached to.
|
||||||
|
*/
|
||||||
Channel getChannel();
|
Channel getChannel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link ChannelSink} that this pipeline is attached to.
|
||||||
|
*/
|
||||||
ChannelSink getSink();
|
ChannelSink getSink();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attaches this pipeline to the specified {@link Channel} and
|
||||||
|
* {@link ChannelSink}. Once a pipeline is attached, it can't be detached
|
||||||
|
* nor attached again.
|
||||||
|
*/
|
||||||
void attach(Channel channel, ChannelSink sink);
|
void attach(Channel channel, ChannelSink sink);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this pipeline into an ordered {@link Map} whose keys are
|
||||||
|
* handler names and whose values are handlers.
|
||||||
|
*/
|
||||||
Map<String, ChannelHandler> toMap();
|
Map<String, ChannelHandler> toMap();
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,9 @@
|
|||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* A {@link ChannelException} which is thrown when a {@link ChannelPipeline}
|
||||||
|
* failed to process a {@link ChannelEvent} or when a {@link ChannelPipelineFactory}
|
||||||
|
* failed to initialize a {@link ChannelPipeline}.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -35,18 +38,30 @@ public class ChannelPipelineException extends ChannelException {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 3379174210419885980L;
|
private static final long serialVersionUID = 3379174210419885980L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
*/
|
||||||
public ChannelPipelineException() {
|
public ChannelPipelineException() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
*/
|
||||||
public ChannelPipelineException(String message, Throwable cause) {
|
public ChannelPipelineException(String message, Throwable cause) {
|
||||||
super(message, cause);
|
super(message, cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
*/
|
||||||
public ChannelPipelineException(String message) {
|
public ChannelPipelineException(String message) {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
*/
|
||||||
public ChannelPipelineException(Throwable cause) {
|
public ChannelPipelineException(Throwable cause) {
|
||||||
super(cause);
|
super(cause);
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
package org.jboss.netty.channel;
|
package org.jboss.netty.channel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Creates a new {@link ChannelPipeline} for a new {@link Channel}.
|
||||||
*
|
*
|
||||||
* @author The Netty Project (netty-dev@lists.jboss.org)
|
* @author The Netty Project (netty-dev@lists.jboss.org)
|
||||||
* @author Trustin Lee (tlee@redhat.com)
|
* @author Trustin Lee (tlee@redhat.com)
|
||||||
@ -32,5 +33,9 @@ package org.jboss.netty.channel;
|
|||||||
* @apiviz.has org.jboss.netty.channel.ChannelPipeline oneway - - creates
|
* @apiviz.has org.jboss.netty.channel.ChannelPipeline oneway - - creates
|
||||||
*/
|
*/
|
||||||
public interface ChannelPipelineFactory {
|
public interface ChannelPipelineFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a newly created {@link ChannelPipeline}.
|
||||||
|
*/
|
||||||
ChannelPipeline getPipeline() throws Exception;
|
ChannelPipeline getPipeline() throws Exception;
|
||||||
}
|
}
|
||||||
|
@ -213,6 +213,13 @@ public class Channels {
|
|||||||
ChannelState.BOUND, localAddress));
|
ChannelState.BOUND, localAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelConnected} event to the
|
||||||
|
* specified {@link Channel}.
|
||||||
|
*
|
||||||
|
* @param remoteAddress
|
||||||
|
* the remote address where the specified channel is connected
|
||||||
|
*/
|
||||||
public static void fireChannelConnected(Channel channel, SocketAddress remoteAddress) {
|
public static void fireChannelConnected(Channel channel, SocketAddress remoteAddress) {
|
||||||
channel.getPipeline().sendUpstream(
|
channel.getPipeline().sendUpstream(
|
||||||
new DefaultChannelStateEvent(
|
new DefaultChannelStateEvent(
|
||||||
@ -220,6 +227,13 @@ public class Channels {
|
|||||||
ChannelState.CONNECTED, remoteAddress));
|
ChannelState.CONNECTED, remoteAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelConnected} event to the
|
||||||
|
* specified {@link ChannelHandlerContext}.
|
||||||
|
*
|
||||||
|
* @param remoteAddress
|
||||||
|
* the remote address where the specified channel is connected
|
||||||
|
*/
|
||||||
public static void fireChannelConnected(
|
public static void fireChannelConnected(
|
||||||
ChannelHandlerContext ctx, Channel channel, SocketAddress remoteAddress) {
|
ChannelHandlerContext ctx, Channel channel, SocketAddress remoteAddress) {
|
||||||
|
|
||||||
@ -228,10 +242,24 @@ public class Channels {
|
|||||||
ChannelState.CONNECTED, remoteAddress));
|
ChannelState.CONNECTED, remoteAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler messageReceived} event to the
|
||||||
|
* specified {@link Channel}.
|
||||||
|
*
|
||||||
|
* @param message the received message
|
||||||
|
*/
|
||||||
public static void fireMessageReceived(Channel channel, Object message) {
|
public static void fireMessageReceived(Channel channel, Object message) {
|
||||||
fireMessageReceived(channel, message, null);
|
fireMessageReceived(channel, message, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler messageReceived} event to the
|
||||||
|
* specified {@link Channel}.
|
||||||
|
*
|
||||||
|
* @param message the received message
|
||||||
|
* @param remoteAddress the remote address where the received message
|
||||||
|
* came from
|
||||||
|
*/
|
||||||
public static void fireMessageReceived(Channel channel, Object message, SocketAddress remoteAddress) {
|
public static void fireMessageReceived(Channel channel, Object message, SocketAddress remoteAddress) {
|
||||||
channel.getPipeline().sendUpstream(
|
channel.getPipeline().sendUpstream(
|
||||||
new DefaultMessageEvent(
|
new DefaultMessageEvent(
|
||||||
@ -239,12 +267,26 @@ public class Channels {
|
|||||||
message, remoteAddress));
|
message, remoteAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler messageReceived} event to the
|
||||||
|
* specified {@link ChannelHandlerContext}.
|
||||||
|
*
|
||||||
|
* @param message the received message
|
||||||
|
*/
|
||||||
public static void fireMessageReceived(
|
public static void fireMessageReceived(
|
||||||
ChannelHandlerContext ctx, Channel channel, Object message) {
|
ChannelHandlerContext ctx, Channel channel, Object message) {
|
||||||
ctx.sendUpstream(new DefaultMessageEvent(
|
ctx.sendUpstream(new DefaultMessageEvent(
|
||||||
channel, succeededFuture(channel), message, null));
|
channel, succeededFuture(channel), message, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler messageReceived} event to the
|
||||||
|
* specified {@link ChannelHandlerContext}.
|
||||||
|
*
|
||||||
|
* @param message the received message
|
||||||
|
* @param remoteAddress the remote address where the received message
|
||||||
|
* came from
|
||||||
|
*/
|
||||||
public static void fireMessageReceived(
|
public static void fireMessageReceived(
|
||||||
ChannelHandlerContext ctx, Channel channel,
|
ChannelHandlerContext ctx, Channel channel,
|
||||||
Object message, SocketAddress remoteAddress) {
|
Object message, SocketAddress remoteAddress) {
|
||||||
@ -252,6 +294,12 @@ public class Channels {
|
|||||||
channel, succeededFuture(channel), message, remoteAddress));
|
channel, succeededFuture(channel), message, remoteAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelInterestChanged} event to the
|
||||||
|
* specified {@link Channel}.
|
||||||
|
*
|
||||||
|
* @param interestOps the new interestOps
|
||||||
|
*/
|
||||||
public static void fireChannelInterestChanged(Channel channel, int interestOps) {
|
public static void fireChannelInterestChanged(Channel channel, int interestOps) {
|
||||||
validateInterestOps(interestOps);
|
validateInterestOps(interestOps);
|
||||||
channel.getPipeline().sendUpstream(
|
channel.getPipeline().sendUpstream(
|
||||||
@ -260,6 +308,12 @@ public class Channels {
|
|||||||
ChannelState.INTEREST_OPS, Integer.valueOf(interestOps)));
|
ChannelState.INTEREST_OPS, Integer.valueOf(interestOps)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelInterestChanged} event to the
|
||||||
|
* specified {@link ChannelHandlerContext}.
|
||||||
|
*
|
||||||
|
* @param interestOps the new interestOps
|
||||||
|
*/
|
||||||
public static void fireChannelInterestChanged(
|
public static void fireChannelInterestChanged(
|
||||||
ChannelHandlerContext ctx, Channel channel, int interestOps) {
|
ChannelHandlerContext ctx, Channel channel, int interestOps) {
|
||||||
|
|
||||||
@ -270,6 +324,10 @@ public class Channels {
|
|||||||
ChannelState.INTEREST_OPS, Integer.valueOf(interestOps)));
|
ChannelState.INTEREST_OPS, Integer.valueOf(interestOps)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelDisconnected} event to the
|
||||||
|
* specified {@link Channel}.
|
||||||
|
*/
|
||||||
public static void fireChannelDisconnected(Channel channel) {
|
public static void fireChannelDisconnected(Channel channel) {
|
||||||
channel.getPipeline().sendUpstream(
|
channel.getPipeline().sendUpstream(
|
||||||
new DefaultChannelStateEvent(
|
new DefaultChannelStateEvent(
|
||||||
@ -277,6 +335,10 @@ public class Channels {
|
|||||||
ChannelState.CONNECTED, null));
|
ChannelState.CONNECTED, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fires a {@link SimpleChannelHandler channelDisconnected} event to the
|
||||||
|
* specified {@link ChannelHandlerContext}.
|
||||||
|
*/
|
||||||
public static void fireChannelDisconnected(
|
public static void fireChannelDisconnected(
|
||||||
ChannelHandlerContext ctx, Channel channel) {
|
ChannelHandlerContext ctx, Channel channel) {
|
||||||
ctx.sendUpstream(new DefaultChannelStateEvent(
|
ctx.sendUpstream(new DefaultChannelStateEvent(
|
||||||
@ -334,6 +396,9 @@ public class Channels {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ChannelFuture bind(Channel channel, SocketAddress localAddress) {
|
public static ChannelFuture bind(Channel channel, SocketAddress localAddress) {
|
||||||
|
if (localAddress == null) {
|
||||||
|
throw new NullPointerException("localAddress");
|
||||||
|
}
|
||||||
ChannelFuture future = future(channel);
|
ChannelFuture future = future(channel);
|
||||||
channel.getPipeline().sendDownstream(new DefaultChannelStateEvent(
|
channel.getPipeline().sendDownstream(new DefaultChannelStateEvent(
|
||||||
channel, future, ChannelState.BOUND, localAddress));
|
channel, future, ChannelState.BOUND, localAddress));
|
||||||
@ -343,12 +408,17 @@ public class Channels {
|
|||||||
public static void bind(
|
public static void bind(
|
||||||
ChannelHandlerContext ctx, Channel channel,
|
ChannelHandlerContext ctx, Channel channel,
|
||||||
ChannelFuture future, SocketAddress localAddress) {
|
ChannelFuture future, SocketAddress localAddress) {
|
||||||
|
if (localAddress == null) {
|
||||||
|
throw new NullPointerException("localAddress");
|
||||||
|
}
|
||||||
ctx.sendDownstream(new DefaultChannelStateEvent(
|
ctx.sendDownstream(new DefaultChannelStateEvent(
|
||||||
channel, future, ChannelState.BOUND, localAddress));
|
channel, future, ChannelState.BOUND, localAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ChannelFuture connect(Channel channel, SocketAddress remoteAddress) {
|
public static ChannelFuture connect(Channel channel, SocketAddress remoteAddress) {
|
||||||
|
if (remoteAddress == null) {
|
||||||
|
throw new NullPointerException("remoteAddress");
|
||||||
|
}
|
||||||
ChannelFuture future = future(channel, true);
|
ChannelFuture future = future(channel, true);
|
||||||
channel.getPipeline().sendDownstream(new DefaultChannelStateEvent(
|
channel.getPipeline().sendDownstream(new DefaultChannelStateEvent(
|
||||||
channel, future, ChannelState.CONNECTED, remoteAddress));
|
channel, future, ChannelState.CONNECTED, remoteAddress));
|
||||||
@ -358,7 +428,9 @@ public class Channels {
|
|||||||
public static void connect(
|
public static void connect(
|
||||||
ChannelHandlerContext ctx, Channel channel,
|
ChannelHandlerContext ctx, Channel channel,
|
||||||
ChannelFuture future, SocketAddress remoteAddress) {
|
ChannelFuture future, SocketAddress remoteAddress) {
|
||||||
|
if (remoteAddress == null) {
|
||||||
|
throw new NullPointerException("remoteAddress");
|
||||||
|
}
|
||||||
ctx.sendDownstream(new DefaultChannelStateEvent(
|
ctx.sendDownstream(new DefaultChannelStateEvent(
|
||||||
channel, future, ChannelState.CONNECTED, remoteAddress));
|
channel, future, ChannelState.CONNECTED, remoteAddress));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user