diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java')
-rw-r--r-- | plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java index d6f7e1ec85..2441690824 100644 --- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java @@ -10,18 +10,31 @@ **************************************************************************/ package org.eclipse.net4j.internal.http; +import org.eclipse.net4j.buffer.IBuffer; +import org.eclipse.net4j.channel.IChannel; import org.eclipse.net4j.http.IHTTPConnector; +import org.eclipse.net4j.internal.http.bundle.OM; +import org.eclipse.net4j.internal.util.om.trace.ContextTracer; import org.eclipse.net4j.util.security.INegotiationContext; +import org.eclipse.internal.net4j.buffer.Buffer; +import org.eclipse.internal.net4j.channel.InternalChannel; import org.eclipse.internal.net4j.connector.Connector; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; + /** * @author Eike Stepper */ public abstract class HTTPConnector extends Connector implements IHTTPConnector { + private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HTTPConnector.class); + private String connectorID; + private Queue<IBuffer> outputQueue = new ConcurrentLinkedQueue<IBuffer>(); + public HTTPConnector() { } @@ -36,6 +49,23 @@ public abstract class HTTPConnector extends Connector implements IHTTPConnector this.connectorID = connectorID; } + public Queue<IBuffer> getOutputQueue() + { + return outputQueue; + } + + public void multiplexChannel(IChannel channel) + { + Queue<IBuffer> channelQueue = ((InternalChannel)channel).getSendQueue(); + IBuffer buffer = channelQueue.poll(); + if (TRACER.isEnabled()) + { + TRACER.trace("Multiplexing " + ((Buffer)buffer).formatContent(true)); + } + + outputQueue.add(buffer); + } + @Override protected INegotiationContext createNegotiationContext() { |