You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ai...@apache.org on 2009/08/19 16:03:25 UTC
svn commit: r805809 - in
/qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport:
NetworkDriver.java network/mina/MINANetworkDriver.java
Author: aidan
Date: Wed Aug 19 14:03:25 2009
New Revision: 805809
URL: http://svn.apache.org/viewvc?rev=805809&view=rev
Log:
QPID-2024: Change send to stash the future and have flush join on that so that it only returns when all data has been written.
Add getLocalAddress.
Modified:
qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java
qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java
Modified: qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java?rev=805809&r1=805808&r2=805809&view=diff
==============================================================================
--- qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java (original)
+++ qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java Wed Aug 19 14:03:25 2009
@@ -43,9 +43,12 @@
void bind (int port, InetAddress[] addresses, ProtocolEngineFactory protocolFactory,
NetworkDriverConfiguration config, SSLContextFactory sslFactory) throws BindException;
- // Returns the remote address of underlying socket
+ // Returns the remote address of the underlying socket
SocketAddress getRemoteAddress();
+ // Returns the local address of the underlying socket
+ SocketAddress getLocalAddress();
+
/**
* The length of time after which the ProtocolEngines readIdle() method should be called if no data has been
* read in seconds
Modified: qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java?rev=805809&r1=805808&r2=805809&view=diff
==============================================================================
--- qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java (original)
+++ qpid/branches/java-network-refactor/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java Wed Aug 19 14:03:25 2009
@@ -78,6 +78,8 @@
private Throwable _lastException;
private boolean _acceptingConnections = false;
+ private WriteFuture _lastWriteFuture;
+
public MINANetworkDriver(boolean useNIO, int processors, boolean executorPool, boolean protectIO)
{
_useNIO = useNIO;
@@ -174,6 +176,11 @@
{
return _ioSession.getRemoteAddress();
}
+
+ public SocketAddress getLocalAddress()
+ {
+ return _ioSession.getLocalAddress();
+ }
public void open(int port, InetAddress destination, ProtocolEngine engine, NetworkDriverConfiguration config,
SSLEngine sslEngine) throws OpenException
@@ -256,13 +263,15 @@
public void flush()
{
- // MINA doesn't support flush
+ if (_lastWriteFuture != null)
+ {
+ _lastWriteFuture.join();
+ }
}
public void send(ByteBuffer msg)
{
- WriteFuture future = _ioSession.write(org.apache.mina.common.ByteBuffer.wrap(msg));
- future.join();
+ _lastWriteFuture = _ioSession.write(org.apache.mina.common.ByteBuffer.wrap(msg));
}
public void setIdleTimeout(long l)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org