You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/06/01 15:12:37 UTC

svn commit: r543481 - in /activemq/activemq-cpp/trunk/src/decaf/src: main/ main/decaf/io/ main/decaf/lang/ main/decaf/lang/exceptions/ main/decaf/net/ main/decaf/util/ main/decaf/util/concurrent/ main/decaf/util/logging/ test/decaf/io/ test/decaf/lang/...

Author: tabish
Date: Fri Jun  1 06:12:33 2007
New Revision: 543481

URL: http://svn.apache.org/viewvc?view=rev&rev=543481
Log:
http://issues.apache.org/activemq/browse/AMQCPP-103

Building Decaf lib

Added:
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.cpp
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.h
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/io/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/lang/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/lang/exceptions/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/net/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/concurrent/
    activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/logging/
Modified:
    activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BlockingByteArrayInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Closeable.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/EOFException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/IOException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/InputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/OutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Reader.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/StandardErrorOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Writer.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Boolean.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Character.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Exception.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Integer.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Long.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Math.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Number.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Runnable.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Thread.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Throwable.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalArgumentException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalMonitorStateException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalStateException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IndexOutOfBoundsException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InterruptedException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InvalidStateException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NoSuchElementException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NullPointerException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/RuntimeException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/UnsupportedOperationException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/BufferedSocket.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/ServerSocket.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/Socket.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketError.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketException.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketInputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketOutputStream.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/TcpSocket.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Date.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Properties.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Lock.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Synchronizable.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/ConsoleHandler.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Filter.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Formatter.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Handler.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogManager.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogRecord.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogWriter.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Logger.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/MarkBlockLogger.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/PropertiesChangeListener.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleFormatter.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleLogger.h
    activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/StreamHandler.h

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am Fri Jun  1 06:12:33 2007
@@ -34,6 +34,7 @@
    decaf/util/concurrent/Mutex.cpp \
    decaf/util/concurrent/CountDownLatch.cpp \
    decaf/util/Date.cpp \
+   decaf/util/StringTokenizer.cpp \
    decaf/util/logging/LoggerHierarchy.cpp \
    decaf/util/logging/Logger.cpp \
    decaf/util/logging/LogWriter.cpp \
@@ -94,6 +95,7 @@
    decaf/util/concurrent/Mutex.h \
    decaf/util/Date.h \
    decaf/util/Properties.h \
+   decaf/util/StringTokenizer.h \
    decaf/util/logging/Handler.h \
    decaf/util/logging/Logger.h \
    decaf/util/logging/LoggerCommon.h \

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BlockingByteArrayInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BlockingByteArrayInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BlockingByteArrayInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BlockingByteArrayInputStream.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
      * block until the requested data becomes available in the internal
      * buffer via a call to setByteArray.
      */
-    class BlockingByteArrayInputStream : public InputStream
+    class DECAF_API BlockingByteArrayInputStream : public InputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedInputStream.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
      * in order to reduce the number of io operations on the
      * input stream.
      */
-    class BufferedInputStream : public FilterInputStream
+    class DECAF_API BufferedInputStream : public FilterInputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/BufferedOutputStream.h Fri Jun  1 06:12:33 2007
@@ -28,7 +28,7 @@
      * Wrapper around another output stream that buffers
      * output before writing to the target output stream.
      */
-    class BufferedOutputStream : public FilterOutputStream
+    class DECAF_API BufferedOutputStream : public FilterOutputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayInputStream.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
      * Simple implementation of InputStream that wraps around
      * a std::vector<unsigned char>.
      */
-    class ByteArrayInputStream : public InputStream
+    class DECAF_API ByteArrayInputStream : public InputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/ByteArrayOutputStream.h Fri Jun  1 06:12:33 2007
@@ -25,7 +25,7 @@
 namespace decaf{
 namespace io{
 
-    class ByteArrayOutputStream : public OutputStream
+    class DECAF_API ByteArrayOutputStream : public OutputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Closeable.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Closeable.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Closeable.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Closeable.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /**
      * Interface for a class that implements the close method.
      */
-    class Closeable{
+    class DECAF_API Closeable{
 
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataInputStream.h Fri Jun  1 06:12:33 2007
@@ -40,7 +40,7 @@
      *
      *  DataInputStream os = new DataInputStream( new InputStream(), true )
      */
-    class DataInputStream : public FilterInputStream
+    class DECAF_API DataInputStream : public FilterInputStream
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/DataOutputStream.h Fri Jun  1 06:12:33 2007
@@ -28,7 +28,7 @@
      * types to an output stream in a portable way. An application can then
      * use a data input stream to read the data back in.
      */
-    class DataOutputStream : public FilterOutputStream
+    class DECAF_API DataOutputStream : public FilterOutputStream
     {
     protected:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/EOFException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/EOFException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/EOFException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/EOFException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Signals that an End of File exception has occurred.
      */
-    class EOFException : public io::IOException
+    class DECAF_API EOFException : public io::IOException
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterInputStream.h Fri Jun  1 06:12:33 2007
@@ -34,7 +34,7 @@
      * FilterInputStream  may further override some of these methods and may
      * also provide additional methods and fields.
      */
-    class FilterInputStream : public InputStream
+    class DECAF_API FilterInputStream : public InputStream
     {
     protected:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/FilterOutputStream.h Fri Jun  1 06:12:33 2007
@@ -45,7 +45,7 @@
      *
      *  DataOutputStream os = new DataOutputStream( new OutputStream(), true )
      */
-    class FilterOutputStream : public OutputStream
+    class DECAF_API FilterOutputStream : public OutputStream
     {
     protected:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/IOException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/IOException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/IOException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/IOException.h Fri Jun  1 06:12:33 2007
@@ -25,7 +25,7 @@
     /*
      * Signals that an I/O exception of some sort has occurred.
      */
-    class IOException : public lang::Exception
+    class DECAF_API IOException : public lang::Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/InputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/InputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/InputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/InputStream.h Fri Jun  1 06:12:33 2007
@@ -22,6 +22,7 @@
 #include <decaf/io/Closeable.h>
 #include <decaf/util/concurrent/Synchronizable.h>
 #include <decaf/lang/exceptions/UnsupportedOperationException.h>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace io{
@@ -29,8 +30,8 @@
     /**
      * Base interface for an input stream.
      */
-    class InputStream : public Closeable,
-                        public util::concurrent::Synchronizable
+    class DECAF_API InputStream : public Closeable,
+                                  public util::concurrent::Synchronizable
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/OutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/OutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/OutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/OutputStream.h Fri Jun  1 06:12:33 2007
@@ -21,6 +21,7 @@
 #include <decaf/io/Closeable.h>
 #include <decaf/io/IOException.h>
 #include <decaf/util/concurrent/Synchronizable.h>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace io{
@@ -28,8 +29,8 @@
     /**
      * Base interface for an output stream.
      */
-    class OutputStream : public Closeable,
-                         public util::concurrent::Synchronizable
+    class DECAF_API OutputStream : public Closeable,
+                                   public util::concurrent::Synchronizable
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Reader.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Reader.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Reader.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Reader.h Fri Jun  1 06:12:33 2007
@@ -28,7 +28,7 @@
      * Reader interface that wraps around an input stream and provides
      * an interface for extracting the data from the input stream.
      */
-    class Reader
+    class DECAF_API Reader
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/StandardErrorOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/StandardErrorOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/StandardErrorOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/StandardErrorOutputStream.h Fri Jun  1 06:12:33 2007
@@ -25,7 +25,7 @@
 namespace decaf{
 namespace io{
 
-    class StandardErrorOutputStream : public OutputStream
+    class DECAF_API StandardErrorOutputStream : public OutputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Writer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Writer.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Writer.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/io/Writer.h Fri Jun  1 06:12:33 2007
@@ -28,7 +28,7 @@
      * Writer interface for an object that wraps around an output
      * stream
      */
-    class Writer
+    class DECAF_API Writer
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Boolean.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Boolean.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Boolean.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Boolean.h Fri Jun  1 06:12:33 2007
@@ -23,7 +23,7 @@
 namespace decaf{
 namespace lang{
 
-    class Boolean : public Number
+    class DECAF_API Boolean : public Number
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Character.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Character.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Character.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Character.h Fri Jun  1 06:12:33 2007
@@ -18,10 +18,12 @@
 #ifndef _DECAF_LANG_CHARACTER_H_
 #define _DECAF_LANG_CHARACTER_H_
 
+#include <decaf/util/Config.h>
+
 namespace decaf{
 namespace lang{
 
-    class Character{
+    class DECAF_API Character{
 
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Exception.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Exception.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Exception.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Exception.h Fri Jun  1 06:12:33 2007
@@ -19,6 +19,7 @@
 
 #include <decaf/lang/Throwable.h>
 #include <decaf/lang/exceptions/ExceptionDefines.h>
+#include <decaf/util/Config.h>
 #include <stdarg.h>
 #include <sstream>
 
@@ -28,7 +29,7 @@
     /*
      * Base class for all exceptions.
      */
-    class Exception : public Throwable
+    class DECAF_API Exception : public Throwable
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Integer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Integer.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Integer.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Integer.h Fri Jun  1 06:12:33 2007
@@ -23,7 +23,7 @@
 namespace decaf{
 namespace lang{
 
-    class Integer : public Number
+    class DECAF_API Integer : public Number
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Long.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Long.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Long.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Long.h Fri Jun  1 06:12:33 2007
@@ -23,7 +23,7 @@
 namespace decaf{
 namespace lang{
 
-    class Long : public Number{
+    class DECAF_API Long : public Number{
     public:
 
         Long() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Math.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Math.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Math.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Math.h Fri Jun  1 06:12:33 2007
@@ -29,7 +29,7 @@
      * numeric operations such as the elementary exponential, logarithm,
      * square root, and trigonometric functions.
      */
-    class Math
+    class DECAF_API Math
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Number.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Number.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Number.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Number.h Fri Jun  1 06:12:33 2007
@@ -19,6 +19,7 @@
 #define _DECAF_LANG_NUMBER_H_
 
 #include <sstream>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace lang{
@@ -30,7 +31,7 @@
      * Subclasses of Number must provide methods to convert the represented
      * numeric value to byte, double, float, int, long, and short.
      */
-    class Number {
+    class DECAF_API Number {
     public:
 
         virtual ~Number() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Runnable.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Runnable.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Runnable.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Runnable.h Fri Jun  1 06:12:33 2007
@@ -24,7 +24,7 @@
      * Interface for a runnable object - defines a task
      * that can be run by a thread.
      */
-    class Runnable{
+    class DECAF_API Runnable{
     public:
 
         virtual ~Runnable(){}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Thread.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Thread.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Thread.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Thread.h Fri Jun  1 06:12:33 2007
@@ -37,7 +37,7 @@
      * implement the run method, or this class can be used as is with
      * a provided Runnable delegate.
      */
-    class Thread : public Runnable
+    class DECAF_API Thread : public Runnable
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Throwable.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Throwable.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Throwable.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/Throwable.h Fri Jun  1 06:12:33 2007
@@ -24,13 +24,15 @@
 #include <iostream>
 #include <exception>
 
+#include <decaf/util/Config.h>
+
 namespace decaf{
 namespace lang{
 
     /**
      * This class represents an error that has occurred.
      */
-    class Throwable : public std::exception {
+    class DECAF_API Throwable : public std::exception {
 
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalArgumentException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalArgumentException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalArgumentException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalArgumentException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Thrown when an illegal argument was passed into a method.
      */
-    class IllegalArgumentException : public Exception
+    class DECAF_API IllegalArgumentException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalMonitorStateException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalMonitorStateException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalMonitorStateException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalMonitorStateException.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
      * Thrown when an error occurs from calling a method from syncronizable
      * and the caller doesn't hold a lock on the object.
      */
-    class IllegalMonitorStateException : public Exception
+    class DECAF_API IllegalMonitorStateException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalStateException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalStateException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalStateException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IllegalStateException.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
      * Thrown when an error occurs from calling a method from syncronizable
      * and the caller doesn't hold a lock on the object.
      */
-    class IllegalStateException : public Exception
+    class DECAF_API IllegalStateException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IndexOutOfBoundsException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IndexOutOfBoundsException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IndexOutOfBoundsException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/IndexOutOfBoundsException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Thrown when an illegal argument was passed into a method.
      */
-    class IndexOutOfBoundsException : public Exception
+    class DECAF_API IndexOutOfBoundsException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InterruptedException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InterruptedException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InterruptedException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InterruptedException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Thrown when an Thread is interrupted during a wait.
      */
-    class InterruptedException : public Exception
+    class DECAF_API InterruptedException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InvalidStateException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InvalidStateException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InvalidStateException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/InvalidStateException.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
      * Thrown when an operation is requested, but the state of the object
      * servicing the request is not correct for that request.
      */
-    class InvalidStateException : public Exception
+    class DECAF_API InvalidStateException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NoSuchElementException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NoSuchElementException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NoSuchElementException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NoSuchElementException.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
      * Thrown from an operation that attempts to access some element that does
      * not exist.
      */
-    class NoSuchElementException : public Exception
+    class DECAF_API NoSuchElementException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NullPointerException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NullPointerException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NullPointerException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/NullPointerException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Thrown when an error occurs that involves a pointer being NULL
      */
-    class NullPointerException : public Exception
+    class DECAF_API NullPointerException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/RuntimeException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/RuntimeException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/RuntimeException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/RuntimeException.h Fri Jun  1 06:12:33 2007
@@ -28,7 +28,7 @@
      * This could be a memory allocation exception or some other generally
      * unrecoverable exception.
      */
-    class RuntimeException : public Exception
+    class DECAF_API RuntimeException : public Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/UnsupportedOperationException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/UnsupportedOperationException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/UnsupportedOperationException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/lang/exceptions/UnsupportedOperationException.h Fri Jun  1 06:12:33 2007
@@ -26,7 +26,7 @@
     /*
      * Thrown when an unsupported method is called.
      */
-    class UnsupportedOperationException : public lang::Exception
+    class DECAF_API UnsupportedOperationException : public lang::Exception
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/BufferedSocket.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/BufferedSocket.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/BufferedSocket.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/BufferedSocket.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
      * object and provides Buffered input and Output Streams to improce
      * the efficiency of the reads and writes.
      */
-    class BufferedSocket : public Socket
+    class DECAF_API BufferedSocket : public Socket
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/ServerSocket.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/ServerSocket.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/ServerSocket.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/ServerSocket.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
     /**
      * A server socket class (for testing purposes).
      */
-    class ServerSocket
+    class DECAF_API ServerSocket
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/Socket.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/Socket.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/Socket.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/Socket.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
 namespace decaf{
 namespace net{
 
-    class Socket : public decaf::io::Closeable
+    class DECAF_API Socket : public decaf::io::Closeable
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketError.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketError.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketError.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketError.h Fri Jun  1 06:12:33 2007
@@ -19,6 +19,7 @@
 #define _DECAF_NET_SOCKETERROR_H_
 
 #include <string>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace net{
@@ -27,7 +28,7 @@
      * Static utility class to simplify handling of error codes
      * for socket operations.
      */
-    class SocketError {
+    class DECAF_API SocketError {
     public:
 
         /**

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketException.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketException.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketException.h Fri Jun  1 06:12:33 2007
@@ -25,7 +25,7 @@
     /**
      * Exception for errors when manipulating sockets.
      */
-    class SocketException : public io::IOException
+    class DECAF_API SocketException : public io::IOException
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketInputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketInputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketInputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketInputStream.h Fri Jun  1 06:12:33 2007
@@ -30,7 +30,7 @@
      * Input stream for performing reads on a socket.  This
      * class will only work properly for blocking sockets.
      */
-    class SocketInputStream : public io::InputStream
+    class DECAF_API SocketInputStream : public io::InputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketOutputStream.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketOutputStream.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketOutputStream.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/SocketOutputStream.h Fri Jun  1 06:12:33 2007
@@ -29,7 +29,7 @@
      * Output stream for performing write operations
      * on a socket.
      */
-    class SocketOutputStream : public io::OutputStream
+    class DECAF_API SocketOutputStream : public io::OutputStream
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/TcpSocket.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/TcpSocket.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/TcpSocket.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/net/TcpSocket.h Fri Jun  1 06:12:33 2007
@@ -34,7 +34,7 @@
     /**
      * Platform-independent implementation of the socket interface.
      */
-    class TcpSocket : public Socket
+    class DECAF_API TcpSocket : public Socket
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Date.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Date.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Date.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Date.h Fri Jun  1 06:12:33 2007
@@ -18,6 +18,8 @@
 #ifndef _DECAF_UTIL_DATE_H_
 #define _DECAF_UTIL_DATE_H_
 
+#include <decaf/util/Config.h>
+
 namespace decaf{
 namespace util{
 
@@ -25,7 +27,7 @@
      * Wrapper class around a time value in milliseconds.  This
      * class is comparable to Java's java.util.Date class.
      */
-    class Date
+    class DECAF_API Date
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Properties.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Properties.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Properties.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Properties.h Fri Jun  1 06:12:33 2007
@@ -23,13 +23,15 @@
 #include <string>
 #include <sstream>
 
+#include <decaf/util/Config.h>
+
 namespace decaf{
 namespace util{
 
     /**
      * Java-like properties class for mapping string names to string values.
      */
-    class Properties{
+    class DECAF_API Properties{
     private:
 
         std::map< std::string, std::string > properties;

Added: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.cpp?view=auto&rev=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.cpp (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.cpp Fri Jun  1 06:12:33 2007
@@ -0,0 +1,172 @@
+/*
+ * 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 "StringTokenizer.h"
+
+using namespace std;
+using namespace decaf;
+using namespace decaf::util;
+using namespace decaf::lang;
+using namespace decaf::lang::exceptions;
+
+////////////////////////////////////////////////////////////////////////////////
+StringTokenizer::StringTokenizer( const std::string& str,
+                                  const std::string& delim,
+                                  bool returnDelims )
+{
+    // store off the data
+    this->str = str;
+    this->delim = delim;
+    this->returnDelims = returnDelims;
+
+    // Start and the beginning
+    pos = 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+StringTokenizer::~StringTokenizer(void)
+{
+}
+
+////////////////////////////////////////////////////////////////////////////////
+int StringTokenizer::countTokens(void) const
+{
+    int count = 0;
+    string::size_type localPos = pos;
+    string::size_type lastPos  = pos;
+
+    while(localPos != string::npos)
+    {
+        if(returnDelims && str.find_first_of(delim, localPos) == localPos)
+        {
+            count += 1;
+            localPos += 1;
+
+            continue;
+        }
+
+        // Find first token by spanning the fist non-delimiter, to the
+        // next delimiter, skipping any delimiters that are at the curret
+        // location.
+        lastPos  = str.find_first_not_of(delim, localPos);
+        localPos = str.find_first_of(delim, lastPos);
+
+        if(lastPos != string::npos)
+        {
+            count++;
+        }
+    }
+
+    return count;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool StringTokenizer::hasMoreTokens(void) const
+{
+    string::size_type nextpos =
+        returnDelims ? str.find_first_of(delim, pos) :
+                       str.find_first_not_of(delim, pos);
+
+    return (nextpos != string::npos);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string StringTokenizer::nextToken(void)
+   throw ( lang::exceptions::NoSuchElementException )
+{
+    if(pos == string::npos)
+    {
+        throw NoSuchElementException(
+            __FILE__, __LINE__,
+            "StringTokenizer::nextToken - No more Tokens available");
+    }
+
+    if(returnDelims)
+    {
+        // if char at current pos is a delim return it and advance pos
+        if(str.find_first_of(delim, pos) == pos)
+        {
+            return str.substr(pos++, 1);
+        }
+    }
+
+    // Skip delimiters at beginning.
+    string::size_type lastPos = str.find_first_not_of(delim, pos);
+
+    // Find the next delimiter in the string, the charactors in between
+    // will be the token to return.  If this returns string::npos then
+    // there are no more delimiters in the string.
+    pos = str.find_first_of(delim, lastPos);
+
+    if(string::npos != lastPos)
+    {
+        // Found a token, count it, if the pos of the next delim is npos
+        // then we set length to copy to npos so that all the remianing
+        // portion of the string is copied, otherwise we set it to the
+        return str.substr( lastPos,
+                           pos == string::npos ? pos : pos-lastPos );
+    }
+    else
+    {
+        throw NoSuchElementException(
+            __FILE__, __LINE__,
+            "StringTokenizer::nextToken - No more Tokens available");
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string StringTokenizer::nextToken( const std::string& delim )
+    throw ( lang::exceptions::NoSuchElementException )
+{
+    this->delim = delim;
+
+    return nextToken();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+unsigned int StringTokenizer::toArray( std::vector<std::string>& array )
+{
+    int count = 0;
+
+    while(hasMoreTokens())
+    {
+        array.push_back( nextToken() );
+        count++;
+    }
+
+    return count;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void StringTokenizer::reset( const std::string& str,
+                             const std::string& delim,
+                             bool returnDelims )
+{
+    if(str != "")
+    {
+        this->str = str;
+    }
+
+    if(delim != "")
+    {
+        this->delim = delim;
+    }
+
+    this->returnDelims = returnDelims;
+
+    // Begin at the Beginning
+    this->pos = 0;
+}

Added: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.h?view=auto&rev=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.h (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/StringTokenizer.h Fri Jun  1 06:12:33 2007
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ */
+#ifndef _DECAF_UTIL_STRINGTOKENIZER_H_
+#define _DECAF_UTIL_STRINGTOKENIZER_H_
+
+#include <decaf/lang/exceptions/NoSuchElementException.h>
+#include <decaf/util/Config.h>
+#include <string>
+
+namespace decaf{
+namespace util{
+
+    class DECAF_API StringTokenizer
+    {
+    private:
+
+        // String to tokenize
+        std::string str;
+
+        // The delimiter string
+        std::string delim;
+
+        // The current pos in the string
+        std::string::size_type pos;
+
+        // Are we returning delimiters
+        bool returnDelims;
+
+    public:
+
+        /**
+         * Constructs a string tokenizer for the specified string. All
+         * characters in the delim argument are the delimiters for separating
+         * tokens.
+         *
+         * If the returnDelims flag is true, then the delimiter characters are
+         * also returned as tokens. Each delimiter is returned as a string of
+         * length one. If the flag is false, the delimiter characters are
+         * skipped and only serve as separators between tokens.
+         *
+         * Note that if delim is "", this constructor does not throw an
+         * exception. However, trying to invoke other methods on the resulting
+         * StringTokenizer may result in an Exception.
+         * @param string to tokenize
+         * @param String containing the delimiters
+         * @param boolean indicating if the delimiters are returned as tokens
+         */
+        StringTokenizer( const std::string& str,
+                         const std::string& delim = " \t\n\r\f",
+                         bool returnDelims = false);
+
+        virtual ~StringTokenizer(void);
+
+        /**
+         * Calculates the number of times that this tokenizer's nextToken
+         * method can be called before it generates an exception. The current
+         * position is not advanced.
+         * @return Count of remaining tokens
+         */
+        virtual int countTokens(void) const;
+
+        /**
+         * Tests if there are more tokens available from this tokenizer's
+         * string.
+         * @return true if there are more tokens remaining
+         */
+        virtual bool hasMoreTokens(void) const;
+
+        /**
+         * Returns the next token from this string tokenizer.
+         * @return string value of next token
+         * @thorws NoSuchElementException
+         */
+        virtual std::string nextToken(void)
+            throw ( lang::exceptions::NoSuchElementException );
+
+        /**
+         * Returns the next token in this string tokenizer's string. First,
+         * the set of characters considered to be delimiters by this
+         * StringTokenizer object is changed to be the characters in the
+         * string delim. Then the next token in the string after the current
+         * position is returned. The current position is advanced beyond the
+         * recognized token. The new delimiter set remains the default after
+         * this call.
+         * @param string containing the new set of delimiters
+         * @return next string in the token list
+         * @throw NoSuchElementException
+         */
+        virtual std::string nextToken(const std::string& delim)
+            throw ( lang::exceptions::NoSuchElementException );
+
+        /**
+         * Grab all remaining tokens in the String and return them
+         * in the vector that is passed in by reference.
+         * @param vector to place token strings in
+         * @return number of string placed into the vector
+         */
+        virtual unsigned int toArray( std::vector< std::string >& array );
+
+        /**
+         * Resets the Tokenizer's position in the String to the Beginning
+         * calls to countToken and nextToken now start back at the beginning.
+         * This allows this object to be reused, the caller need not create
+         * a new instance every time a String needs tokenizing.
+         * If set the string param will reset the string that this Tokenizer
+         * is working on.  If set to "" no change is made.
+         * If set the delim param will reset the string that this Tokenizer
+         * is using to tokenizer the string.  If set to "", no change is made
+         * If set the return Delims will set if this Tokenizer will return
+         * delimiters as tokens. Defaults to false.
+         * @param New String to tokenize or "", defaults to ""
+         * @param New Delimiter String to use or "", defaults to ""
+         * @param Should the Tokenizer return delimiters as Tokens, default false
+         */
+        virtual void reset( const std::string& str = "",
+                            const std::string& delim = "",
+                            bool returnDelims = false);
+
+    };
+
+}}
+
+#endif /*_DECAF_UTIL_STRINGTOKENIZER_H_*/

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Lock.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Lock.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Lock.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Lock.h Fri Jun  1 06:12:33 2007
@@ -20,6 +20,7 @@
 
 #include <decaf/lang/Exception.h>
 #include <decaf/util/concurrent/Synchronizable.h>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace util{

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Synchronizable.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Synchronizable.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Synchronizable.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/concurrent/Synchronizable.h Fri Jun  1 06:12:33 2007
@@ -29,7 +29,7 @@
      * The interface for all synchronizable objects (that is, objects
      * that can be locked and unlocked).
      */
-    class Synchronizable
+    class DECAF_API Synchronizable
     {
     public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/ConsoleHandler.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/ConsoleHandler.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/ConsoleHandler.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/ConsoleHandler.h Fri Jun  1 06:12:33 2007
@@ -40,7 +40,7 @@
      * ConsoleHandler.formatter specifies the name of a Formatter class to
      *  use (defaults to SimpleFormatter).
      */
-    class ConsoleHandler : public StreamHandler {
+    class DECAF_API ConsoleHandler : public StreamHandler {
     private:
 
         // The Standard Error Stream to log to

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Filter.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Filter.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Filter.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Filter.h Fri Jun  1 06:12:33 2007
@@ -32,7 +32,7 @@
      * given LogRecord should be published. If isLoggable returns false,
      * the LogRecord will be discarded.
      */
-    class Filter {
+    class DECAF_API Filter {
     public:
 
         virtual ~Filter() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Formatter.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Formatter.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Formatter.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Formatter.h Fri Jun  1 06:12:33 2007
@@ -31,7 +31,7 @@
      * tail strings around a set of formatted records. The getHeader and
      * getTail methods can be used to obtain these strings.
      */
-    class Formatter {
+    class DECAF_API Formatter {
     public:
 
         virtual ~Formatter() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Handler.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Handler.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Handler.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Handler.h Fri Jun  1 06:12:33 2007
@@ -40,7 +40,7 @@
      * values for the Handler's Filter, Formatter, and Level. See the
      * specific documentation for each concrete Handler class.
      */
-    class Handler : public io::Closeable {
+    class DECAF_API Handler : public io::Closeable {
     public:
 
         virtual ~Handler() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogManager.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogManager.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogManager.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogManager.h Fri Jun  1 06:12:33 2007
@@ -24,6 +24,7 @@
 
 #include <decaf/util/Properties.h>
 #include <decaf/util/concurrent/Mutex.h>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace util{
@@ -127,7 +128,7 @@
      *
      * All methods on the LogManager object are multi-thread safe.
      */
-    class LogManager {
+    class DECAF_API LogManager {
     private:
 
         // Change listener on this class's Properties

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogRecord.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogRecord.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogRecord.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogRecord.h Fri Jun  1 06:12:33 2007
@@ -18,6 +18,7 @@
 #define _DECAF_UTIL_LOGGING_LOGRECORD_H_
 
 #include <decaf/util/logging/LoggerCommon.h>
+#include <decaf/util/Config.h>
 
 #include <string>
 
@@ -25,7 +26,7 @@
 namespace util{
 namespace logging{
 
-    class LogRecord
+    class DECAF_API LogRecord
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogWriter.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogWriter.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogWriter.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/LogWriter.h Fri Jun  1 06:12:33 2007
@@ -23,7 +23,7 @@
 namespace util{
 namespace logging{
 
-   class LogWriter
+   class DECAF_API LogWriter
    {
    public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Logger.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Logger.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Logger.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/Logger.h Fri Jun  1 06:12:33 2007
@@ -20,6 +20,7 @@
 #include <decaf/util/logging/LoggerCommon.h>
 #include <decaf/util/logging/LogRecord.h>
 #include <decaf/lang/exceptions/IllegalArgumentException.h>
+#include <decaf/util/Config.h>
 
 #include <list>
 #include <string>
@@ -32,7 +33,7 @@
     class Handler;
     class Filter;
 
-    class Logger
+    class DECAF_API Logger
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/MarkBlockLogger.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/MarkBlockLogger.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/MarkBlockLogger.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/MarkBlockLogger.h Fri Jun  1 06:12:33 2007
@@ -32,7 +32,7 @@
      * entry and exit will be marked using the scope name, logger to the
      * logger at the MARKBLOCK log level.
      */
-    class MarkBlockLogger
+    class DECAF_API MarkBlockLogger
     {
     private:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/PropertiesChangeListener.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/PropertiesChangeListener.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/PropertiesChangeListener.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/PropertiesChangeListener.h Fri Jun  1 06:12:33 2007
@@ -17,6 +17,8 @@
 #ifndef _DECAF_UTIL_LOGGING_PROPERTIESCHANGELISTENER_H_
 #define _DECAF_UTIL_LOGGING_PROPERTIESCHANGELISTENER_H_
 
+#include <decaf/util/Config.h>
+
 namespace decaf{
 namespace util{
 namespace logging{
@@ -25,7 +27,7 @@
     * Defines the interface that classes can use to listen for change
     * events on Properties.
     */
-   class PropertiesChangeListener
+   class DECAF_API PropertiesChangeListener
    {
    public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleFormatter.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleFormatter.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleFormatter.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleFormatter.h Fri Jun  1 06:12:33 2007
@@ -27,7 +27,7 @@
      * Print a brief summary of the LogRecord in a human readable format.
      * The summary will typically be 1 or 2 lines.
      */
-    class SimpleFormatter : public Formatter {
+    class DECAF_API SimpleFormatter : public Formatter {
     public:
 
         SimpleFormatter() {}

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleLogger.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleLogger.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleLogger.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/SimpleLogger.h Fri Jun  1 06:12:33 2007
@@ -18,12 +18,13 @@
 #define _DECAF_UTIL_LOGGING_SIMPLELOGGER_H_
 
 #include <string>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace util{
 namespace logging{
 
-   class SimpleLogger
+   class DECAF_API SimpleLogger
    {
    public:
 

Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/StreamHandler.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/StreamHandler.h?view=diff&rev=543481&r1=543480&r2=543481
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/StreamHandler.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/logging/StreamHandler.h Fri Jun  1 06:12:33 2007
@@ -25,12 +25,13 @@
 #include <decaf/kang/exceptions/NullPointerException.h>
 #include <decaf/lang/exceptions/InvalidStateException.h>
 #include <decaf/util/concurrent/Concurrent.h>
+#include <decaf/util/Config.h>
 
 namespace decaf{
 namespace util{
 namespace logging{
 
-    class StreamHandler : public Handler {
+    class DECAF_API StreamHandler : public Handler {
     private:
 
         // OutputStream to write to