You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2010/02/12 19:23:51 UTC
svn commit: r909548 - in /qpid/trunk/qpid/cpp: bindings/qmf/python/qmf.py
bindings/qmf/ruby/qmf.rb include/qmf/engine/ResilientConnection.h
src/qmf/engine/ResilientConnection.cpp
Author: tross
Date: Fri Feb 12 18:23:47 2010
New Revision: 909548
URL: http://svn.apache.org/viewvc?rev=909548&view=rev
Log:
QPID-2328 - Applied patch from Ian Main
Modified:
qpid/trunk/qpid/cpp/bindings/qmf/python/qmf.py
qpid/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb
qpid/trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h
qpid/trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp
Modified: qpid/trunk/qpid/cpp/bindings/qmf/python/qmf.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf/python/qmf.py?rev=909548&r1=909547&r2=909548&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf/python/qmf.py (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf/python/qmf.py Fri Feb 12 18:23:47 2010
@@ -242,8 +242,7 @@
def kick(self):
- self._sockEngine.send(".")
- # self._sockEngine.flush() Not available with python?
+ self.impl.notify()
def add_conn_handler(self, handler):
Modified: qpid/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb?rev=909548&r1=909547&r2=909548&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb (original)
+++ qpid/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb Fri Feb 12 18:23:47 2010
@@ -216,8 +216,7 @@
end
def kick
- @sockEngine.write(".")
- @sockEngine.flush
+ @impl.notify
end
def add_conn_handler(handler)
Modified: qpid/trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h?rev=909548&r1=909547&r2=909548&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h (original)
+++ qpid/trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h Fri Feb 12 18:23:47 2010
@@ -155,6 +155,14 @@
*/
void setNotifyFd(int fd);
+ /**
+ * Send a byte into the notify file descriptor.
+ *
+ * This can be used to wake up the event processing portion of the engine from either the
+ * wrapped implementation or the engine itself.
+ */
+ void notify();
+
private:
ResilientConnectionImpl* impl;
};
Modified: qpid/trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp?rev=909548&r1=909547&r2=909548&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp Fri Feb 12 18:23:47 2010
@@ -96,6 +96,7 @@
void bind(SessionHandle handle, char* exchange, char* queue, char* key);
void unbind(SessionHandle handle, char* exchange, char* queue, char* key);
void setNotifyFd(int fd);
+ void notify();
void run();
void failure();
@@ -329,6 +330,16 @@
sess->session.exchangeUnbind(client::arg::exchange=exchange, client::arg::queue=queue, client::arg::bindingKey=key);
}
+void ResilientConnectionImpl::notify()
+{
+ if (notifyFd != -1)
+ {
+ int unused_ret; //Suppress warnings about ignoring return value.
+ unused_ret = ::write(notifyFd, ".", 1);
+ }
+}
+
+
void ResilientConnectionImpl::setNotifyFd(int fd)
{
notifyFd = fd;
@@ -496,3 +507,8 @@
impl->setNotifyFd(fd);
}
+void ResilientConnection::notify()
+{
+ impl->notify();
+}
+
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org