You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bl...@apache.org on 2004/12/03 22:58:37 UTC
svn commit: r109728 - in incubator/directory/seda/branches/berin_api_proposal/src: java/org/apache/directory/seda/bufferpool java/org/apache/directory/seda/input java/org/apache/directory/seda/output java/org/apache/directory/seda/protocol test/org/apache/directory/seda/bufferpool test/org/apache/directory/seda/bufferpool/test test/org/apache/directory/seda/input test/org/apache/directory/seda/input/test test/org/apache/directory/seda/output test/org/apache/directory/seda/output/test test/org/apache/directory/seda/protocol test/org/apache/directory/seda/protocol/test
Author: bloritsch
Date: Fri Dec 3 13:58:35 2004
New Revision: 109728
URL: http://svn.apache.org/viewcvs?view=rev&rev=109728
Log:
Add the proposed package structure
Added:
incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/bufferpool/
incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/
incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java
incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/output/
incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/protocol/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/bufferpool/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/bufferpool/test/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/output/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/output/test/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/protocol/
incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/protocol/test/
Added: incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java?view=auto&rev=109728
==============================================================================
--- (empty file)
+++ incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java Fri Dec 3 13:58:35 2004
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 org.apache.directory.seda.input;
+
+import org.d_haven.event.Source;
+
+import java.nio.channels.Selector;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
+import java.net.ServerSocket;
+
+/**
+ * This stage does nothing other than retrieve the connection events
+ * from the java.nio selector. It passes those events on to the next
+ * stage.
+ */
+public class ConnectSource implements Source
+{
+ private Selector m_selector;
+
+ public ConnectSource() throws IOException
+ {
+ m_selector = Selector.open();
+ }
+
+ public void setTimeout( final long timeout )
+ {
+ }
+
+ public Object dequeue()
+ {
+ final Iterator keys = m_selector.selectedKeys().iterator();
+ Object key = null;
+
+ if ( keys.hasNext() )
+ {
+ key = keys.next();
+ keys.remove();
+ }
+
+ return key;
+ }
+
+ public Object[] dequeueAll()
+ {
+ final List keys = new ArrayList();
+
+ final Iterator set = m_selector.selectedKeys().iterator();
+ while( set.hasNext() )
+ {
+ keys.add( set.next() );
+ set.remove();
+ }
+
+ return keys.toArray();
+ }
+
+ public Object[] dequeue( final int numElements )
+ {
+ final List keys = new ArrayList(numElements);
+
+ final Iterator set = m_selector.selectedKeys().iterator();
+ for( int i = 0; i < numElements && set.hasNext(); i++ )
+ {
+ keys.add( set.next() );
+ set.remove();
+ }
+
+ return keys.toArray();
+ }
+
+ public int size()
+ {
+ try
+ {
+ return m_selector.select( 0 );
+ }
+ catch ( IOException e )
+ {
+ return 0;
+ }
+ }
+
+ public void listen( final int port )
+ {
+ }
+
+ public void unlisten( final int port )
+ {
+ }
+}
Added: incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java?view=auto&rev=109728
==============================================================================
--- (empty file)
+++ incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java Fri Dec 3 13:58:35 2004
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 org.apache.directory.seda.input.test;
+
+import junit.framework.TestCase;
+
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.InetAddress;
+import java.io.IOException;
+
+import org.apache.directory.seda.input.ConnectSource;
+
+/**
+ * Created by IntelliJ IDEA. User: berin Date: Dec 3, 2004 Time: 9:12:50
+ * AM To change this template use File | Settings | File Templates.
+ */
+public class TestConnectSource extends TestCase
+{
+ private static final int PORT = 6666;
+ private ServerSocket m_socket;
+
+ public TestConnectSource(final String name)
+ {
+ super(name);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ m_socket = new ServerSocket(PORT);
+ }
+
+ public void tearDown() throws Exception
+ {
+ super.tearDown();
+
+ m_socket.close();
+ }
+
+ public void testConnectStage() throws IOException
+ {
+ final ConnectSource source = new ConnectSource();
+ source.listen(PORT);
+
+ final Socket client = new Socket(InetAddress.getLocalHost(), PORT);
+ assertTrue(client.isConnected());
+
+ source.unlisten(PORT);
+ }
+}