summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-07-16 18:59:12 +0000
committerStephen D. Huston <shuston@apache.org>2009-07-16 18:59:12 +0000
commitec4557f77923d1589dfd52d9a2ae131dd44e817f (patch)
tree43f12ad46cfdf227145492faced157ba1118db54 /cpp/src
parentde26c0cc60254b41b80bd2898779d2ad17c3e4ff (diff)
downloadqpid-python-ec4557f77923d1589dfd52d9a2ae131dd44e817f.tar.gz
Move necessary files due to header file reorg; fixes Windows build
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@794777 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rwxr-xr-xcpp/src/qpid/sys/windows/Condition.h81
-rwxr-xr-xcpp/src/qpid/sys/windows/Mutex.h189
-rw-r--r--cpp/src/qpid/sys/windows/Time.h36
3 files changed, 0 insertions, 306 deletions
diff --git a/cpp/src/qpid/sys/windows/Condition.h b/cpp/src/qpid/sys/windows/Condition.h
deleted file mode 100755
index c31f7b4823..0000000000
--- a/cpp/src/qpid/sys/windows/Condition.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _sys_windows_Condition_h
-#define _sys_windows_Condition_h
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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/Mutex.h"
-#include "qpid/sys/Time.h"
-
-#include <time.h>
-#include <boost/noncopyable.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/thread/thread_time.hpp>
-#include <windows.h>
-#undef STATUS_INVALID_PARAMETER // Hack for windows.h namespace pollution
-
-namespace qpid {
-namespace sys {
-
-// Private Time related implementation details
-void toPtime(boost::posix_time::ptime& pt, const AbsTime& t);
-
-/**
- * A condition variable for thread synchronization.
- */
-class Condition : private boost::noncopyable
-{
- public:
- inline Condition();
- inline ~Condition();
- inline void wait(Mutex&);
- inline bool wait(Mutex&, const AbsTime& absoluteTime);
- inline void notify();
- inline void notifyAll();
-
- private:
- boost::condition_variable_any condition;
-};
-
-Condition::Condition() {
-}
-
-Condition::~Condition() {
-}
-
-void Condition::wait(Mutex& mutex) {
- condition.wait(mutex.mutex);
-}
-
-bool Condition::wait(Mutex& mutex, const AbsTime& absoluteTime){
- return condition.timed_wait(mutex.mutex, absoluteTime.getPrivate());
-}
-
-void Condition::notify(){
- condition.notify_one();
-}
-
-void Condition::notifyAll(){
- condition.notify_all();
-}
-
-}}
-#endif /*!_sys_windows_Condition_h*/
diff --git a/cpp/src/qpid/sys/windows/Mutex.h b/cpp/src/qpid/sys/windows/Mutex.h
deleted file mode 100755
index 12768640d5..0000000000
--- a/cpp/src/qpid/sys/windows/Mutex.h
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef _sys_windows_Mutex_h
-#define _sys_windows_Mutex_h
-
-/*
- *
- * 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/windows/check.h"
-
-#include <boost/version.hpp>
-#if (BOOST_VERSION < 103500)
-#error The Windows port requires Boost version 1.35.0 or later
-#endif
-
-#include <boost/noncopyable.hpp>
-#include <boost/thread/recursive_mutex.hpp>
-#include <boost/thread/shared_mutex.hpp>
-#include <boost/thread/thread_time.hpp>
-#include <boost/thread/tss.hpp>
-#undef STATUS_INVALID_PARAMETER // Hack for windows.h namespace pollution
-
-namespace qpid {
-namespace sys {
-
-class Condition;
-
-/**
- * Mutex lock.
- */
-class Mutex : private boost::noncopyable {
- friend class Condition;
-
-public:
- typedef ::qpid::sys::ScopedLock<Mutex> ScopedLock;
- typedef ::qpid::sys::ScopedUnlock<Mutex> ScopedUnlock;
-
- inline Mutex();
- inline ~Mutex();
- inline void lock();
- inline void unlock();
- inline bool trylock();
-
-
-protected:
- boost::recursive_mutex mutex;
-};
-
-/**
- * RW lock.
- */
-class RWlock : private boost::noncopyable {
- friend class Condition;
-
-public:
- typedef ::qpid::sys::ScopedRlock<RWlock> ScopedRlock;
- typedef ::qpid::sys::ScopedWlock<RWlock> ScopedWlock;
-
- inline RWlock();
- inline ~RWlock();
- inline void wlock(); // will write-lock
- inline void rlock(); // will read-lock
- inline void unlock();
- inline void trywlock(); // will write-try
- inline void tryrlock(); // will read-try
-
-protected:
- boost::shared_mutex rwMutex;
- boost::thread_specific_ptr<bool> haveWrite;
-
- inline bool &write (void);
-};
-
-
-/**
- * PODMutex is a POD, can be static-initialized with
- * PODMutex m = QPID_PODMUTEX_INITIALIZER
- */
-struct PODMutex
-{
- typedef ::qpid::sys::ScopedLock<PODMutex> ScopedLock;
-
- inline void lock();
- inline void unlock();
- inline bool trylock();
-
- // Must be public to be a POD:
- boost::recursive_mutex mutex;
-};
-
-#define QPID_MUTEX_INITIALIZER 0
-
-void PODMutex::lock() {
- mutex.lock();
-}
-
-void PODMutex::unlock() {
- mutex.unlock();
-}
-
-bool PODMutex::trylock() {
- return mutex.try_lock();
-}
-
-Mutex::Mutex() {
-}
-
-Mutex::~Mutex(){
-}
-
-void Mutex::lock() {
- mutex.lock();
-}
-
-void Mutex::unlock() {
- mutex.unlock();
-}
-
-bool Mutex::trylock() {
- return mutex.try_lock();
-}
-
-
-RWlock::RWlock() {
-}
-
-RWlock::~RWlock(){
-}
-
-void RWlock::wlock() {
- bool &writer = write();
- rwMutex.lock();
- writer = true; // Remember this thread has write lock held.
-}
-
-void RWlock::rlock() {
- bool &writer = write();
- rwMutex.lock_shared();
- writer = false; // Remember this thread has shared lock held.
-}
-
-void RWlock::unlock() {
- bool &writer = write();
- if (writer)
- rwMutex.unlock();
- else
- rwMutex.unlock_shared();
-}
-
-void RWlock::trywlock() {
- bool &writer = write();
- // shared_mutex::try_lock() seems to not be available... emulate it with
- // a timed lock().
- boost::system_time now = boost::get_system_time();
- if (rwMutex.timed_lock(now))
- writer = true;
-}
-
-void RWlock::tryrlock() {
- bool &writer = write();
- if (rwMutex.try_lock_shared())
- writer = false;
-}
-
-bool & RWlock::write (void) {
- // Accessing thread-specific and stack-local info, so no locks needed.
- bool *writePtr = haveWrite.get();
- if (writePtr == 0) {
- writePtr = new bool(false);
- haveWrite.reset(writePtr);
- }
- return *writePtr;
-}
-
-}}
-#endif /*!_sys_windows_Mutex_h*/
diff --git a/cpp/src/qpid/sys/windows/Time.h b/cpp/src/qpid/sys/windows/Time.h
deleted file mode 100644
index 2987b1c8b2..0000000000
--- a/cpp/src/qpid/sys/windows/Time.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef QPID_SYS_WINDOWS_TIME_H
-#define QPID_SYS_WINDOWS_TIME_H
-
-/*
- *
- * Copyright (c) 2006 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 <boost/date_time/posix_time/posix_time_types.hpp>
-
-namespace qpid {
-namespace sys {
-
-/**
- * Class to represent an instant in time. Boost has this stuff already done
- * so just reuse it. We can also grab this for quick use with the Condition
- * wait operations.
- */
-typedef boost::posix_time::ptime TimePrivate;
-
-}} // namespace qpid::sys
-
-#endif /*!QPID_SYS_WINDOWS_TIME_H*/