From fe7d3d2118cedd4a64ab1c5931fc3717354153db Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 30 Apr 2013 15:46:53 +0000 Subject: 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 --- cpp/src/qpid/sys/MemoryMappedFile.h | 4 ++-- cpp/src/qpid/sys/posix/MemoryMappedFile.cpp | 9 +++++---- cpp/src/qpid/sys/windows/MemoryMappedFile.cpp | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'cpp') 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 #include 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 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(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*/) { -- cgit v1.2.1