diff options
Diffstat (limited to 'trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp')
-rwxr-xr-x | trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp b/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp deleted file mode 100755 index 048c2d5b18..0000000000 --- a/trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - * Copyright (c) 2008 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "qpid/sys/LockFile.h" -#include "qpid/sys/windows/check.h" - -#include <windows.h> - -namespace qpid { -namespace sys { - -class LockFilePrivate { - friend class LockFile; - - HANDLE fd; - -public: - LockFilePrivate(HANDLE f) : fd(f) {} -}; - -LockFile::LockFile(const std::string& path_, bool create) - : path(path_), created(create) { - - HANDLE h = ::CreateFile(path.c_str(), - create ? (GENERIC_READ|GENERIC_WRITE) : GENERIC_READ, - FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, - 0, /* Default security */ - create ? OPEN_ALWAYS : OPEN_EXISTING, - FILE_FLAG_DELETE_ON_CLOSE, /* Delete file when closed */ - NULL); - if (h == INVALID_HANDLE_VALUE) - throw qpid::Exception(path + ": " + qpid::sys::strError(GetLastError())); - - // Lock up to 4Gb - if (!::LockFile(h, 0, 0, 0xffffffff, 0)) - throw qpid::Exception(path + ": " + qpid::sys::strError(GetLastError())); - impl.reset(new LockFilePrivate(h)); -} - -LockFile::~LockFile() { - if (impl) { - if (impl->fd != INVALID_HANDLE_VALUE) { - ::UnlockFile(impl->fd, 0, 0, 0xffffffff, 0); - ::CloseHandle(impl->fd); - } - } -} - -}} /* namespace qpid::sys */ |