summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-04-30 15:46:53 +0000
committerGordon Sim <gsim@apache.org>2013-04-30 15:46:53 +0000
commitfe7d3d2118cedd4a64ab1c5931fc3717354153db (patch)
tree9a1f24b21731a83e9c8735e7f133477470a18721 /cpp
parentcf1388bd755e81465c016b50ae041f6835f2b377 (diff)
downloadqpid-python-fe7d3d2118cedd4a64ab1c5931fc3717354153db.tar.gz
QPID-4339: fix for older compilers/c++ libraries
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1477698 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/sys/MemoryMappedFile.h4
-rw-r--r--cpp/src/qpid/sys/posix/MemoryMappedFile.cpp9
-rw-r--r--cpp/src/qpid/sys/windows/MemoryMappedFile.cpp3
3 files changed, 9 insertions, 7 deletions
diff --git a/cpp/src/qpid/sys/MemoryMappedFile.h b/cpp/src/qpid/sys/MemoryMappedFile.h
index 3dabada06b..6166422695 100644
--- a/cpp/src/qpid/sys/MemoryMappedFile.h
+++ b/cpp/src/qpid/sys/MemoryMappedFile.h
@@ -21,7 +21,6 @@
* under the License.
*
*/
-#include <memory>
#include <string>
namespace qpid {
@@ -34,6 +33,7 @@ class MemoryMappedFilePrivate;
class MemoryMappedFile {
public:
MemoryMappedFile();
+ ~MemoryMappedFile();
/**
* Opens a file that can be mapped by region into memory
*/
@@ -64,7 +64,7 @@ class MemoryMappedFile {
*/
static bool isSupported();
private:
- std::auto_ptr<MemoryMappedFilePrivate> state;
+ MemoryMappedFilePrivate* state;
MemoryMappedFile(const MemoryMappedFile&);
MemoryMappedFile& operator=(const MemoryMappedFile&);
diff --git a/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp b/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
index eae23cc6a9..147a1970ee 100644
--- a/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
+++ b/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
@@ -54,10 +54,11 @@ std::string getFileName(const std::string& name, const std::string& dir)
class MemoryMappedFilePrivate
{
friend class MemoryMappedFile;
- const int fd;
- MemoryMappedFilePrivate(int fd_) : fd(fd_) {}
+ int fd;
+ MemoryMappedFilePrivate() : fd(0) {}
};
-MemoryMappedFile::MemoryMappedFile() {}
+MemoryMappedFile::MemoryMappedFile() : state(new MemoryMappedFilePrivate) {}
+MemoryMappedFile::~MemoryMappedFile() { delete state; }
std::string MemoryMappedFile::open(const std::string& name, const std::string& directory)
{
@@ -66,7 +67,7 @@ std::string MemoryMappedFile::open(const std::string& name, const std::string& d
int flags = O_CREAT | O_TRUNC | O_RDWR;
int fd = ::open(path.c_str(), flags, S_IRWXU);
if (fd == -1) throw qpid::Exception(QPID_MSG("Failed to open memory mapped file " << path << ": " << qpid::sys::strError(errno) << " [flags=" << flags << "]"));
- state = std::auto_ptr<MemoryMappedFilePrivate>(new MemoryMappedFilePrivate(fd));
+ state->fd = fd;
return path;
}
size_t MemoryMappedFile::getPageSize()
diff --git a/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp b/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp
index c43a50db74..ba3358ae23 100644
--- a/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp
+++ b/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp
@@ -24,7 +24,8 @@ namespace qpid {
namespace sys {
class MemoryMappedFilePrivate {};
-MemoryMappedFile::MemoryMappedFile() {}
+MemoryMappedFile::MemoryMappedFile() : state(0) {}
+MemoryMappedFile::~MemoryMappedFile() {}
std::string MemoryMappedFile::open(const std::string& /*name*/, const std::string& /*directory*/)
{