diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2014-01-31 21:05:26 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2014-01-31 21:05:26 +0000 |
| commit | f0e4a6536341cacdc4a1e7e4ce3f33f878cd1014 (patch) | |
| tree | babb57ad3ebd621f3ff8cbe2202534412e85de71 /qpid/cpp/src | |
| parent | e39e8353b5321a8ddd9a19054e83822a7b629684 (diff) | |
| download | qpid-python-f0e4a6536341cacdc4a1e7e4ce3f33f878cd1014.tar.gz | |
QPID-5485: If no directory for paging file is enabled print warning (as if
memory mapped files were not supported) but still create a queue.
- Also improve DataDir const correctness.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563256 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/DataDir.cpp | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/DataDir.h | 6 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.cpp | 5 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.h | 4 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/QueueFactory.cpp | 4 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/legacystore/StorePlugin.cpp | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/linearstore/StorePlugin.cpp | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp | 2 |
8 files changed, 12 insertions, 15 deletions
diff --git a/qpid/cpp/src/qpid/DataDir.cpp b/qpid/cpp/src/qpid/DataDir.cpp index cfdb536d2c..546df3dabd 100644 --- a/qpid/cpp/src/qpid/DataDir.cpp +++ b/qpid/cpp/src/qpid/DataDir.cpp @@ -26,7 +26,7 @@ namespace qpid { -DataDir::DataDir (std::string path) : +DataDir::DataDir (const std::string& path) : enabled (!path.empty ()), dirPath (path) { diff --git a/qpid/cpp/src/qpid/DataDir.h b/qpid/cpp/src/qpid/DataDir.h index 828299f3ba..ec73d28796 100644 --- a/qpid/cpp/src/qpid/DataDir.h +++ b/qpid/cpp/src/qpid/DataDir.h @@ -42,11 +42,11 @@ class DataDir public: - QPID_COMMON_EXTERN DataDir (std::string path); + QPID_COMMON_EXTERN DataDir (const std::string& path); QPID_COMMON_EXTERN ~DataDir (); - bool isEnabled() { return enabled; } - const std::string& getPath() { return dirPath; } + bool isEnabled() const { return enabled; } + const std::string& getPath() const { return dirPath; } }; } // namespace qpid diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp index 7367336aff..73910ec6c4 100644 --- a/qpid/cpp/src/qpid/broker/Broker.cpp +++ b/qpid/cpp/src/qpid/broker/Broker.cpp @@ -387,11 +387,6 @@ Broker::Broker(const Broker::Options& conf) : } } -std::string Broker::getPagingDirectoryPath() -{ - return pagingDir.getPath(); -} - void Broker::declareStandardExchange(const std::string& name, const std::string& type) { bool storeEnabled = store.get() != NULL; diff --git a/qpid/cpp/src/qpid/broker/Broker.h b/qpid/cpp/src/qpid/broker/Broker.h index 5923d6c0e5..13679bd623 100644 --- a/qpid/cpp/src/qpid/broker/Broker.h +++ b/qpid/cpp/src/qpid/broker/Broker.h @@ -238,11 +238,11 @@ class Broker : public sys::Runnable, public Plugin::Target, ExchangeRegistry& getExchanges() { return exchanges; } LinkRegistry& getLinks() { return links; } DtxManager& getDtxManager() { return dtxManager; } - DataDir& getDataDir() { return dataDir; } + const DataDir& getDataDir() { return dataDir; } + const DataDir& getPagingDir() { return pagingDir; } Options& getOptions() { return config; } ProtocolRegistry& getProtocolRegistry() { return protocolRegistry; } ObjectFactoryRegistry& getObjectFactoryRegistry() { return objectFactory; } - std::string getPagingDirectoryPath(); void setExpiryPolicy(const boost::intrusive_ptr<ExpiryPolicy>& e) { expiryPolicy = e; } boost::intrusive_ptr<ExpiryPolicy> getExpiryPolicy() { return expiryPolicy; } diff --git a/qpid/cpp/src/qpid/broker/QueueFactory.cpp b/qpid/cpp/src/qpid/broker/QueueFactory.cpp index e60349edfb..08988ed4ac 100644 --- a/qpid/cpp/src/qpid/broker/QueueFactory.cpp +++ b/qpid/cpp/src/qpid/broker/QueueFactory.cpp @@ -76,8 +76,10 @@ boost::shared_ptr<Queue> QueueFactory::create(const std::string& name, const Que QPID_LOG(warning, "Cannot create paged queue without broker context"); } else if (!qpid::sys::MemoryMappedFile::isSupported()) { QPID_LOG(warning, "Cannot create paged queue; memory mapped file support not available on this platform"); + } else if ( !broker->getPagingDir().isEnabled() ) { + QPID_LOG(warning, "Cannot create paged queue; no paging directory enabled"); } else { - queue->messages = std::auto_ptr<Messages>(new PagedQueue(name, broker->getPagingDirectoryPath(), + queue->messages = std::auto_ptr<Messages>(new PagedQueue(name, broker->getPagingDir().getPath(), settings.maxPages ? settings.maxPages : 4, settings.pageFactor ? settings.pageFactor : 1, broker->getProtocolRegistry(), broker->getExpiryPolicy())); diff --git a/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp b/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp index f9b77ce02c..5cba10d0f9 100644 --- a/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp +++ b/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp @@ -45,7 +45,7 @@ struct StorePlugin : public Plugin { Broker* broker = dynamic_cast<Broker*>(&target); if (!broker) return; store.reset(new MessageStoreImpl(broker)); - DataDir& dataDir = broker->getDataDir (); + const DataDir& dataDir = broker->getDataDir (); if (options.storeDir.empty ()) { if (!dataDir.isEnabled ()) diff --git a/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp b/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp index 6dfb2056bf..d64b44b5e3 100644 --- a/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp +++ b/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp @@ -46,7 +46,7 @@ struct StorePlugin : public Plugin { Broker* broker = dynamic_cast<Broker*>(&target); if (!broker) return; store.reset(new MessageStoreImpl(broker)); - DataDir& dataDir = broker->getDataDir (); + const DataDir& dataDir = broker->getDataDir (); if (options.storeDir.empty ()) { if (!dataDir.isEnabled ()) diff --git a/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp b/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp index 512e71230b..5ff24e7d33 100644 --- a/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp +++ b/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp @@ -370,7 +370,7 @@ MSSqlClfsProvider::earlyInitialize(Plugin::Target &target) // Check the store dir option; if not specified, need to // grab the broker's data dir. if (options.storeDir.empty()) { - DataDir& dir = store->getBroker()->getDataDir(); + const DataDir& dir = store->getBroker()->getDataDir(); if (dir.isEnabled()) { options.storeDir = dir.getPath(); } |
