Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j')
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java23
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java7
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ClientTCPConnectorImpl.java34
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java14
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPConnectorDescriptionImpl.java91
5 files changed, 129 insertions, 40 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java
index de9bdc4efc..8336bb66ae 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java
@@ -10,11 +10,19 @@
**************************************************************************/
package org.eclipse.internal.net4j.transport;
+import static org.eclipse.net4j.transport.Connector.State.CONNECTED;
+import static org.eclipse.net4j.transport.Connector.State.CONNECTING;
+import static org.eclipse.net4j.transport.Connector.State.DISCONNECTED;
+import static org.eclipse.net4j.transport.Connector.State.NEGOTIATING;
+import static org.eclipse.net4j.transport.Connector.Type.CLIENT;
+import static org.eclipse.net4j.transport.Connector.Type.SERVER;
+
import org.eclipse.net4j.transport.Buffer;
import org.eclipse.net4j.transport.BufferProvider;
import org.eclipse.net4j.transport.Channel;
import org.eclipse.net4j.transport.Connector;
import org.eclipse.net4j.transport.ConnectorCredentials;
+import org.eclipse.net4j.transport.ConnectorDescription;
import org.eclipse.net4j.transport.ConnectorException;
import org.eclipse.net4j.transport.Protocol;
import org.eclipse.net4j.transport.ProtocolFactory;
@@ -39,7 +47,8 @@ import java.util.concurrent.TimeUnit;
/**
* @author Eike Stepper
*/
-public abstract class AbstractConnector extends AbstractLifecycle implements Connector, BufferProvider
+public abstract class AbstractConnector<DESCRIPTION extends ConnectorDescription> extends AbstractLifecycle implements
+ Connector<DESCRIPTION>, BufferProvider
{
private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_CONNECTOR, AbstractConnector.class);
@@ -60,6 +69,8 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con
private int connectorID = getNextConnectorID();
+ private DESCRIPTION description;
+
private ConnectorCredentials credentials;
private IRegistry<String, ProtocolFactory> protocolFactoryRegistry;
@@ -187,6 +198,16 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con
return getType() == Type.SERVER;
}
+ public DESCRIPTION getDescription()
+ {
+ return description;
+ }
+
+ public void setDescription(DESCRIPTION description)
+ {
+ this.description = description;
+ }
+
public ConnectorCredentials getCredentials()
{
return credentials;
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java
index e48fef9f50..5c2e7dc3c2 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java
@@ -12,8 +12,9 @@ package org.eclipse.internal.net4j.transport.tcp;
import org.eclipse.net4j.transport.Buffer;
import org.eclipse.net4j.transport.Channel;
+import org.eclipse.net4j.transport.Connector;
import org.eclipse.net4j.transport.ConnectorException;
-import org.eclipse.net4j.transport.tcp.TCPConnector;
+import org.eclipse.net4j.transport.tcp.TCPConnectorDescription;
import org.eclipse.net4j.transport.tcp.TCPSelector;
import org.eclipse.net4j.transport.tcp.TCPSelectorListener;
import org.eclipse.net4j.util.Net4jUtil;
@@ -35,8 +36,8 @@ import java.util.Queue;
/**
* @author Eike Stepper
*/
-public abstract class AbstractTCPConnector extends AbstractConnector implements TCPConnector,
- TCPSelectorListener.Active
+public abstract class AbstractTCPConnector extends AbstractConnector<TCPConnectorDescription> implements
+ Connector<TCPConnectorDescription>, TCPSelectorListener.Active
{
private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_CONNECTOR, AbstractTCPConnector.class);
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ClientTCPConnectorImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ClientTCPConnectorImpl.java
index f645629767..0f91a63559 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ClientTCPConnectorImpl.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ClientTCPConnectorImpl.java
@@ -18,34 +18,10 @@ import java.net.InetSocketAddress;
*/
public class ClientTCPConnectorImpl extends AbstractTCPConnector
{
- private String host;
-
- private int port = DEFAULT_PORT;
-
public ClientTCPConnectorImpl()
{
}
- public String getHost()
- {
- return host;
- }
-
- public void setHost(String host)
- {
- this.host = host;
- }
-
- public int getPort()
- {
- return port;
- }
-
- public void setPort(int port)
- {
- this.port = port;
- }
-
public Type getType()
{
return Type.CLIENT;
@@ -54,16 +30,16 @@ public class ClientTCPConnectorImpl extends AbstractTCPConnector
@Override
public String toString()
{
- return "ClientTCPConnector[" + host + ":" + port + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return "ClientTCPConnector[" + getDescription() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@Override
protected void onAboutToActivate() throws Exception
{
super.onAboutToActivate();
- if (host == null || host.length() == 0)
+ if (getDescription() == null)
{
- throw new IllegalArgumentException("host == null || host.length() == 0"); //$NON-NLS-1$
+ throw new IllegalStateException("getDescription() == null"); //$NON-NLS-1$
}
}
@@ -71,8 +47,8 @@ public class ClientTCPConnectorImpl extends AbstractTCPConnector
protected void onActivate() throws Exception
{
super.onActivate();
- InetAddress addr = InetAddress.getByName(host);
- InetSocketAddress sAddr = new InetSocketAddress(addr, port);
+ InetAddress addr = InetAddress.getByName(getDescription().getHost());
+ InetSocketAddress sAddr = new InetSocketAddress(addr, getDescription().getPort());
getSocketChannel().connect(sAddr);
}
}
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java
index 21ac6b62e0..16d42567ce 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java
@@ -12,10 +12,10 @@ package org.eclipse.internal.net4j.transport.tcp;
import org.eclipse.net4j.transport.Buffer;
import org.eclipse.net4j.transport.BufferProvider;
+import org.eclipse.net4j.transport.Connector;
import org.eclipse.net4j.transport.ProtocolFactory;
import org.eclipse.net4j.transport.tcp.TCPAcceptor;
import org.eclipse.net4j.transport.tcp.TCPAcceptorListener;
-import org.eclipse.net4j.transport.tcp.TCPConnector;
import org.eclipse.net4j.transport.tcp.TCPSelector;
import org.eclipse.net4j.transport.tcp.TCPSelectorListener;
import org.eclipse.net4j.util.Net4jUtil;
@@ -63,7 +63,7 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B
private ServerSocketChannel serverSocketChannel;
- private Set<TCPConnector> acceptedConnectors = new HashSet(0);
+ private Set<Connector> acceptedConnectors = new HashSet(0);
/**
* An optional executor to be used by the {@link Channel}s to process their
@@ -158,15 +158,15 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B
this.listenPort = listenPort;
}
- public TCPConnector[] getAcceptedConnectors()
+ public Connector[] getAcceptedConnectors()
{
- ArrayList<TCPConnector> result;
+ ArrayList<Connector> result;
synchronized (acceptedConnectors)
{
result = new ArrayList(acceptedConnectors);
}
- return result.toArray(new TCPConnector[result.size()]);
+ return result.toArray(new Connector[result.size()]);
}
public void addAcceptorListener(TCPAcceptorListener listener)
@@ -271,7 +271,7 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B
bufferProvider, selector);
}
- protected void fireConnectorAccepted(TCPConnector connector)
+ protected void fireConnectorAccepted(Connector connector)
{
for (TCPAcceptorListener listener : listeners)
{
@@ -329,7 +329,7 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B
@Override
protected void onDeactivate() throws Exception
{
- for (TCPConnector connector : getAcceptedConnectors())
+ for (Connector connector : getAcceptedConnectors())
{
LifecycleUtil.deactivate(connector);
}
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPConnectorDescriptionImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPConnectorDescriptionImpl.java
new file mode 100644
index 0000000000..fa4b5ed179
--- /dev/null
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPConnectorDescriptionImpl.java
@@ -0,0 +1,91 @@
+/***************************************************************************
+ * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ **************************************************************************/
+package org.eclipse.internal.net4j.transport.tcp;
+
+import org.eclipse.net4j.transport.tcp.TCPConnectorDescription;
+import org.eclipse.net4j.util.ObjectUtil;
+
+import java.io.Serializable;
+import java.text.MessageFormat;
+
+/**
+ * @author Eike Stepper
+ */
+public class TCPConnectorDescriptionImpl implements TCPConnectorDescription, Cloneable, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private String host;
+
+ private int port = DEFAULT_PORT;
+
+ public TCPConnectorDescriptionImpl()
+ {
+ }
+
+ public String getHost()
+ {
+ return host;
+ }
+
+ public void setHost(String host)
+ {
+ this.host = host;
+ }
+
+ public int getPort()
+ {
+ return port;
+ }
+
+ public void setPort(int port)
+ {
+ this.port = port;
+ }
+
+ public String getDisplayName()
+ {
+ return MessageFormat.format("{0}:{1}", host, port);
+ }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException
+ {
+ TCPConnectorDescriptionImpl description = new TCPConnectorDescriptionImpl();
+ description.setHost(host);
+ description.setPort(port);
+ return description;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof TCPConnectorDescription)
+ {
+ TCPConnectorDescription that = (TCPConnectorDescription)obj;
+ return this.port == that.getPort() && ObjectUtil.equals(this.host, that.getHost());
+ }
+
+ return false;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return port ^ host.hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return getDisplayName();
+ }
+}

Back to the top