summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2013-06-06 17:17:05 +0000
committerStephen D. Huston <shuston@apache.org>2013-06-06 17:17:05 +0000
commit8970e91dec9823012315ad07030d9bedecbeaad1 (patch)
tree1729e3e70f7c9c2b8e0aa8fe02ade0d786793c96
parent042660f0ffbcdca0dd8f6d596ff9c00e5767b8f9 (diff)
downloadqpid-python-8970e91dec9823012315ad07030d9bedecbeaad1.tar.gz
Allows QMF to build on Windows; resolves QPID-4909.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1490363 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--cpp/src/CMakeLists.txt17
-rw-r--r--cpp/src/qmf/Agent.cpp6
-rw-r--r--cpp/src/qmf/AgentSession.cpp4
-rw-r--r--cpp/src/qpid/messaging/AddressParser.h7
4 files changed, 21 insertions, 13 deletions
diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt
index e00d7a0b7c..538b48d31f 100644
--- a/cpp/src/CMakeLists.txt
+++ b/cpp/src/CMakeLists.txt
@@ -1322,7 +1322,16 @@ install (FILES ${qmf_HEADERS}
COMPONENT ${QPID_COMPONENT_QMF})
install_pdb (qmf ${QPID_COMPONENT_QMF})
-if(NOT WIN32)
+if (NOT WIN32)
+ set (qmf2_platform_headers
+ ../include/qmf/posix/EventNotifier.h
+ )
+ set (qmf2_platform_sources
+ qmf/PosixEventNotifier.cpp
+ qmf/PosixEventNotifierImpl.cpp
+ )
+endif (NOT WIN32)
+
set (qmf2_HEADERS
../include/qmf/AgentEvent.h
../include/qmf/Agent.h
@@ -1334,7 +1343,6 @@ if(NOT WIN32)
../include/qmf/exceptions.h
../include/qmf/Handle.h
../include/qmf/ImportExport.h
- ../include/qmf/posix/EventNotifier.h
../include/qmf/Query.h
../include/qmf/Schema.h
../include/qmf/SchemaId.h
@@ -1342,6 +1350,7 @@ if(NOT WIN32)
../include/qmf/SchemaProperty.h
../include/qmf/SchemaTypes.h
../include/qmf/Subscription.h
+ ${qmf2_platform_headers}
)
set (qmf2_SOURCES
@@ -1366,8 +1375,6 @@ if(NOT WIN32)
qmf/DataImpl.h
qmf/EventNotifierImpl.h
qmf/EventNotifierImpl.cpp
- qmf/PosixEventNotifier.cpp
- qmf/PosixEventNotifierImpl.cpp
qmf/exceptions.cpp
qmf/Expression.cpp
qmf/Expression.h
@@ -1388,6 +1395,7 @@ if(NOT WIN32)
qmf/SchemaPropertyImpl.h
qmf/Subscription.cpp
qmf/SubscriptionImpl.h
+ ${qmf2_platform_sources}
)
add_msvc_version (qmf2 library dll)
@@ -1403,7 +1411,6 @@ if(NOT WIN32)
DESTINATION ${QPID_INSTALL_INCLUDEDIR}/qmf
COMPONENT ${QPID_COMPONENT_QMF})
install_pdb (qmf2 ${QPID_COMPONENT_QMF})
-endif (NOT WIN32)
set (qmfengine_SOURCES
qmf/engine/Agent.cpp
diff --git a/cpp/src/qmf/Agent.cpp b/cpp/src/qmf/Agent.cpp
index 684f8e4fba..fa3987e0c9 100644
--- a/cpp/src/qmf/Agent.cpp
+++ b/cpp/src/qmf/Agent.cpp
@@ -220,7 +220,7 @@ uint32_t AgentImpl::getPackageCount() const
//
// Populate the package set.
//
- for (set<SchemaId>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++)
+ for (set<SchemaId, SchemaIdCompare>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++)
packageSet.insert(iter->getPackageName());
return packageSet.size();
@@ -244,7 +244,7 @@ uint32_t AgentImpl::getSchemaIdCount(const string& pname) const
{
qpid::sys::Mutex::ScopedLock l(lock);
uint32_t count(0);
- for (set<SchemaId>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++)
+ for (set<SchemaId, SchemaIdCompare>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++)
if (iter->getPackageName() == pname)
count++;
return count;
@@ -255,7 +255,7 @@ SchemaId AgentImpl::getSchemaId(const string& pname, uint32_t idx) const
{
qpid::sys::Mutex::ScopedLock l(lock);
uint32_t count(0);
- for (set<SchemaId>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++) {
+ for (set<SchemaId, SchemaIdCompare>::const_iterator iter = schemaIdSet.begin(); iter != schemaIdSet.end(); iter++) {
if (iter->getPackageName() == pname) {
if (idx == count)
return *iter;
diff --git a/cpp/src/qmf/AgentSession.cpp b/cpp/src/qmf/AgentSession.cpp
index 4d7be33188..1afdc14021 100644
--- a/cpp/src/qmf/AgentSession.cpp
+++ b/cpp/src/qmf/AgentSession.cpp
@@ -375,7 +375,7 @@ void AgentSessionImpl::authAccept(AgentEvent& authEvent)
if (query.getSchemaId().isValid()) {
{
qpid::sys::Mutex::ScopedLock l(lock);
- map<SchemaId, DataIndex>::const_iterator iter = schemaIndex.find(query.getSchemaId());
+ map<SchemaId, DataIndex, SchemaIdCompareNoHash>::const_iterator iter = schemaIndex.find(query.getSchemaId());
if (iter != schemaIndex.end())
for (DataIndex::const_iterator dIter = iter->second.begin(); dIter != iter->second.end(); dIter++)
if (query.matchesPredicate(dIter->second.getProperties()))
@@ -751,7 +751,7 @@ void AgentSessionImpl::handleV1SchemaRequest(qpid::management::Buffer& buffer, u
QPID_LOG(trace, "RCVD QMFv1 SchemaRequest for " << packageName << ":" << className);
qpid::types::Uuid hash(hashBits);
- map<SchemaId, Schema>::const_iterator iter;
+ map<SchemaId, Schema, SchemaIdCompare>::const_iterator iter;
string replyContent;
SchemaId dataId(SCHEMA_TYPE_DATA, packageName, className);
diff --git a/cpp/src/qpid/messaging/AddressParser.h b/cpp/src/qpid/messaging/AddressParser.h
index 1635331d19..5e429e1ca9 100644
--- a/cpp/src/qpid/messaging/AddressParser.h
+++ b/cpp/src/qpid/messaging/AddressParser.h
@@ -21,6 +21,7 @@
* under the License.
*
*/
+#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/Address.h"
namespace qpid {
@@ -29,10 +30,10 @@ namespace messaging {
class AddressParser
{
public:
- AddressParser(const std::string&);
+ QPID_MESSAGING_EXTERN AddressParser(const std::string&);
bool parse(Address& address);
- bool parseMap(qpid::types::Variant::Map& map);
- bool parseList(qpid::types::Variant::List& list);
+ QPID_MESSAGING_EXTERN bool parseMap(qpid::types::Variant::Map& map);
+ QPID_MESSAGING_EXTERN bool parseList(qpid::types::Variant::List& list);
private:
const std::string& input;
std::string::size_type current;