Author: astitcher
Date: Mon Sep 23 21:18:25 2013
New Revision: 1525706
URL: http://svn.apache.org/r1525706
Log:
QPID-2926: Better solution for instantiating qpid::messaging::Handle<>
specialisations
Removed:
qpid/trunk/qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp
Modified:
qpid/trunk/qpid/cpp/include/qpid/messaging/Handle.h
qpid/trunk/qpid/cpp/src/CMakeLists.txt
qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp
qpid/trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp
qpid/trunk/qpid/cpp/src/qpid/messaging/Sender.cpp
qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp
Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Handle.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Handle.h?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qpid/messaging/Handle.h (original)
+++ qpid/trunk/qpid/cpp/include/qpid/messaging/Handle.h Mon Sep 23 21:18:25 2013
@@ -53,14 +53,15 @@ template <class T> class Handle {
void swap(Handle<T>& h) { T* t = h.impl; h.impl = impl; impl = t; }
+ private:
+ // Not implemented, subclasses must implement.
+ Handle(const Handle&);
+ Handle& operator=(const Handle&);
+
protected:
typedef T Impl;
QPID_MESSAGING_INLINE_EXTERN Handle() :impl() {}
- // Not implemented,subclasses must implement.
- QPID_MESSAGING_EXTERN Handle(const Handle&);
- QPID_MESSAGING_EXTERN Handle& operator=(const Handle&);
-
Impl* impl;
friend class PrivateImplRef<T>;
Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Mon Sep 23 21:18:25 2013
@@ -889,10 +889,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
windows/SCM.cpp
)
- set (qpidmessaging_platform_SOURCES
- qpid/messaging/HandleInstantiator.cpp
- )
-
else (CMAKE_SYSTEM_NAME STREQUAL Windows)
# POSIX (Non-Windows) platforms have a lot of overlap in sources; the only
@@ -990,9 +986,6 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
set (qpidd_platform_SOURCES
posix/QpiddBroker.cpp
)
-
- set (qpidmessaging_platform_SOURCES
- )
endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
set (qpidcommon_SOURCES
@@ -1234,7 +1227,6 @@ set_source_files_properties(
COMPILE_FLAGS "${HIDE_SYMBOL_FLAGS}")
set (qpidmessaging_SOURCES
- ${qpidmessaging_platform_SOURCES}
${qpidmessaging_SOURCES_hidden}
qpid/messaging/Address.cpp
qpid/messaging/AddressParser.cpp # The functions in here are not in the
public interface, but qmf uses them
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp Mon Sep 23 21:18:25
2013
@@ -31,6 +31,9 @@
namespace qpid {
namespace messaging {
+// Explicitly instantiate Handle superclass
+template class Handle<ConnectionImpl>;
+
using namespace qpid::types;
typedef PrivateImplRef<qpid::messaging::Connection> PI;
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp Mon Sep 23 21:18:25 2013
@@ -29,6 +29,9 @@
namespace qpid {
namespace messaging {
+// Explicitly instantiate Handle superclass
+template class Handle<ReceiverImpl>;
+
typedef PrivateImplRef<qpid::messaging::Receiver> PI;
Receiver::Receiver(ReceiverImpl* impl) { PI::ctor(*this, impl); }
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Sender.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Sender.cpp?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Sender.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Sender.cpp Mon Sep 23 21:18:25 2013
@@ -27,6 +27,10 @@
namespace qpid {
namespace messaging {
+
+// Explicitly instantiate Handle superclass
+template class Handle<SenderImpl>;
+
typedef PrivateImplRef<qpid::messaging::Sender> PI;
Sender::Sender(SenderImpl* impl) { PI::ctor(*this, impl); }
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp?rev=1525706&r1=1525705&r2=1525706&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Session.cpp Mon Sep 23 21:18:25 2013
@@ -30,6 +30,9 @@
namespace qpid {
namespace messaging {
+// Explicitly instantiate Handle superclass
+template class Handle<SessionImpl>;
+
typedef PrivateImplRef<qpid::messaging::Session> PI;
Session::Session(SessionImpl* impl) { PI::ctor(*this, impl); }
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]