Thanks Julien! I was also working on this. Anyways, shall see if I can add something on top.
- ashish On Sun, Mar 22, 2009 at 6:03 PM, <[email protected]> wrote: > Author: jvermillard > Date: Sun Mar 22 12:33:54 2009 > New Revision: 757177 > > URL: http://svn.apache.org/viewvc?rev=757177&view=rev > Log: > Added some APR transport javadoc > > Modified: > > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java > > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java > > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java > > Modified: > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java > URL: > http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=757177&r1=757176&r2=757177&view=diff > ============================================================================== > --- > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java > (original) > +++ > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java > Sun Mar 22 12:33:54 2009 > @@ -60,6 +60,12 @@ > private final List<AprSession> polledSessions = > new CircularQueue<AprSession>(POLLSET_SIZE); > > + /** > + * Create a new instance of {...@link AprIoProcessor} with a given > Exector for > + * handling I/Os events. > + * > + * @param executor the {...@link Executor} for handling I/O events > + */ > public AprIoProcessor(Executor executor) { > super(executor); > > @@ -116,6 +122,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void dispose0() { > Poll.destroy(pollset); > @@ -124,11 +133,17 @@ > Pool.destroy(pool); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected int select() throws Exception { > return select(Integer.MAX_VALUE); > } > > + /** > + * {...@inheritdoc} > + */ > �...@override > protected int select(long timeout) throws Exception { > int rv = Poll.poll(pollset, 1000 * timeout, polledSockets, false); > @@ -186,11 +201,17 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected boolean isSelectorEmpty() { > return allSessions.isEmpty(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void wakeup() { > if (toBeWakenUp) { > @@ -204,11 +225,17 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected Iterator<AprSession> allSessions() { > return allSessions.values().iterator(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected Iterator<AprSession> selectedSessions() { > return polledSessions.iterator(); > @@ -229,6 +256,9 @@ > allSessions.put(s, session); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void destroy(AprSession session) throws Exception { > if (allSessions.remove(session.getDescriptor()) == null) { > @@ -255,6 +285,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected SessionState state(AprSession session) { > long socket = session.getDescriptor(); > @@ -267,26 +300,41 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected boolean isReadable(AprSession session) { > return session.isReadable(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected boolean isWritable(AprSession session) { > return session.isWritable(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected boolean isInterestedInRead(AprSession session) { > return session.isInterestedInRead(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected boolean isInterestedInWrite(AprSession session) { > return session.isInterestedInWrite(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void setInterestedInRead(AprSession session, boolean value) > throws Exception { > if (session.isInterestedInRead() == value) { > @@ -309,6 +357,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void setInterestedInWrite(AprSession session, boolean value) > throws Exception { > if (session.isInterestedInWrite() == value) { > @@ -331,6 +382,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected int read(AprSession session, IoBuffer buffer) throws Exception { > int bytes; > @@ -359,6 +413,9 @@ > return bytes; > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected int write(AprSession session, IoBuffer buf, int length) throws > Exception { > int writtenBytes; > @@ -385,6 +442,9 @@ > return writtenBytes; > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected int transferFile(AprSession session, FileRegion region, int > length) > throws Exception { > > Modified: > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java > URL: > http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=757177&r1=757176&r2=757177&view=diff > ============================================================================== > --- > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java > (original) > +++ > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java > Sun Mar 22 12:33:54 2009 > @@ -28,11 +28,15 @@ > > import org.apache.mina.core.RuntimeIoException; > import org.apache.mina.core.polling.AbstractPollingIoAcceptor; > +import org.apache.mina.core.service.IoAcceptor; > import org.apache.mina.core.service.IoProcessor; > +import org.apache.mina.core.service.IoService; > +import org.apache.mina.core.service.SimpleIoProcessorPool; > import org.apache.mina.core.service.TransportMetadata; > import org.apache.mina.transport.socket.DefaultSocketSessionConfig; > import org.apache.mina.transport.socket.SocketAcceptor; > import org.apache.mina.transport.socket.SocketSessionConfig; > +import org.apache.mina.transport.socket.nio.NioSocketAcceptor; > import org.apache.mina.util.CircularQueue; > import org.apache.tomcat.jni.Address; > import org.apache.tomcat.jni.Poll; > @@ -41,7 +45,7 @@ > import org.apache.tomcat.jni.Status; > > /** > - * TODO Add documentation > + * {...@link IoAcceptor} for APR based socket transport (TCP/IP). > * > * @author The Apache MINA Project ([email protected]) > * @version $Rev$, $Date$ > @@ -68,27 +72,53 @@ > private final List<Long> polledHandles = > new CircularQueue<Long>(POLLSET_SIZE); > > + /** > + * Constructor for {...@link AprSocketAcceptor} using default parameters > (multiple thread model). > + */ > public AprSocketAcceptor() { > super(new DefaultSocketSessionConfig(), AprIoProcessor.class); > ((DefaultSocketSessionConfig) getSessionConfig()).init(this); > } > > + /** > + * Constructor for {...@link AprSocketAcceptor} using default > parameters, and > + * given number of {...@link AprIoProcessor} for multithreading I/O > operations. > + * > + * @param processorCount the number of processor to create and place in a > + * {...@link SimpleIoProcessorPool} > + */ > public AprSocketAcceptor(int processorCount) { > super(new DefaultSocketSessionConfig(), AprIoProcessor.class, > processorCount); > ((DefaultSocketSessionConfig) getSessionConfig()).init(this); > } > > + /** > + * Constructor for {...@link AprSocketAcceptor} with default > configuration but a > + * specific {...@link AprIoProcessor}, useful for sharing the same > processor over multiple > + * �...@link IoService} of the same type. > + * @param processor the processor to use for managing I/O events > + */ > public AprSocketAcceptor(IoProcessor<AprSession> processor) { > super(new DefaultSocketSessionConfig(), processor); > ((DefaultSocketSessionConfig) getSessionConfig()).init(this); > } > > + /** > + * Constructor for {...@link AprSocketAcceptor} with a given {...@link > Executor} for handling > + * connection events and a given {...@link AprIoProcessor} for handling > I/O events, useful for > + * sharing the same processor and executor over multiple {...@link > IoService} of the same type. > + * @param executor the executor for connection > + * @param processor the processor for I/O operations > + */ > public AprSocketAcceptor(Executor executor, > IoProcessor<AprSession> processor) { > super(new DefaultSocketSessionConfig(), executor, processor); > ((DefaultSocketSessionConfig) getSessionConfig()).init(this); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected AprSession accept(IoProcessor<AprSession> processor, Long > handle) throws Exception { > long s = Socket.accept(handle); > @@ -104,6 +134,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected Long open(SocketAddress localAddress) throws Exception { > InetSocketAddress la = (InetSocketAddress) localAddress; > @@ -165,6 +198,9 @@ > return handle; > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void init() throws Exception { > // initialize a memory pool for APR functions > @@ -195,6 +231,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void destroy() throws Exception { > if (wakeupSocket > 0) { > @@ -208,12 +247,18 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected SocketAddress localAddress(Long handle) throws Exception { > long la = Address.get(Socket.APR_LOCAL, handle); > return new InetSocketAddress(Address.getip(la), > Address.getInfo(la).port); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected int select() throws Exception { > int rv = Poll.poll(pollset, Integer.MAX_VALUE, polledSockets, false); > @@ -260,11 +305,17 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected Iterator<Long> selectedHandles() { > return polledHandles.iterator(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void close(Long handle) throws Exception { > Poll.remove(pollset, handle); > @@ -274,6 +325,9 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > protected void wakeup() { > if (toBeWakenUp) { > @@ -287,14 +341,23 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > public int getBacklog() { > return backlog; > } > > + /** > + * {...@inheritdoc} > + */ > public boolean isReuseAddress() { > return reuseAddress; > } > > + /** > + * {...@inheritdoc} > + */ > public void setBacklog(int backlog) { > synchronized (bindLock) { > if (isActive()) { > @@ -306,16 +369,25 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > @Override > public InetSocketAddress getLocalAddress() { > return (InetSocketAddress) super.getLocalAddress(); > } > > + /** > + * {...@inheritdoc} > + */ > @Override > public InetSocketAddress getDefaultLocalAddress() { > return (InetSocketAddress) super.getDefaultLocalAddress(); > } > > + /** > + * {...@inheritdoc} > + */ > public void setDefaultLocalAddress(InetSocketAddress localAddress) { > super.setDefaultLocalAddress(localAddress); > } > @@ -331,15 +403,26 @@ > } > } > > + /** > + * {...@inheritdoc} > + */ > public TransportMetadata getTransportMetadata() { > return AprSocketSession.METADATA; > } > > + /** > + * {...@inheritdoc} > + */ > @Override > public SocketSessionConfig getSessionConfig() { > return (SocketSessionConfig) super.getSessionConfig(); > } > > + /** > + * Convert an APR code into an Exception with the corresponding message > + * @param code error number > + * @throws IOException the generated exception > + */ > private void throwException(int code) throws IOException { > throw new IOException( > org.apache.tomcat.jni.Error.strerror(-code) + > > Modified: > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java > URL: > http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java?rev=757177&r1=757176&r2=757177&view=diff > ============================================================================== > --- > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java > (original) > +++ > mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java > Sun Mar 22 12:33:54 2009 > @@ -33,7 +33,10 @@ > > import org.apache.mina.core.RuntimeIoException; > import org.apache.mina.core.polling.AbstractPollingIoConnector; > +import org.apache.mina.core.service.IoConnector; > import org.apache.mina.core.service.IoProcessor; > +import org.apache.mina.core.service.IoService; > +import org.apache.mina.core.service.SimpleIoProcessorPool; > import org.apache.mina.core.service.TransportMetadata; > import org.apache.mina.transport.socket.DefaultSocketSessionConfig; > import org.apache.mina.transport.socket.SocketConnector; > @@ -46,7 +49,7 @@ > import org.apache.tomcat.jni.Status; > > /** > - * {...@link IoConnector} for ABR based socket transport (TCP/IP). > + * {...@link IoConnector} for APR based socket transport (TCP/IP). > * > * @author The Apache MINA Project ([email protected]) > * @version $Rev$, $Date$ > @@ -76,7 +79,7 @@ > private volatile ByteBuffer dummyBuffer; > > /** > - * TODO : document superclass > + * Create an {...@link AprSocketConnector} with default configuration > (multiple thread model). > */ > public AprSocketConnector() { > super(new DefaultSocketSessionConfig(), AprIoProcessor.class); > @@ -84,7 +87,10 @@ > } > > /** > - * TODO : document superclass > + * Constructor for {...@link AprSocketConnector} with default > configuration, and > + * given number of {...@link AprIoProcessor} for multithreading I/O > operations > + * @param processorCount the number of processor to create and place in a > + * {...@link SimpleIoProcessorPool} > */ > public AprSocketConnector(int processorCount) { > super(new DefaultSocketSessionConfig(), AprIoProcessor.class, > processorCount); > @@ -92,7 +98,10 @@ > } > > /** > - * TODO : document superclass > + * Constructor for {...@link AprSocketConnector} with default > configuration but a > + * specific {...@link IoProcessor}, useful for sharing the same > processor over multiple > + * �...@link IoService} of the same type. > + * @param processor the processor to use for managing I/O events > */ > public AprSocketConnector(IoProcessor<AprSession> processor) { > super(new DefaultSocketSessionConfig(), processor); > @@ -100,7 +109,11 @@ > } > > /** > - * TODO : document superclass > + * Constructor for {...@link AprSocketConnector} with a given {...@link > Executor} for handling > + * connection events and a given {...@link IoProcessor} for handling > I/O events, useful for sharing > + * the same processor and executor over multiple {...@link IoService} > of the same type. > + * @param executor the executor for connection > + * @param processor the processor for I/O operations > */ > public AprSocketConnector(Executor executor, IoProcessor<AprSession> > processor) { > super(new DefaultSocketSessionConfig(), executor, processor); > > > -- thanks ashish Blog: http://www.ashishpaliwal.com/blog My Photo Galleries: http://www.pbase.com/ashishpaliwal
