Author: tabish
Date: Wed Nov 17 22:04:26 2010
New Revision: 1036248
URL: http://svn.apache.org/viewvc?rev=1036248&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQCPP-329
Update the XAConnetion and XASession inheritance to allow them to act as
Connection and Session instances as well. Update ActiveMQConnection and
ActiveMQSession to use virtual inheritance of Connection and Session so that
the XA extensions can share the base class API impl.
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConnection.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnection.h
activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.h
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConnection.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConnection.h?rev=1036248&r1=1036247&r2=1036248&view=diff
==============================================================================
---
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConnection.h
(original)
+++
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConnection.h
Wed Nov 17 22:04:26 2010
@@ -58,7 +58,7 @@ namespace core{
*
* @since 2.0
*/
- class AMQCPP_API ActiveMQConnection : public cms::Connection,
+ class AMQCPP_API ActiveMQConnection : public virtual cms::Connection,
public transport::TransportListener {
private:
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.h?rev=1036248&r1=1036247&r2=1036248&view=diff
==============================================================================
---
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.h
(original)
+++
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQSession.h
Wed Nov 17 22:04:26 2010
@@ -54,7 +54,7 @@ namespace core{
class ActiveMQConsumer;
class ActiveMQSessionExecutor;
- class AMQCPP_API ActiveMQSession : public cms::Session, public Dispatcher {
+ class AMQCPP_API ActiveMQSession : public virtual cms::Session, public
Dispatcher {
private:
typedef decaf::util::StlMap< Pointer<commands::ConsumerId>,
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnection.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnection.h?rev=1036248&r1=1036247&r2=1036248&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnection.h
(original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XAConnection.h Wed
Nov 17 22:04:26 2010
@@ -34,7 +34,7 @@ namespace cms {
*
* @since 2.3
*/
- class CMS_API XAConnection {
+ class CMS_API XAConnection : public virtual cms::Connection {
public:
virtual ~XAConnection() throw();
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.cpp
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.cpp?rev=1036248&r1=1036247&r2=1036248&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.cpp
(original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.cpp Wed Nov
17 22:04:26 2010
@@ -20,5 +20,5 @@
using namespace cms;
////////////////////////////////////////////////////////////////////////////////
-XASession::~XASession() {
+XASession::~XASession() throw() {
}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.h
URL:
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.h?rev=1036248&r1=1036247&r2=1036248&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/XASession.h Wed Nov
17 22:04:26 2010
@@ -20,6 +20,7 @@
#include <cms/Config.h>
+#include <cms/Session.h>
#include <cms/XAResource.h>
namespace cms {
@@ -50,10 +51,10 @@ namespace cms {
*
* @since 2.3
*/
- class CMS_API XASession {
+ class CMS_API XASession : public virtual cms::Session {
public:
- virtual ~XASession();
+ virtual ~XASession() throw();
/**
* Returns the XA resource associated with this Session to the caller.