You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/07/06 00:36:42 UTC
svn commit: r419371 [10/10] - in
/incubator/activemq/trunk/openwire-cpp/src/main/cpp: activemq/
activemq/command/ activemq/protocol/ activemq/protocol/openwire/
activemq/transport/ activemq/transport/tcp/ cms/ ppr/ ppr/io/
ppr/io/encoding/ ppr/net/ ppr...
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Semaphore.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Semaphore.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Semaphore.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Semaphore.hpp Wed Jul 5 15:36:36 2006
@@ -1,240 +1,240 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Semaphore_hpp_
-#define Ppr_Semaphore_hpp_
-
-#if defined MACOSX
-#include <errno.h>
-#include <time.h>
-#include <pthread.h>
-#elif defined(__unix__) || defined(unix)
-#ifndef unix
-#define unix
-#endif
-#include <errno.h>
-#include <time.h>
-#include <semaphore.h>
-#endif
-#if defined(WIN32) || defined(__CYGWIN__) && !defined unix
-#if ( !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0400)
-#pragma message "Unsupported platform, Windows NT 4.0 or later required"
-#endif
-#include <windows.h>
-#endif
-
-#ifdef _MSC_VER
-#pragma warning( disable : 4100) // warning C4100: unreferenced formal parameter
-#endif
-
-namespace apache
-{
- namespace ppr
- {
- namespace thread
- {
-
-/*
- *
- */
-class Semaphore
-{
-private:
-#ifdef MACOSX
- // MacOSX lacks support for timedwait() on a semaphore. Need to build a semaphore upon a condition.
- pthread_cond_t cond;
- pthread_mutex_t mutex;
- int counter;
-#elif defined unix
- sem_t semaphore ;
-#else
- HANDLE semaphore ;
-#endif
-
-public:
- Semaphore(int initialSize = 0) ;
- ~Semaphore() ;
-
- void notify() ;
- void notify(int count) ;
- void wait() ;
- bool wait(int timeout_sec, time_t now = -1) ;
- bool trywait() ;
-} ;
-
-// Optimize all methods via inline code
-
-inline Semaphore::Semaphore(int initialSize)
-{
-#ifdef MACOSX
- pthread_cond_init (&cond, NULL);
- pthread_mutex_init (&mutex, NULL);
- counter = initialSize;
-#elif defined unix
- sem_init(&semaphore, 0 /* local to process */, initialSize) ;
-#else
- semaphore = CreateSemaphore(NULL, initialSize, 1000000, NULL) ;
-#endif
-}
-
-inline Semaphore::~Semaphore()
-{
-#ifdef MACOSX
- pthread_mutex_destroy (&mutex);
- pthread_cond_destroy (&cond);
-#elif defined unix
- sem_destroy(&semaphore) ;
-#else
- CloseHandle(semaphore) ;
-#endif
-}
-
-inline void Semaphore::notify()
-{
-#ifdef MACOSX
- pthread_mutex_lock (&mutex);
- ++counter;
- pthread_cond_signal (&cond);
- pthread_mutex_unlock (&mutex);
-#elif defined unix
- sem_post(&semaphore) ;
-#else
- ReleaseSemaphore(semaphore, 1, NULL) ;
-#endif
-}
-
-inline void Semaphore::notify(int count)
-{
-#ifdef MACOSX
- pthread_mutex_lock (&mutex);
- counter += count;
- pthread_cond_signal (&cond);
- pthread_mutex_unlock (&mutex);
-#elif defined unix
- while( count != 0 )
- {
- sem_post(&semaphore) ;
- --count ;
- }
-#else
- ReleaseSemaphore(semaphore, count, NULL) ;
-#endif
-}
-
-inline void Semaphore::wait()
-{
-#ifdef MACOSX
- pthread_mutex_lock (&mutex);
- while (counter == 0) {
- pthread_cond_wait (&cond, &mutex);
- }
- --counter;
- pthread_mutex_unlock (&mutex);
-#elif defined unix
- sem_wait(&semaphore) ;
-#else
- DWORD rc = WaitForSingleObject(semaphore, INFINITE) ;
- assert(rc == WAIT_OBJECT_0) ;
-#endif
-}
-
-/*
- * Waits specified number of seconds until it gives up. Returns false
- * if semaphore is signaled, true when timeout is reached.
- */
-inline bool Semaphore::wait(int timeout, time_t now)
-{
-#ifdef MACOSX
- if (now == -1) time(&now) ;
- timespec ts ;
- ts.tv_sec = now + timeout ;
- ts.tv_nsec = 0 ;
-
- pthread_mutex_lock (&mutex);
- while (counter == 0) {
- if (pthread_cond_timedwait (&cond, &mutex, &ts) == ETIMEDOUT) {
- pthread_mutex_unlock (&mutex);
- return true;
- }
- }
- --counter;
- pthread_mutex_unlock (&mutex);
- return true;
-#elif defined unix
- if (now == -1)
- time(&now) ;
-
- timespec ts ;
- ts.tv_sec = now + timeout ;
- ts.tv_nsec = 0 ;
-
- do
- {
- int rc = sem_timedwait(&semaphore, &ts) ;
-
- if (rc == 0)
- return false ;
-
- int errvalue = errno ;
-
- // Timeout occurred?
- if ( errvalue == ETIMEDOUT)
- return true ;
-
- assert(errvalue != EDEADLK) ;
- assert(errvalue != EINVAL) ;
- }
- while( true ) ;
-
- return true ;
-#else
- DWORD rc = WaitForSingleObject(semaphore, timeout * 1000) ;
- return (rc == WAIT_OBJECT_0 ? false : true) ;
-#endif
-}
-
-/*
- * Returns false if some error occured or semaphore has zero count, true
- * if semaphore successfully was decreased.
- */
-inline bool Semaphore::trywait()
-{
-#ifdef MACOSX
- pthread_mutex_lock (&mutex);
- if (counter == 0) {
- pthread_mutex_unlock (&mutex);
- return false;
- } else {
- --counter;
- pthread_mutex_unlock (&mutex);
- return true;
- }
-#elif defined unix
- int rc = sem_trywait(&semaphore) ;
- return ( rc == 0 ) ? true : false ;
-#else
- DWORD rc = WaitForSingleObject(semaphore, 0) ;
- return (rc == WAIT_OBJECT_0 ? true : false) ;
-#endif
-}
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Semaphore_hpp_*/
-
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Semaphore_hpp_
+#define Ppr_Semaphore_hpp_
+
+#if defined MACOSX
+#include <errno.h>
+#include <time.h>
+#include <pthread.h>
+#elif defined(__unix__) || defined(unix)
+#ifndef unix
+#define unix
+#endif
+#include <errno.h>
+#include <time.h>
+#include <semaphore.h>
+#endif
+#if defined(WIN32) || defined(__CYGWIN__) && !defined unix
+#if ( !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0400)
+#pragma message "Unsupported platform, Windows NT 4.0 or later required"
+#endif
+#include <windows.h>
+#endif
+
+#ifdef _MSC_VER
+#pragma warning( disable : 4100) // warning C4100: unreferenced formal parameter
+#endif
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace thread
+ {
+
+/*
+ *
+ */
+class Semaphore
+{
+private:
+#ifdef MACOSX
+ // MacOSX lacks support for timedwait() on a semaphore. Need to build a semaphore upon a condition.
+ pthread_cond_t cond;
+ pthread_mutex_t mutex;
+ int counter;
+#elif defined unix
+ sem_t semaphore ;
+#else
+ HANDLE semaphore ;
+#endif
+
+public:
+ Semaphore(int initialSize = 0) ;
+ ~Semaphore() ;
+
+ void notify() ;
+ void notify(int count) ;
+ void wait() ;
+ bool wait(int timeout_sec, time_t now = -1) ;
+ bool trywait() ;
+} ;
+
+// Optimize all methods via inline code
+
+inline Semaphore::Semaphore(int initialSize)
+{
+#ifdef MACOSX
+ pthread_cond_init (&cond, NULL);
+ pthread_mutex_init (&mutex, NULL);
+ counter = initialSize;
+#elif defined unix
+ sem_init(&semaphore, 0 /* local to process */, initialSize) ;
+#else
+ semaphore = CreateSemaphore(NULL, initialSize, 1000000, NULL) ;
+#endif
+}
+
+inline Semaphore::~Semaphore()
+{
+#ifdef MACOSX
+ pthread_mutex_destroy (&mutex);
+ pthread_cond_destroy (&cond);
+#elif defined unix
+ sem_destroy(&semaphore) ;
+#else
+ CloseHandle(semaphore) ;
+#endif
+}
+
+inline void Semaphore::notify()
+{
+#ifdef MACOSX
+ pthread_mutex_lock (&mutex);
+ ++counter;
+ pthread_cond_signal (&cond);
+ pthread_mutex_unlock (&mutex);
+#elif defined unix
+ sem_post(&semaphore) ;
+#else
+ ReleaseSemaphore(semaphore, 1, NULL) ;
+#endif
+}
+
+inline void Semaphore::notify(int count)
+{
+#ifdef MACOSX
+ pthread_mutex_lock (&mutex);
+ counter += count;
+ pthread_cond_signal (&cond);
+ pthread_mutex_unlock (&mutex);
+#elif defined unix
+ while( count != 0 )
+ {
+ sem_post(&semaphore) ;
+ --count ;
+ }
+#else
+ ReleaseSemaphore(semaphore, count, NULL) ;
+#endif
+}
+
+inline void Semaphore::wait()
+{
+#ifdef MACOSX
+ pthread_mutex_lock (&mutex);
+ while (counter == 0) {
+ pthread_cond_wait (&cond, &mutex);
+ }
+ --counter;
+ pthread_mutex_unlock (&mutex);
+#elif defined unix
+ sem_wait(&semaphore) ;
+#else
+ DWORD rc = WaitForSingleObject(semaphore, INFINITE) ;
+ assert(rc == WAIT_OBJECT_0) ;
+#endif
+}
+
+/*
+ * Waits specified number of seconds until it gives up. Returns false
+ * if semaphore is signaled, true when timeout is reached.
+ */
+inline bool Semaphore::wait(int timeout, time_t now)
+{
+#ifdef MACOSX
+ if (now == -1) time(&now) ;
+ timespec ts ;
+ ts.tv_sec = now + timeout ;
+ ts.tv_nsec = 0 ;
+
+ pthread_mutex_lock (&mutex);
+ while (counter == 0) {
+ if (pthread_cond_timedwait (&cond, &mutex, &ts) == ETIMEDOUT) {
+ pthread_mutex_unlock (&mutex);
+ return true;
+ }
+ }
+ --counter;
+ pthread_mutex_unlock (&mutex);
+ return true;
+#elif defined unix
+ if (now == -1)
+ time(&now) ;
+
+ timespec ts ;
+ ts.tv_sec = now + timeout ;
+ ts.tv_nsec = 0 ;
+
+ do
+ {
+ int rc = sem_timedwait(&semaphore, &ts) ;
+
+ if (rc == 0)
+ return false ;
+
+ int errvalue = errno ;
+
+ // Timeout occurred?
+ if ( errvalue == ETIMEDOUT)
+ return true ;
+
+ assert(errvalue != EDEADLK) ;
+ assert(errvalue != EINVAL) ;
+ }
+ while( true ) ;
+
+ return true ;
+#else
+ DWORD rc = WaitForSingleObject(semaphore, timeout * 1000) ;
+ return (rc == WAIT_OBJECT_0 ? false : true) ;
+#endif
+}
+
+/*
+ * Returns false if some error occured or semaphore has zero count, true
+ * if semaphore successfully was decreased.
+ */
+inline bool Semaphore::trywait()
+{
+#ifdef MACOSX
+ pthread_mutex_lock (&mutex);
+ if (counter == 0) {
+ pthread_mutex_unlock (&mutex);
+ return false;
+ } else {
+ --counter;
+ pthread_mutex_unlock (&mutex);
+ return true;
+ }
+#elif defined unix
+ int rc = sem_trywait(&semaphore) ;
+ return ( rc == 0 ) ? true : false ;
+#else
+ DWORD rc = WaitForSingleObject(semaphore, 0) ;
+ return (rc == WAIT_OBJECT_0 ? true : false) ;
+#endif
+}
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Semaphore_hpp_*/
+
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Semaphore.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/SimpleMutex.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/SimpleMutex.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/SimpleMutex.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/SimpleMutex.hpp Wed Jul 5 15:36:36 2006
@@ -1,158 +1,158 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_SimpleMutex_hpp_
-#define Ppr_SimpleMutex_hpp_
-
-#ifdef unix
-#include <pthread.h>
-#endif
-#if defined(WIN32) || defined(__CYGWIN__) && !defined unix
-#if ( !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0400)
-#pragma message "Unsupported platform, Windows NT 4.0 or later required"
-#endif
-#include <windows.h>
-#endif
-#include <assert.h>
-
-#ifndef LOCKED_SCOPE
-#define LOCKED_SCOPE(M) ::apache::ppr::thread::SimpleMutex::Lock _scope_lock_ (M)
-#define LOCKED_SCOPE_UNLOCK _scope_lock_.unlock()
-#define LOCKED_SCOPE_RELOCK _scope_lock_.relock()
-#endif
-
-
-namespace apache
-{
- namespace ppr
- {
- namespace thread
- {
-
-/*
- *
- */
-class SimpleMutex
-{
-public:
- class Lock {
- private:
- SimpleMutex* mutex;
- bool locked;
- public:
- Lock (SimpleMutex& mutex) : mutex (&mutex), locked (true) {
- mutex.lock();
- }
- Lock (p<SimpleMutex>& mutex) : mutex (getptr(mutex)), locked (true) {
- mutex->lock();
- }
- Lock (SimpleMutex* mutex) : mutex (mutex), locked (true) {
- mutex->lock();
- }
- ~Lock () {
- if (locked) mutex->unlock();
- }
- public:
- void unlock () {
- if (locked) {
- mutex->unlock();
- locked = false;
- }
- }
- void relock () {
- if (!locked) {
- mutex->lock();
- locked = true;
- }
- }
- };
-private:
-#ifdef unix
- pthread_mutex_t mutex ;
-#else
- CRITICAL_SECTION mutex ;
-#endif
-
-public:
- SimpleMutex() ;
- virtual ~SimpleMutex() ;
-
- bool trylock() ;
- void lock() ;
- void unlock() ;
-} ;
-
-// Optimize all methods via inline code
-
-inline SimpleMutex::SimpleMutex()
-{
-#ifdef unix
- pthread_mutexattr_t attr ;
- pthread_mutexattr_init(&attr) ;
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) ;
- pthread_mutex_init(&mutex, &attr) ;
- pthread_mutexattr_destroy(&attr) ;
-#else
- InitializeCriticalSection(&mutex) ;
-#endif
-}
-
-inline SimpleMutex::~SimpleMutex()
-{
-#ifdef unix
- pthread_mutex_destroy(&mutex) ;
-#else
- DeleteCriticalSection(&mutex) ;
-#endif
-}
-
-inline bool SimpleMutex::trylock()
-{
-#ifdef unix
- int try_l = pthread_mutex_trylock(&mutex) ;
- if (try_l == 0)
- return true;
- else
- return false ;
-#else
- return (TryEnterCriticalSection(&mutex) != 0) ;
-#endif
-}
-
-inline void SimpleMutex::lock()
-{
-#ifdef unix
- pthread_mutex_lock(&mutex) ;
-#else
- EnterCriticalSection(&mutex) ;
-#endif
-}
-
-inline void SimpleMutex::unlock()
-{
-#ifdef unix
- pthread_mutex_unlock(&mutex) ;
-#else
- LeaveCriticalSection(&mutex) ;
-#endif
-}
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_SimpleMutex_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_SimpleMutex_hpp_
+#define Ppr_SimpleMutex_hpp_
+
+#ifdef unix
+#include <pthread.h>
+#endif
+#if defined(WIN32) || defined(__CYGWIN__) && !defined unix
+#if ( !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0400)
+#pragma message "Unsupported platform, Windows NT 4.0 or later required"
+#endif
+#include <windows.h>
+#endif
+#include <assert.h>
+
+#ifndef LOCKED_SCOPE
+#define LOCKED_SCOPE(M) ::apache::ppr::thread::SimpleMutex::Lock _scope_lock_ (M)
+#define LOCKED_SCOPE_UNLOCK _scope_lock_.unlock()
+#define LOCKED_SCOPE_RELOCK _scope_lock_.relock()
+#endif
+
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace thread
+ {
+
+/*
+ *
+ */
+class SimpleMutex
+{
+public:
+ class Lock {
+ private:
+ SimpleMutex* mutex;
+ bool locked;
+ public:
+ Lock (SimpleMutex& mutex) : mutex (&mutex), locked (true) {
+ mutex.lock();
+ }
+ Lock (p<SimpleMutex>& mutex) : mutex (getptr(mutex)), locked (true) {
+ mutex->lock();
+ }
+ Lock (SimpleMutex* mutex) : mutex (mutex), locked (true) {
+ mutex->lock();
+ }
+ ~Lock () {
+ if (locked) mutex->unlock();
+ }
+ public:
+ void unlock () {
+ if (locked) {
+ mutex->unlock();
+ locked = false;
+ }
+ }
+ void relock () {
+ if (!locked) {
+ mutex->lock();
+ locked = true;
+ }
+ }
+ };
+private:
+#ifdef unix
+ pthread_mutex_t mutex ;
+#else
+ CRITICAL_SECTION mutex ;
+#endif
+
+public:
+ SimpleMutex() ;
+ virtual ~SimpleMutex() ;
+
+ bool trylock() ;
+ void lock() ;
+ void unlock() ;
+} ;
+
+// Optimize all methods via inline code
+
+inline SimpleMutex::SimpleMutex()
+{
+#ifdef unix
+ pthread_mutexattr_t attr ;
+ pthread_mutexattr_init(&attr) ;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) ;
+ pthread_mutex_init(&mutex, &attr) ;
+ pthread_mutexattr_destroy(&attr) ;
+#else
+ InitializeCriticalSection(&mutex) ;
+#endif
+}
+
+inline SimpleMutex::~SimpleMutex()
+{
+#ifdef unix
+ pthread_mutex_destroy(&mutex) ;
+#else
+ DeleteCriticalSection(&mutex) ;
+#endif
+}
+
+inline bool SimpleMutex::trylock()
+{
+#ifdef unix
+ int try_l = pthread_mutex_trylock(&mutex) ;
+ if (try_l == 0)
+ return true;
+ else
+ return false ;
+#else
+ return (TryEnterCriticalSection(&mutex) != 0) ;
+#endif
+}
+
+inline void SimpleMutex::lock()
+{
+#ifdef unix
+ pthread_mutex_lock(&mutex) ;
+#else
+ EnterCriticalSection(&mutex) ;
+#endif
+}
+
+inline void SimpleMutex::unlock()
+{
+#ifdef unix
+ pthread_mutex_unlock(&mutex) ;
+#else
+ LeaveCriticalSection(&mutex) ;
+#endif
+}
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_SimpleMutex_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/SimpleMutex.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Thread.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Thread.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Thread.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Thread.hpp Wed Jul 5 15:36:36 2006
@@ -1,133 +1,133 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Thread_hpp_
-#define Ppr_Thread_hpp_
-
-#ifdef unix
-#include <pthread.h>
-#else
-#include <windows.h>
-#endif
-
-#include <stdexcept>
-#include <assert.h>
-#include "ppr/util/ifr/p"
-
-
-namespace apache
-{
- namespace ppr
- {
- namespace thread
- {
- using namespace std;
- using namespace ifr;
-
-
-/**
-*/
-struct IThread : Interface
-{
- /** Creates a system thread and starts it in a joinable mode.
- @exception runtime_error is thrown if the system could
- not start the thread.
- */
- virtual void start() throw (runtime_error) = 0;
-
- /** Wait til the thread exits. This is when the run()
- method has returned or has threwn an exception.
- If an exception was threwn in the run() method,
- join() will return the threwn exception. Otherwise
- (if run() returned normally), join() will
- return NULL.
- */
- virtual p<exception> join() = 0;
-};
-
-/**
- *
- */
-class Thread : public IThread
-{
-private:
-#ifdef unix
- pthread_t threadHandle ;
-#else
- HANDLE threadHandle ;
-#endif
- /// true if thread is started.
- bool started;
- /// true if thread is joined
- bool joined;
- /// Exception threwn by run().
- p<exception> threwnException;
-public:
- /** Construct.
- */
- Thread() ;
- /** Destruct.
- */
- virtual ~Thread() ;
-
- /** Creates a system thread and starts it in a joinable mode.
- @exception runtime_error is thrown if the system could
- not start the thread.
- */
- virtual void start() throw (runtime_error);
-
- /** Wait til the thread exits. This is when the run()
- method has returned or has threwn an exception.
- If an exception was threwn in the run() method,
- join() will return the threwn exception. Otherwise
- (if run() returned normally), join() will
- return NULL.
- */
- virtual p<exception> join() ;
-public:
- /** Halts execution of the calling thread for a specified no of millisec.
-
- Note that this method is a static method that applies to the
- calling thread and not to the thread object.
- */
- static void sleep(int millisecs) ;
-protected:
- /** Derive from Thread and implement this method. This method will be
- called by the thread that is created by start().
-
- If an exception is threwn, the exception instance will be returned
- by join(). If the same exception instance (and not a copy of it)
- should be returned by join(), the implementation must throw
- a pointer to heap where the exception resides like this:
- throw p<exception> (new MyException());
- */
- virtual void run () throw (p<exception>) = 0;
-
-private:
- // Internal thread handling
-#ifdef unix
- static void* internal_thread_function (void* param);
-#else
- static unsigned long WINAPI internal_thread_function (void* param);
-#endif
-} ;
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Thread_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Thread_hpp_
+#define Ppr_Thread_hpp_
+
+#ifdef unix
+#include <pthread.h>
+#else
+#include <windows.h>
+#endif
+
+#include <stdexcept>
+#include <assert.h>
+#include "ppr/util/ifr/p"
+
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace thread
+ {
+ using namespace std;
+ using namespace ifr;
+
+
+/**
+*/
+struct IThread : Interface
+{
+ /** Creates a system thread and starts it in a joinable mode.
+ @exception runtime_error is thrown if the system could
+ not start the thread.
+ */
+ virtual void start() throw (runtime_error) = 0;
+
+ /** Wait til the thread exits. This is when the run()
+ method has returned or has threwn an exception.
+ If an exception was threwn in the run() method,
+ join() will return the threwn exception. Otherwise
+ (if run() returned normally), join() will
+ return NULL.
+ */
+ virtual p<exception> join() = 0;
+};
+
+/**
+ *
+ */
+class Thread : public IThread
+{
+private:
+#ifdef unix
+ pthread_t threadHandle ;
+#else
+ HANDLE threadHandle ;
+#endif
+ /// true if thread is started.
+ bool started;
+ /// true if thread is joined
+ bool joined;
+ /// Exception threwn by run().
+ p<exception> threwnException;
+public:
+ /** Construct.
+ */
+ Thread() ;
+ /** Destruct.
+ */
+ virtual ~Thread() ;
+
+ /** Creates a system thread and starts it in a joinable mode.
+ @exception runtime_error is thrown if the system could
+ not start the thread.
+ */
+ virtual void start() throw (runtime_error);
+
+ /** Wait til the thread exits. This is when the run()
+ method has returned or has threwn an exception.
+ If an exception was threwn in the run() method,
+ join() will return the threwn exception. Otherwise
+ (if run() returned normally), join() will
+ return NULL.
+ */
+ virtual p<exception> join() ;
+public:
+ /** Halts execution of the calling thread for a specified no of millisec.
+
+ Note that this method is a static method that applies to the
+ calling thread and not to the thread object.
+ */
+ static void sleep(int millisecs) ;
+protected:
+ /** Derive from Thread and implement this method. This method will be
+ called by the thread that is created by start().
+
+ If an exception is threwn, the exception instance will be returned
+ by join(). If the same exception instance (and not a copy of it)
+ should be returned by join(), the implementation must throw
+ a pointer to heap where the exception resides like this:
+ throw p<exception> (new MyException());
+ */
+ virtual void run () throw (p<exception>) = 0;
+
+private:
+ // Internal thread handling
+#ifdef unix
+ static void* internal_thread_function (void* param);
+#else
+ static unsigned long WINAPI internal_thread_function (void* param);
+#endif
+} ;
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Thread_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/thread/Thread.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Endian.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Endian.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Endian.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Endian.hpp Wed Jul 5 15:36:36 2006
@@ -1,92 +1,92 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Endian_hpp_
-#define Ppr_Endian_hpp_
-
-#ifdef unix
-#include <netinet/in.h>
-#else
-#include <Winsock2.h>
-#endif
-#include "ppr/util/ifr/endian"
-
-// Use these if the compiler does not support _intXX
-#ifdef NEEDS_INT_DEFINED
-#define _int16 short
-#define _int32 int
-#define _int64 long long
-#endif
-
-namespace apache
-{
- namespace ppr
- {
- namespace util
- {
-
-// Macros and helpers for endian conversion
-#ifdef IFR_IS_BIG_ENDIAN
-inline unsigned int htoni (unsigned int i) { return i; }
-inline unsigned long long htonll (unsigned long long ll) { return ll; }
-inline float htonf (float f) { return f; }
-inline double htond (double d) { return d; }
-inline unsigned int ntohi (unsigned int i) { return i; }
-inline unsigned long long ntohll (unsigned long long ll) { return ll; }
-inline float ntohf (float f) { return f; }
-inline double ntohd (double d) { return d; }
-#else // !IFR_IS_BIG_ENDIAN
-
-inline unsigned int htoni (unsigned int i) {
- return
- ( i << 24 ) & 0xFF000000 |
- ( i << 8 ) & 0x00FF0000 |
- ( i >> 8 ) & 0x0000FF00 |
- ( i >> 24 ) & 0x000000FF;
-}
-
-inline unsigned long long htonll (unsigned long long ll) {
- return
- ( ll << 56 ) & 0xFF00000000000000ULL |
- ( ll << 40 ) & 0x00FF000000000000ULL |
- ( ll << 24 ) & 0x0000FF0000000000ULL |
- ( ll << 8 ) & 0x000000FF00000000ULL |
- ( ll >> 8 ) & 0x00000000FF000000ULL |
- ( ll >> 24 ) & 0x0000000000FF0000ULL |
- ( ll >> 40 ) & 0x000000000000FF00ULL |
- ( ll >> 56 ) & 0x00000000000000FFULL;
-}
-inline float htonf (float f) {
- unsigned int i = htoni( *(unsigned int *)&f ) ;
- return *(float *)&i ;
-}
-inline double htond (double d) {
- unsigned long long ll = htonll( *(unsigned long long *)&d ) ;
- return *(double *)&ll ;
-}
-inline unsigned int ntohi (unsigned int i) { return htoni (i); }
-inline unsigned long long ntohll (unsigned long long ll) { return htonll (ll); }
-inline float ntohf (float f) { return htonf (f); }
-inline double ntohd (double d) { return htond (d); }
-
-#endif // IFR_IS_BIG_ENDIAN
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Endian_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Endian_hpp_
+#define Ppr_Endian_hpp_
+
+#ifdef unix
+#include <netinet/in.h>
+#else
+#include <Winsock2.h>
+#endif
+#include "ppr/util/ifr/endian"
+
+// Use these if the compiler does not support _intXX
+#ifdef NEEDS_INT_DEFINED
+#define _int16 short
+#define _int32 int
+#define _int64 long long
+#endif
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace util
+ {
+
+// Macros and helpers for endian conversion
+#ifdef IFR_IS_BIG_ENDIAN
+inline unsigned int htoni (unsigned int i) { return i; }
+inline unsigned long long htonll (unsigned long long ll) { return ll; }
+inline float htonf (float f) { return f; }
+inline double htond (double d) { return d; }
+inline unsigned int ntohi (unsigned int i) { return i; }
+inline unsigned long long ntohll (unsigned long long ll) { return ll; }
+inline float ntohf (float f) { return f; }
+inline double ntohd (double d) { return d; }
+#else // !IFR_IS_BIG_ENDIAN
+
+inline unsigned int htoni (unsigned int i) {
+ return
+ ( i << 24 ) & 0xFF000000 |
+ ( i << 8 ) & 0x00FF0000 |
+ ( i >> 8 ) & 0x0000FF00 |
+ ( i >> 24 ) & 0x000000FF;
+}
+
+inline unsigned long long htonll (unsigned long long ll) {
+ return
+ ( ll << 56 ) & 0xFF00000000000000ULL |
+ ( ll << 40 ) & 0x00FF000000000000ULL |
+ ( ll << 24 ) & 0x0000FF0000000000ULL |
+ ( ll << 8 ) & 0x000000FF00000000ULL |
+ ( ll >> 8 ) & 0x00000000FF000000ULL |
+ ( ll >> 24 ) & 0x0000000000FF0000ULL |
+ ( ll >> 40 ) & 0x000000000000FF00ULL |
+ ( ll >> 56 ) & 0x00000000000000FFULL;
+}
+inline float htonf (float f) {
+ unsigned int i = htoni( *(unsigned int *)&f ) ;
+ return *(float *)&i ;
+}
+inline double htond (double d) {
+ unsigned long long ll = htonll( *(unsigned long long *)&d ) ;
+ return *(double *)&ll ;
+}
+inline unsigned int ntohi (unsigned int i) { return htoni (i); }
+inline unsigned long long ntohll (unsigned long long ll) { return htonll (ll); }
+inline float ntohf (float f) { return htonf (f); }
+inline double ntohd (double d) { return htond (d); }
+
+#endif // IFR_IS_BIG_ENDIAN
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Endian_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Endian.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Guid.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Guid.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Guid.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Guid.hpp Wed Jul 5 15:36:36 2006
@@ -1,61 +1,61 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Guid_hpp_
-#define Ppr_Guid_hpp_
-
-#include <string>
-#include <ppr/util/ifr/p>
-
-#ifdef unix
-#include <sys/param.h>
-#endif
-#include <stdio.h>
-#include <assert.h>
-#if defined(WIN32) || defined(__CYGWIN__)
-#include <objbase.h>
-#else
-#include <uuid/uuid.h>
-#endif
-
-namespace apache
-{
- namespace ppr
- {
- namespace util
- {
- using namespace std;
- using namespace ifr;
-
-/*
- * Helper class that generates global unique identifiers.
- */
-class Guid
-{
-private:
- Guid() ; // This class shall never be instanciated.
-
-public:
- static unsigned char* getGuid() ;
- static p<string> getGuidString() ;
-} ;
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Guid_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Guid_hpp_
+#define Ppr_Guid_hpp_
+
+#include <string>
+#include <ppr/util/ifr/p>
+
+#ifdef unix
+#include <sys/param.h>
+#endif
+#include <stdio.h>
+#include <assert.h>
+#if defined(WIN32) || defined(__CYGWIN__)
+#include <objbase.h>
+#else
+#include <uuid/uuid.h>
+#endif
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace util
+ {
+ using namespace std;
+ using namespace ifr;
+
+/*
+ * Helper class that generates global unique identifiers.
+ */
+class Guid
+{
+private:
+ Guid() ; // This class shall never be instanciated.
+
+public:
+ static unsigned char* getGuid() ;
+ static p<string> getGuidString() ;
+} ;
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Guid_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Guid.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Hex.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Hex.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Hex.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Hex.hpp Wed Jul 5 15:36:36 2006
@@ -1,52 +1,52 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Hex_hpp_
-#define Ppr_Hex_hpp_
-
-#include <string>
-#include <ppr/util/ifr/array>
-#include <ppr/util/ifr/p>
-
-namespace apache
-{
- namespace ppr
- {
- namespace util
- {
- using namespace std;
- using namespace ifr;
-
-/*
- * Helper class with conversion routines.
- */
-class Hex
-{
-private:
- Hex() ;
-
-public:
- ~Hex() ;
-
- static p<string> toString(array<char> buffer) ;
-} ;
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Hex_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Hex_hpp_
+#define Ppr_Hex_hpp_
+
+#include <string>
+#include <ppr/util/ifr/array>
+#include <ppr/util/ifr/p>
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace util
+ {
+ using namespace std;
+ using namespace ifr;
+
+/*
+ * Helper class with conversion routines.
+ */
+class Hex
+{
+private:
+ Hex() ;
+
+public:
+ ~Hex() ;
+
+ static p<string> toString(array<char> buffer) ;
+} ;
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Hex_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Hex.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/MapItemHolder.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/MapItemHolder.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/MapItemHolder.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/MapItemHolder.hpp Wed Jul 5 15:36:36 2006
@@ -1,102 +1,102 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_MapItemHolder_hpp_
-#define Ppr_MapItemHolder_hpp_
-
-#include <string>
-#include <map>
-#include "ppr/ConversionException.hpp"
-#include "ppr/util/ifr/array"
-#include "ppr/util/ifr/p"
-
-// Turn off warning message for ignored exception specification
-#ifdef _MSC_VER
-#pragma warning( disable : 4290 )
-#endif
-
-namespace apache
-{
- namespace ppr
- {
- namespace util
- {
- using namespace apache::ppr;
- using namespace std;
- using namespace ifr;
-
-/*
- *
- */
-class MapItemHolder
-{
-private:
- void* value ;
- int type,
- flags ;
-
- const static int BIT_DESTRUCT = 0x01000000;
- const static int BIT_RELEASE_P_REFCOUNTED = BIT_DESTRUCT | 0x02000000;
- //const static int BIT_RELEASE_P_VOID = BIT_DESTRUCT | 0x04000000;
-
-public:
- const static int UNDEFINED = 0x00000000 ;
- const static int BOOLEAN = 0x00000001 ;
- const static int BYTE = 0x00000002 ;
- const static int BYTEARRAY = 0x00000004 ;
- const static int DOUBLE = 0x00000008 ;
- const static int FLOAT = 0x00000010 ;
- const static int INTEGER = 0x00000020 ;
- const static int LONG = 0x00000040 ;
- const static int SHORT = 0x00000080 ;
- const static int STRING = 0x00000100 ;
-
-public:
- MapItemHolder() ;
- MapItemHolder(const MapItemHolder& other) ;
- MapItemHolder& operator = (const MapItemHolder& other) ;
- MapItemHolder(bool value) ;
- MapItemHolder(char value) ;
- MapItemHolder(array<char> value) ;
- MapItemHolder(double value) ;
- MapItemHolder(float value) ;
- MapItemHolder(int value) ;
- MapItemHolder(long long value) ;
- MapItemHolder(short value) ;
- MapItemHolder(p<string> value) ;
- MapItemHolder(const char* value) ;
- ~MapItemHolder() ;
-
- int getType() const ;
- bool getBoolean() const throw (ConversionException) ;
- char getByte() const throw (ConversionException) ;
- array<char> getBytes() const throw (ConversionException) ;
- double getDouble() const throw (ConversionException) ;
- float getFloat() const throw (ConversionException) ;
- int getInt() const throw (ConversionException) ;
- long long getLong() const throw (ConversionException) ;
- short getShort() const throw (ConversionException) ;
- p<string> getString() const throw (ConversionException) ;
-} ;
-
-typedef map<string, MapItemHolder> PropertyMap ;
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_MapItemHolder_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_MapItemHolder_hpp_
+#define Ppr_MapItemHolder_hpp_
+
+#include <string>
+#include <map>
+#include "ppr/ConversionException.hpp"
+#include "ppr/util/ifr/array"
+#include "ppr/util/ifr/p"
+
+// Turn off warning message for ignored exception specification
+#ifdef _MSC_VER
+#pragma warning( disable : 4290 )
+#endif
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace util
+ {
+ using namespace apache::ppr;
+ using namespace std;
+ using namespace ifr;
+
+/*
+ *
+ */
+class MapItemHolder
+{
+private:
+ void* value ;
+ int type,
+ flags ;
+
+ const static int BIT_DESTRUCT = 0x01000000;
+ const static int BIT_RELEASE_P_REFCOUNTED = BIT_DESTRUCT | 0x02000000;
+ //const static int BIT_RELEASE_P_VOID = BIT_DESTRUCT | 0x04000000;
+
+public:
+ const static int UNDEFINED = 0x00000000 ;
+ const static int BOOLEAN = 0x00000001 ;
+ const static int BYTE = 0x00000002 ;
+ const static int BYTEARRAY = 0x00000004 ;
+ const static int DOUBLE = 0x00000008 ;
+ const static int FLOAT = 0x00000010 ;
+ const static int INTEGER = 0x00000020 ;
+ const static int LONG = 0x00000040 ;
+ const static int SHORT = 0x00000080 ;
+ const static int STRING = 0x00000100 ;
+
+public:
+ MapItemHolder() ;
+ MapItemHolder(const MapItemHolder& other) ;
+ MapItemHolder& operator = (const MapItemHolder& other) ;
+ MapItemHolder(bool value) ;
+ MapItemHolder(char value) ;
+ MapItemHolder(array<char> value) ;
+ MapItemHolder(double value) ;
+ MapItemHolder(float value) ;
+ MapItemHolder(int value) ;
+ MapItemHolder(long long value) ;
+ MapItemHolder(short value) ;
+ MapItemHolder(p<string> value) ;
+ MapItemHolder(const char* value) ;
+ ~MapItemHolder() ;
+
+ int getType() const ;
+ bool getBoolean() const throw (ConversionException) ;
+ char getByte() const throw (ConversionException) ;
+ array<char> getBytes() const throw (ConversionException) ;
+ double getDouble() const throw (ConversionException) ;
+ float getFloat() const throw (ConversionException) ;
+ int getInt() const throw (ConversionException) ;
+ long long getLong() const throw (ConversionException) ;
+ short getShort() const throw (ConversionException) ;
+ p<string> getString() const throw (ConversionException) ;
+} ;
+
+typedef map<string, MapItemHolder> PropertyMap ;
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_MapItemHolder_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/MapItemHolder.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Time.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Time.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Time.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Time.hpp Wed Jul 5 15:36:36 2006
@@ -1,53 +1,53 @@
-/*
- * Copyright 2006 The Apache Software Foundation or its licensors, as
- * applicable.
- *
- * 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.
- */
-#ifndef Ppr_Time_hpp_
-#define Ppr_Time_hpp_
-
-#ifdef unix
-#include <sys/time.h>
-#else
-#include <time.h>
-#include <sys/timeb.h>
-#endif
-
-namespace apache
-{
- namespace ppr
- {
- namespace util
- {
-
-/*
- * Helper class with time functions.
- */
-class Time
-{
-private:
- Time() ;
-
-public:
- ~Time() ;
-
- static long long getCurrentTimeMillis() ;
-} ;
-
-/* namespace */
- }
- }
-}
-
-#endif /*Ppr_Time_hpp_*/
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * 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.
+ */
+#ifndef Ppr_Time_hpp_
+#define Ppr_Time_hpp_
+
+#ifdef unix
+#include <sys/time.h>
+#else
+#include <time.h>
+#include <sys/timeb.h>
+#endif
+
+namespace apache
+{
+ namespace ppr
+ {
+ namespace util
+ {
+
+/*
+ * Helper class with time functions.
+ */
+class Time
+{
+private:
+ Time() ;
+
+public:
+ ~Time() ;
+
+ static long long getCurrentTimeMillis() ;
+} ;
+
+/* namespace */
+ }
+ }
+}
+
+#endif /*Ppr_Time_hpp_*/
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/Time.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/array.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/atomic.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/cloneable.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/colltraits.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/endian.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/endian.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/endian.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/endian.hpp Wed Jul 5 15:36:36 2006
@@ -28,57 +28,57 @@
// First try - check __BYTE_ORDER macro
#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
-# ifdef unix
-# include <sys/param.h> // defines __BYTE_ORDER (or sometimes __LITTLE_ENDIAN or __BIG_ENDIAN or __PDP_ENDIAN)
-# endif
-# if defined (__GLIBC__)
-# include <endian.h> // Can also define __BYTE_ORDER
-# endif
-# ifdef __BYTE_ORDER
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define IFR_IS_LITTLE_ENDIAN
-# elif __BYTE_ORDER == __BIG_ENDIAN
-# define IFR_IS_BIG_ENDIAN
-# elif __BYTE_ORDER == __PDP_ENDIAN
-# define IFR_IS_PDP_ENDIAN
-# endif
-# endif
-#endif
-
+# ifdef unix
+# include <sys/param.h> // defines __BYTE_ORDER (or sometimes __LITTLE_ENDIAN or __BIG_ENDIAN or __PDP_ENDIAN)
+# endif
+# if defined (__GLIBC__)
+# include <endian.h> // Can also define __BYTE_ORDER
+# endif
+# ifdef __BYTE_ORDER
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+# define IFR_IS_LITTLE_ENDIAN
+# elif __BYTE_ORDER == __BIG_ENDIAN
+# define IFR_IS_BIG_ENDIAN
+# elif __BYTE_ORDER == __PDP_ENDIAN
+# define IFR_IS_PDP_ENDIAN
+# endif
+# endif
+#endif
+
// Second try - check __LITTLE_ENDIAN or __BIG_ENDIAN
-#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
-# if defined __LITTLE_ENDIAN
-# define IFR_IS_LITTLE_ENDIAN
-# elif defined __BIG_ENDIAN
-# define IFR_IS_BIG_ENDIAN
-# elif defined __PDP_ENDIAN
-# define IFR_IS_PDP_ENDIAN
-# endif
-#endif
-
-// Last try - find out from well-known processor types using little endian
-#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
-# if defined (i386) || defined (__i386__) \
- || defined (_M_IX86) || defined (vax) \
- || defined (__alpha) || defined (__alpha__) \
- || defined (__x86_64__) || defined (__ia64) \
- || defined (__ia64__) || defined (__amd64__) \
- || defined (_M_IX86) || defined (_M_IA64) \
- || defined (_M_ALPHA)
-# define IFR_IS_LITTLE_ENDIAN
-# else
-# if defined (__sparc) || defined(__sparc__) \
- || defined(_POWER) || defined(__powerpc__) \
- || defined(__ppc__) || defined(__hppa) \
- || defined(_MIPSEB) || defined(_POWER) \
- || defined(__s390__)
-# define IFR_IS_BIG_ENDIAN
-# endif
-# endif
-#endif
+#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
+# if defined __LITTLE_ENDIAN
+# define IFR_IS_LITTLE_ENDIAN
+# elif defined __BIG_ENDIAN
+# define IFR_IS_BIG_ENDIAN
+# elif defined __PDP_ENDIAN
+# define IFR_IS_PDP_ENDIAN
+# endif
+#endif
+
+// Last try - find out from well-known processor types using little endian
+#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
+# if defined (i386) || defined (__i386__) \
+ || defined (_M_IX86) || defined (vax) \
+ || defined (__alpha) || defined (__alpha__) \
+ || defined (__x86_64__) || defined (__ia64) \
+ || defined (__ia64__) || defined (__amd64__) \
+ || defined (_M_IX86) || defined (_M_IA64) \
+ || defined (_M_ALPHA)
+# define IFR_IS_LITTLE_ENDIAN
+# else
+# if defined (__sparc) || defined(__sparc__) \
+ || defined(_POWER) || defined(__powerpc__) \
+ || defined(__ppc__) || defined(__hppa) \
+ || defined(_MIPSEB) || defined(_POWER) \
+ || defined(__s390__)
+# define IFR_IS_BIG_ENDIAN
+# endif
+# endif
+#endif
// Show error if we still don't know endianess
-#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
-#error "Could not determine endianess of your processor type"
-#endif
-
+#if !defined IFR_IS_BIG_ENDIAN && !defined IFR_IS_LITTLE_ENDIAN && !defined IFR_IS_DPD_ENDIAN
+#error "Could not determine endianess of your processor type"
+#endif
+
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/endian.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/namespace.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/namespace.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/namespace.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/namespace.hpp Wed Jul 5 15:36:36 2006
@@ -1,35 +1,35 @@
-/*
- * Copyright (c) 2005-2006, David Fahlander
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer. Redistributions in binary
- * form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided
- * with the distribution. Neither the name of slurk.org nor the names
- * of its contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef IFR_V1_NAMESPACE_HPP_
-#define IFR_V1_NAMESPACE_HPP_
-
-namespace ifr {
- using namespace v1;
-}
-
-#endif // IFR_V1_NAMESPACE_HPP_
+/*
+ * Copyright (c) 2005-2006, David Fahlander
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. Neither the name of slurk.org nor the names
+ * of its contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef IFR_V1_NAMESPACE_HPP_
+#define IFR_V1_NAMESPACE_HPP_
+
+namespace ifr {
+ using namespace v1;
+}
+
+#endif // IFR_V1_NAMESPACE_HPP_
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/namespace.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/p.hpp
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/p.hpp?rev=419371&r1=419370&r2=419371&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/p.hpp (original)
+++ incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/p.hpp Wed Jul 5 15:36:36 2006
@@ -264,8 +264,8 @@
/** Checks that static cast is valid and returns the ptr difference
between them.
*/
- template <typename T, typename DerivedItem> struct ptr_diff {
- static int value () {
+ template <typename T, typename DerivedItem> struct ptr_diff {
+ static int value () {
return
(int) (reinterpret_cast<const char*> (
static_cast<T*> (
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/p.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/activemq/trunk/openwire-cpp/src/main/cpp/ppr/util/ifr/v1/platform.hpp
------------------------------------------------------------------------------
svn:eol-style = native