--- /dev/null
+diff -uNr RCF-0.4-orig/Makefile RCF-0.4/Makefile
+--- RCF-0.4-orig/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/Makefile 2006-10-24 16:08:00.799705810 +0200
+@@ -0,0 +1,32 @@
++#
++# Top level Makefile for RCF library and test programs
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++SUBDIRS = src test
++DESTDIR =
++prefix = /usr/local
++
++.PHONY: all clean test syntax shared install uninstall
++
++all:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++shared:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++install:
++ $(MAKE) -C src $@
++
++uninstall:
++ $(MAKE) -C src $@
++
++syntax:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++test:
++ $(MAKE) -C $@ $@
++
++clean:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
+diff -uNr RCF-0.4-orig/include/RCF/CheckRtti.hpp RCF-0.4/include/RCF/CheckRtti.hpp
+--- RCF-0.4-orig/include/RCF/CheckRtti.hpp 2006-01-11 01:06:52.000000000 +0100
++++ RCF-0.4/include/RCF/CheckRtti.hpp 2006-10-19 10:03:09.000000000 +0200
+@@ -24,7 +24,7 @@
+ {}\r
+ };\r
+ \r
+- struct B\r
++ struct B : public A\r
+ {\r
+ virtual ~B()\r
+ {}\r
+@@ -35,7 +35,7 @@
+ B b;\r
+ // RTTI support not detected!\r
+ // If you're using Visual C++, set "Enable Run-Time Type Info" to true, in the Project Properties | C/C++ | Language options,\r
+- dynamic_cast<A &>(b);\r
++ (void)dynamic_cast<A &>(b);\r
+ }\r
+ };\r
+ \r
+diff -uNr RCF-0.4-orig/include/RCF/EndpointBrokerService.hpp RCF-0.4/include/RCF/EndpointBrokerService.hpp
+--- RCF-0.4-orig/include/RCF/EndpointBrokerService.hpp 2006-01-11 01:06:52.000000000 +0100
++++ RCF-0.4/include/RCF/EndpointBrokerService.hpp 2006-10-19 10:16:40.000000000 +0200
+@@ -49,12 +49,12 @@
+ friend class EndpointBrokerService;\r
+ typedef RcfClient<I_EndpointServer> Client;\r
+ typedef boost::shared_ptr<Client> ClientPtr;\r
++ ServerTransportPtr mServerTransportPtr;\r
+ std::string mEndpointName;\r
+- std::string mEndpointServerPassword;\r
+ std::string mEndpointClientPassword;\r
++ std::string mEndpointServerPassword;\r
+ std::vector<SessionPtr> mConnections;\r
+ ClientPtr mMasterConnection;\r
+- ServerTransportPtr mServerTransportPtr;\r
+ };\r
+ \r
+ class EndpointBrokerService : \r
+diff -uNr RCF-0.4-orig/include/RCF/IpServerTransport.hpp RCF-0.4/include/RCF/IpServerTransport.hpp
+--- RCF-0.4-orig/include/RCF/IpServerTransport.hpp 2006-02-04 01:01:22.000000000 +0100
++++ RCF-0.4/include/RCF/IpServerTransport.hpp 2006-10-19 10:17:56.000000000 +0200
+@@ -87,10 +87,10 @@
+ }\r
+ \r
+ private:\r
++ mutable ReadWriteMutex mReadWriteMutex;\r
+ std::string mNetworkInterface;\r
+ std::vector<std::string> mAllowedIps;\r
+ std::vector<u_long> mAllowedAddrs;\r
+- mutable ReadWriteMutex mReadWriteMutex;\r
+ };\r
+ \r
+ } // namespace RCF\r
+diff -uNr RCF-0.4-orig/include/RCF/OpenSslEncryptionFilter.hpp RCF-0.4/include/RCF/OpenSslEncryptionFilter.hpp
+--- RCF-0.4-orig/include/RCF/OpenSslEncryptionFilter.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/OpenSslEncryptionFilter.hpp 2006-10-19 10:44:20.000000000 +0200
+@@ -28,6 +28,8 @@
+ SslClient\r
+ };\r
+ \r
++ class OpenSslEncryptionFilterImpl;\r
++\r
+ /// Filter implementing the SSL encryption protocol, through the OpenSSL library.\r
+ class OpenSslEncryptionFilter : public IdentityFilter, boost::noncopyable\r
+ {\r
+diff -uNr RCF-0.4-orig/include/RCF/PublishingService.hpp RCF-0.4/include/RCF/PublishingService.hpp
+--- RCF-0.4-orig/include/RCF/PublishingService.hpp 2006-07-27 23:30:10.000000000 +0200
++++ RCF-0.4/include/RCF/PublishingService.hpp 2006-10-19 16:24:36.000000000 +0200
+@@ -15,6 +15,7 @@
+ #include <boost/shared_ptr.hpp>\r
+ #include <boost/utility.hpp>\r
+ \r
++#include <RCF/ClientStub.hpp>\r
+ #include <RCF/GetInterfaceName.hpp>\r
+ #include <RCF/Service.hpp>\r
+ #include <RCF/ThreadLibrary.hpp>\r
+diff -uNr RCF-0.4-orig/include/RCF/RcfServer.hpp RCF-0.4/include/RCF/RcfServer.hpp
+--- RCF-0.4-orig/include/RCF/RcfServer.hpp 2006-04-02 21:39:32.000000000 +0200
++++ RCF-0.4/include/RCF/RcfServer.hpp 2006-10-19 16:26:26.000000000 +0200
+@@ -214,12 +214,12 @@
+ ThreadSpecificSessionQueuePtr mThreadSpecificSessionQueuePtr;\r
+ // eventually other specialized session queues...\r
+ \r
+- volatile bool mServerThreadsStopFlag;\r
+ Mutex mOpenedMutex;\r
+ bool mOpened;\r
+ \r
+ Mutex mStartedMutex;\r
+ bool mStarted;\r
++ volatile bool mServerThreadsStopFlag;\r
+ \r
+ public:\r
+ \r
+diff -uNr RCF-0.4-orig/include/RCF/StubFactory.hpp RCF-0.4/include/RCF/StubFactory.hpp
+--- RCF-0.4-orig/include/RCF/StubFactory.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/StubFactory.hpp 2006-10-19 10:28:45.000000000 +0200
+@@ -9,6 +9,7 @@
+ #ifndef INCLUDE_RCF_STUBFACTORY_HPP\r
+ #define INCLUDE_RCF_STUBFACTORY_HPP\r
+ \r
++#include <RCF/ServerStub.hpp>\r
+ #include <boost/shared_ptr.hpp>\r
+ \r
+ namespace RCF {\r
+diff -uNr RCF-0.4-orig/include/RCF/SubscriptionService.hpp RCF-0.4/include/RCF/SubscriptionService.hpp
+--- RCF-0.4-orig/include/RCF/SubscriptionService.hpp 2006-07-27 23:30:10.000000000 +0200
++++ RCF-0.4/include/RCF/SubscriptionService.hpp 2006-10-23 11:43:31.826971900 +0200
+@@ -19,6 +19,7 @@
+ \r
+ #include <RCF/GetInterfaceName.hpp>\r
+ #include <RCF/Service.hpp>\r
++#include <RCF/ServerStub.hpp>\r
+ \r
+ namespace RCF {\r
+ \r
+diff -uNr RCF-0.4-orig/include/RCF/TcpClientTransport.hpp RCF-0.4/include/RCF/TcpClientTransport.hpp
+--- RCF-0.4-orig/include/RCF/TcpClientTransport.hpp 2006-02-05 05:52:38.000000000 +0100
++++ RCF-0.4/include/RCF/TcpClientTransport.hpp 2006-10-20 16:59:45.000000000 +0200
+@@ -93,7 +93,7 @@
+ class TcpClientTransport : public I_ClientTransport\r
+ {\r
+ public:\r
+- TcpClientTransport::TcpClientTransport(const TcpClientTransport &rhs);\r
++ TcpClientTransport(const TcpClientTransport &rhs);\r
+ TcpClientTransport(const std::string &ip, int port);\r
+ TcpClientTransport(sockaddr_in remoteAddr);\r
+ TcpClientTransport(int fd);\r
+@@ -131,8 +131,8 @@
+ int fd;\r
+ bool own;\r
+ \r
+- std::size_t mBytesTransferred;\r
+ int mError;\r
++ std::size_t mBytesTransferred;\r
+ \r
+ boost::shared_ptr< CloseFunctor > mCloseFunctor;\r
+ std::vector<FilterPtr> mTransportFilters;\r
+diff -uNr RCF-0.4-orig/include/RCF/TcpServerTransport.hpp RCF-0.4/include/RCF/TcpServerTransport.hpp
+--- RCF-0.4-orig/include/RCF/TcpServerTransport.hpp 2006-02-07 21:37:16.000000000 +0100
++++ RCF-0.4/include/RCF/TcpServerTransport.hpp 2006-10-20 17:27:25.000000000 +0200
+@@ -59,12 +59,12 @@
+ WritingData,\r
+ };\r
+ \r
++ Fd fd;\r
+ State state;\r
+ std::vector<char> readBuffer;\r
+ std::size_t readBufferRemaining;\r
+ std::vector<char> writeBuffer;\r
+ std::size_t writeBufferRemaining;\r
+- Fd fd;\r
+ };\r
+ \r
+ typedef boost::shared_ptr<I_Session> SessionPtr;\r
+diff -uNr RCF-0.4-orig/include/RCF/ZlibCompressionFilter.hpp RCF-0.4/include/RCF/ZlibCompressionFilter.hpp
+--- RCF-0.4-orig/include/RCF/ZlibCompressionFilter.hpp 2006-01-11 01:06:54.000000000 +0100
++++ RCF-0.4/include/RCF/ZlibCompressionFilter.hpp 2006-10-23 16:29:58.698611358 +0200
+@@ -21,6 +21,9 @@
+ static const int RCF_FILTER_ZLIB_COMPRESSION_STATELESS = 3;\r
+ \r
+ static const int RCF_FILTER_ZLIB_COMPRESSION_STATEFUL = 4;\r
++ \r
++ class ZlibCompressionReadFilter;\r
++ class ZlibCompressionWriteFilter;\r
+ \r
+ class ZlibCompressionFilter : public IdentityFilter, boost::noncopyable\r
+ {\r
+diff -uNr RCF-0.4-orig/include/RCF/util/Platform/Machine/ByteOrder.hpp RCF-0.4/include/RCF/util/Platform/Machine/ByteOrder.hpp
+--- RCF-0.4-orig/include/RCF/util/Platform/Machine/ByteOrder.hpp 2006-09-13 17:02:32.000000000 +0200
++++ RCF-0.4/include/RCF/util/Platform/Machine/ByteOrder.hpp 2006-10-24 17:40:39.917363264 +0200
+@@ -14,6 +14,8 @@
+ #include "x86/ByteOrder.hpp"\r
+ #elif defined(_M_IA64) || defined(_M_AMD64) || defined(_M_X64)\r
+ #include "x86/ByteOrder.hpp"\r
++#elif defined(_MIPSEL) && _MIPSEL == 1\r
++#include "x86/ByteOrder.hpp"\r
+ #else\r
+ #include "UnknownMachine/ByteOrder.hpp"\r
+ #endif\r
+diff -uNr RCF-0.4-orig/include/RCF/util/UnusedVariable.hpp RCF-0.4/include/RCF/util/UnusedVariable.hpp
+--- RCF-0.4-orig/include/RCF/util/UnusedVariable.hpp 2006-01-11 01:06:56.000000000 +0100
++++ RCF-0.4/include/RCF/util/UnusedVariable.hpp 2006-10-20 17:40:00.000000000 +0200
+@@ -9,6 +9,10 @@
+ #define INCLUDE_UTIL_UNUSEDVARIABLE_HPP\r
+ \r
+ // Eliminate unused variable warnings, eg for scoped lock objects\r
++#ifndef __GNUC__\r
+ #define RCF_UNUSED_VARIABLE(x) ((void) x)\r
++#else\r
++#define RCF_UNUSED_VARIABLE(x)\r
++#endif\r
+ \r
+ #endif // ! INCLUDE_UTIL_UNUSEDVARIABLE_HPP\r
+diff -uNr RCF-0.4-orig/include/SF/I_Stream.hpp RCF-0.4/include/SF/I_Stream.hpp
+--- RCF-0.4-orig/include/SF/I_Stream.hpp 2006-01-11 01:07:00.000000000 +0100
++++ RCF-0.4/include/SF/I_Stream.hpp 2006-10-19 10:12:54.000000000 +0200
+@@ -19,6 +19,7 @@
+ class I_ContextRead\r
+ {\r
+ public:\r
++ virtual ~I_ContextRead(void) {}\r
+ virtual void add(SF::UInt32 nid, const ObjectId &id) = 0;\r
+ virtual void add(void *ptr, const std::type_info &objType, void *pObj ) = 0;\r
+ virtual bool query(SF::UInt32 nid, ObjectId &id) = 0;\r
+@@ -29,6 +30,7 @@
+ class I_ContextWrite\r
+ {\r
+ public:\r
++ virtual ~I_ContextWrite(void) {}\r
+ virtual void setEnabled(bool enable) = 0;\r
+ virtual bool getEnabled() = 0;\r
+ virtual void add(const ObjectId &id, SF::UInt32 &nid) = 0;\r
+@@ -38,28 +40,33 @@
+ \r
+ class I_WithContextRead {\r
+ public:\r
++ virtual ~I_WithContextRead(void) {}\r
+ virtual I_ContextRead &getContext() = 0;\r
+ };\r
+ \r
+ class I_WithContextWrite {\r
+ public:\r
++ virtual ~I_WithContextWrite(void) {}\r
+ virtual I_ContextWrite &getContext() = 0;\r
+ };\r
+ \r
+ class I_LocalStorage {\r
+ public:\r
++ virtual ~I_LocalStorage(void) {}\r
+ virtual void set(const std::type_info &objType, void *) = 0;\r
+ virtual void *get(const std::type_info &objType) = 0;\r
+ };\r
+ \r
+ class I_WithLocalStorage {\r
+ public:\r
++ virtual ~I_WithLocalStorage(void) {}\r
+ virtual I_LocalStorage &getLocalStorage() = 0;\r
+ };\r
+ \r
+ class I_Encoding\r
+ {\r
+ public:\r
++ virtual ~I_Encoding(void) {}\r
+ virtual UInt32 getCount(DataPtr &data, const std::type_info &type) = 0;\r
+ virtual void toData(DataPtr &data, void *pvObject, const std::type_info &type, int nCount) = 0;\r
+ virtual void toObject(DataPtr &data, void *pvObject, const std::type_info &type, int nCount) = 0;\r
+@@ -68,6 +75,7 @@
+ class I_WithEncoding\r
+ {\r
+ public:\r
++ virtual ~I_WithEncoding(void) {}\r
+ virtual I_Encoding &getEncoding() = 0;\r
+ };\r
+ \r
+@@ -80,6 +88,7 @@
+ class WithFormatWrite\r
+ {\r
+ public:\r
++ virtual ~WithFormatWrite(void) {}\r
+ virtual void begin(const Node &) = 0;\r
+ virtual void put(const DataPtr &) = 0;\r
+ virtual void end() = 0;\r
+@@ -88,6 +97,7 @@
+ class WithFormatRead\r
+ {\r
+ public:\r
++ virtual ~WithFormatRead(void) {}\r
+ virtual bool begin(Node &) = 0;\r
+ virtual bool get(DataPtr &) = 0;\r
+ virtual void end() = 0;\r
+diff -uNr RCF-0.4-orig/include/SF/SerializeSmartPtr.hpp RCF-0.4/include/SF/SerializeSmartPtr.hpp
+--- RCF-0.4-orig/include/SF/SerializeSmartPtr.hpp 2006-01-19 07:44:30.000000000 +0100
++++ RCF-0.4/include/SF/SerializeSmartPtr.hpp 2006-10-24 12:50:50.039809323 +0200
+@@ -20,7 +20,6 @@
+ template< template<typename> class SmartPtr, typename T >\r
+ inline bool serializeSimpleSmartPtr(SmartPtr<T> **pps, SF::Archive &ar)\r
+ {\r
+- bool bRet = false;\r
+ if (ar.isRead()) {\r
+ if (ar.isFlagSet(Archive::POINTER)) *pps = new SmartPtr<T>;\r
+ T *pt = NULL;\r
+diff -uNr RCF-0.4-orig/include/SF/SerializeStaticArray.hpp RCF-0.4/include/SF/SerializeStaticArray.hpp
+--- RCF-0.4-orig/include/SF/SerializeStaticArray.hpp 2006-01-11 01:07:00.000000000 +0100
++++ RCF-0.4/include/SF/SerializeStaticArray.hpp 2006-10-23 17:02:39.489476120 +0200
+@@ -2,6 +2,8 @@
+ #ifndef INCLUDE_SF_SERIALIZESTATICARRAY_HPP\r
+ #define INCLUDE_SF_SERIALIZESTATICARRAY_HPP\r
+ \r
++#include <boost/type_traits.hpp>\r
++\r
+ #include <SF/Archive.hpp>\r
+ \r
+ namespace SF {\r
+diff -uNr RCF-0.4-orig/include/SF/Stream.hpp RCF-0.4/include/SF/Stream.hpp
+--- RCF-0.4-orig/include/SF/Stream.hpp 2006-09-19 11:53:44.000000000 +0200
++++ RCF-0.4/include/SF/Stream.hpp 2006-10-19 10:14:35.000000000 +0200
+@@ -221,7 +221,7 @@
+ {\r
+ public:\r
+ OStream(std::ostream &os);\r
+- UInt32 OStream::writeRaw(const Byte8 *pBytes, UInt32 nLength);\r
++ UInt32 writeRaw(const Byte8 *pBytes, UInt32 nLength);\r
+ \r
+ private:\r
+ void begin(const Node &node);\r
+diff -uNr RCF-0.4-orig/include/SF/vector.hpp RCF-0.4/include/SF/vector.hpp
+--- RCF-0.4-orig/include/SF/vector.hpp 2006-09-19 11:53:46.000000000 +0200
++++ RCF-0.4/include/SF/vector.hpp 2006-10-23 17:05:37.129355307 +0200
+@@ -7,6 +7,7 @@
+ #include <SF/SerializeDynamicArray.hpp>\r
+ #include <SF/SerializeStl.hpp>\r
+ #include <SF/Tools.hpp>\r
++#include <SF/Stream.hpp>\r
+ \r
+ namespace SF {\r
+ \r
+diff -uNr RCF-0.4-orig/src/Makefile RCF-0.4/src/Makefile
+--- RCF-0.4-orig/src/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/src/Makefile 2006-10-24 16:08:09.684099349 +0200
+@@ -0,0 +1,29 @@
++#
++# Makefile for RCF library
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++SUBDIRS = SF RCF
++DESTDIR =
++prefix = /usr/local
++
++.PHONY: all clean syntax shared install uninstall
++
++all:
++ $(MAKE) -C RCF $@
++
++shared:
++ $(MAKE) -C RCF $@
++
++install:
++ $(MAKE) -C RCF $@
++
++uninstall:
++ $(MAKE) -C RCF $@
++
++syntax:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
++
++clean:
++ @for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit 1; done
+diff -uNr RCF-0.4-orig/src/RCF/AsyncFilter.cpp RCF-0.4/src/RCF/AsyncFilter.cpp
+--- RCF-0.4-orig/src/RCF/AsyncFilter.cpp 2006-01-11 01:07:02.000000000 +0100
++++ RCF-0.4/src/RCF/AsyncFilter.cpp 2006-10-19 10:00:18.000000000 +0200
+@@ -149,8 +149,8 @@
+ ReadProxy(const std::string &buffer, FilterPtr filterPtr) : \r
+ mBuffer(buffer), \r
+ mchBuffer(mBuffer.c_str()),\r
+- mchBufferLength( static_cast<int>(mBuffer.length()) ),\r
+ mchBufferPos(), \r
++ mchBufferLength( static_cast<int>(mBuffer.length()) ),\r
+ mFilterPtr(filterPtr)\r
+ {}\r
+ \r
+diff -uNr RCF-0.4-orig/src/RCF/Makefile RCF-0.4/src/RCF/Makefile
+--- RCF-0.4-orig/src/RCF/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/src/RCF/Makefile 2006-10-26 16:22:54.175209260 +0200
+@@ -0,0 +1,123 @@
++#
++# Makefile for RCF library
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++MAJOR = 0
++VERSION = $(MAJOR).4
++
++O = .o
++A = .a
++D = .so
++
++.PHONY: all clean shared install uninstall mt st shared-st shared-mt
++
++CXX = g++
++#HAS_MM = yes
++AR = ar
++CDEFINES = -DRCF_USE_OPENSSL -DRCF_USE_ZLIB -DRCF_USE_SF_SERIALIZATION \
++ -DRCF_USE_BOOST_ASIO
++CPPFLAGS = -I../../include
++CXXTHREADS = -DRCF_USE_BOOST_THREADS
++CSHARED =
++CXXFLAGS = -ansi -Wall -Werror -O3
++DESTDIR =
++prefix = /usr/local
++
++OBJS = AsyncFilter.o ByteOrdering.o CheckRtti.o ClientInfo.o ClientStub.o \
++ ClientTransport.o CurrentSession.o EncodeMessage.o Endpoint.o \
++ EndpointBrokerService.o EndpointServerService.o Exception.o \
++ FilterService.o Idl.o InitDeinit.o IpAddress.o IpServerTransport.o \
++ Marshal.o MethodInvocation.o MulticastClientTransport.o \
++ ObjectFactoryService.o OpenSslEncryptionFilter.o Protocol/Protocol.o \
++ PublishingService.o Random.o RcfClient.o RcfServer.o \
++ SerializationProtocol.o ServerInterfaces.o ServerStub.o ServerTask.o \
++ ServerTransport.o Service.o Session.o StubEntry.o StubFactory.o \
++ SubscriptionService.o TcpAsioClientTransport.o \
++ TcpAsioServerTransport.o TcpAsioSynchronizedSocket.o \
++ TcpClientTransport.o TcpEndpoint.o \
++ TcpServerTransport.o ThreadLibrary.o TimedBsdSockets.o Token.o \
++ Tools.o UdpClientTransport.o UdpEndpoint.o UdpServerTransport.o \
++ UsingBsdSockets.o UsingOpenSsl.o ZlibCompressionFilter.o
++SOURCES = $(OBJS:%.o=%.cpp) RCF.cpp
++NAME = libRCF
++LIBMT = $(NAME)mt$A
++LIBST = $(NAME)st$A
++
++all:
++ $(MAKE) mt
++ $(MAKE) st
++
++mt: $(LIBMT)
++
++st: $(LIBST)
++
++shared:
++ $(MAKE) shared-mt
++ $(MAKE) shared-st
++
++shared-mt:
++ $(MAKE) -e LIBMT=$(NAME)mt$D CSHARED=-fPIC $(NAME)mt$D
++
++shared-st:
++ $(MAKE) -e LIBST=$(NAME)st$D CSHARED=-fPIC $(NAME)st$D
++
++syntax: $(OBJS)
++
++install: $(LIBMT) $(LIBST)
++ install -d -m 775 $(DESTDIR)$(prefix)/lib
++ if [ -f $(NAME)mt$(A) ]; then \
++ install -m 664 $(NAME)mt$(A) $(DESTDIR)$(prefix)/lib; \
++ fi
++ if [ -f $(NAME)st$(A) ]; then \
++ install -m 664 $(NAME)st$(A) $(DESTDIR)$(prefix)/lib; \
++ fi
++ if [ -f $(NAME)mt$(D).$(VERSION) ]; then \
++ install -m 775 $(NAME)mt$(D).$(VERSION) $(DESTDIR)$(prefix)/lib; \
++ ln -sf $(NAME)mt$(D).$(VERSION) $(DESTDIR)$(prefix)/lib/$(NAME)mt$(D).$(MAJOR); \
++ ln -sf $(NAME)mt$(D).$(MAJOR) $(DESTDIR)$(prefix)/lib/$(NAME)mt$(D); \
++ fi
++ if [ -f $(NAME)st$(D).$(VERSION) ]; then \
++ install -m 775 $(NAME)st$(D).$(VERSION) $(DESTDIR)$(prefix)/lib; \
++ ln -sf $(NAME)st$(D).$(VERSION) $(DESTDIR)$(prefix)/lib/$(NAME)st$(D).$(MAJOR); \
++ ln -sf $(NAME)st$(D).$(MAJOR) $(DESTDIR)$(prefix)/lib/$(NAME)st$(D); \
++ fi
++ install -d -m 775 $(DESTDIR)$(prefix)/include
++ cp -dpR ../../include/RCF $(DESTDIR)$(prefix)/include
++ cp -dpR ../../include/SF $(DESTDIR)$(prefix)/include
++
++uninstall: $(PROGRAM)
++ rm -f $(DESTDIR)$(prefix)/lib/$(NAME)[ms]t$A
++ rm -f $(DESTDIR)$(prefix)/lib/$(NAME)[ms]t$D
++ rm -f $(DESTDIR)$(prefix)/lib/$(NAME)[ms]t$D.$(MAJOR)
++ rm -f $(DESTDIR)$(prefix)/lib/$(NAME)[ms]t$D.$(VERSION)
++ rm -rf $(DESTDIR)$(prefix)/include/RCF
++ rm -rf $(DESTDIR)$(prefix)/include/SF
++
++lib%$(A): %.o
++ $(AR) cr $@ $^
++
++lib%$(D): %.o
++ $(CXX) $^ -shared -Wl,-soname,$@.$(MAJOR) -o $@.$(VERSION)
++ ln -sf $@.$(VERSION) $@.$(MAJOR)
++ ln -sf $@.$(MAJOR) $@
++
++clean:
++ rm -f $(NAME)[ms]t$(A) $(NAME)[ms]t$(D)* $(OBJS) RCF[ms]t.o *~ .depend
++
++%st.o: %.cpp
++ $(CXX) -c $(CSHARED) $(CPPFLAGS) $(CDEFINES) $(CXXFLAGS) $< -o $@
++
++%mt.o: %.cpp
++ $(CXX) -c $(CSHARED) $(CPPFLAGS) $(CDEFINES) $(CXXTHREADS) $(CXXFLAGS) $< -o $@
++
++%.o: %.cpp
++ $(CXX) -c $(CSHARED) $(CPPFLAGS) $(CDEFINES) $(CXXTHREADS) $(CXXFLAGS) $< -o $@
++
++.depend: $(SOURCES)
++ $(CXX) $(CPPFLAGS) $(CDEFINES) -MM $(SOURCES) >$@
++
++ifeq (yes,$(HAS_MM))
++sinclude .depend
++endif
+diff -uNr RCF-0.4-orig/src/RCF/MulticastClientTransport.cpp RCF-0.4/src/RCF/MulticastClientTransport.cpp
+--- RCF-0.4-orig/src/RCF/MulticastClientTransport.cpp 2006-01-18 08:32:18.000000000 +0100
++++ RCF-0.4/src/RCF/MulticastClientTransport.cpp 2006-10-19 10:24:44.000000000 +0200
+@@ -25,11 +25,13 @@
+ std::auto_ptr<I_ClientTransport> MulticastClientTransport::clone() const\r
+ {\r
+ RCF_THROW( ClientTransportException, "clone() not supported for MulticastClientTransport" );\r
++ return std::auto_ptr<I_ClientTransport>(NULL); /* keep the compiler happy */\r
+ }\r
+ \r
+ EndpointPtr MulticastClientTransport::getEndpointPtr() const\r
+ {\r
+ RCF_THROW( ClientTransportException, "getEndpointPtr() not supported for MulticastClientTransport" );\r
++ return EndpointPtr(); /* keep the compiler happy */\r
+ }\r
+ \r
+ int MulticastClientTransport::send(const std::string &data, unsigned int timeoutMs)\r
+@@ -70,6 +72,7 @@
+ int MulticastClientTransport::receive(std::string &, unsigned int)\r
+ {\r
+ RCF_THROW( ClientTransportException, "receive() not supported for MulticastClientTransport" );\r
++ return -1; /* keep the compiler happy */\r
+ }\r
+ \r
+ bool MulticastClientTransport::isConnected()\r
+diff -uNr RCF-0.4-orig/src/RCF/ObjectFactoryService.cpp RCF-0.4/src/RCF/ObjectFactoryService.cpp
+--- RCF-0.4-orig/src/RCF/ObjectFactoryService.cpp 2006-04-03 14:49:40.000000000 +0200
++++ RCF-0.4/src/RCF/ObjectFactoryService.cpp 2006-10-19 10:30:26.000000000 +0200
+@@ -69,8 +69,8 @@
+ }\r
+ \r
+ ObjectFactoryService::ObjectFactoryService(unsigned int numberOfTokens, unsigned int clientStubTimeoutS) :\r
+- mClientStubTimeoutS(clientStubTimeoutS),\r
+ mTokenFactory(numberOfTokens),\r
++ mClientStubTimeoutS(clientStubTimeoutS),\r
+ mStubFactoryMapMutex(WriterPriority),\r
+ mStopFlag()\r
+ {\r
+@@ -260,6 +260,7 @@
+ RcfClient<I_ObjectFactory> factory(clientStub.releaseTransport());\r
+ //ScopeGuard guard( boost::bind(&reinstateClientTransport, boost::ref(clientStub), boost::ref(factory)) );\r
+ ScopeGuard guard = MakeGuard(reinstateClientTransport, boost::ref(clientStub), boost::ref(factory));\r
++ (void)guard; /* suppress unused var warning */\r
+ RCF::Token token;\r
+ bool ok = factory.createObject(RCF::Twoway, objectName, token);\r
+ if (ok)\r
+diff -uNr RCF-0.4-orig/src/RCF/OpenSslEncryptionFilter.cpp RCF-0.4/src/RCF/OpenSslEncryptionFilter.cpp
+--- RCF-0.4-orig/src/RCF/OpenSslEncryptionFilter.cpp 2006-01-11 01:07:02.000000000 +0100
++++ RCF-0.4/src/RCF/OpenSslEncryptionFilter.cpp 2006-10-19 10:47:36.000000000 +0200
+@@ -145,6 +145,9 @@
+ sslRole(sslRole),\r
+ certificateFile(certificateFile),\r
+ certificateFilePassword(certificateFilePassword),\r
++ preState(Ready),\r
++ postState(Ready),\r
++ retry(),\r
+ preBuffer(),\r
+ preBufferOrig(),\r
+ preBufferLen(),\r
+@@ -152,11 +155,8 @@
+ postBuffer(),\r
+ postBufferLen(),\r
+ postBufferRequested(),\r
+- preState(Ready),\r
+- postState(Ready),\r
+- bioBufferSize(bioBufferSize),\r
+- retry(),\r
+ err(),\r
++ bioBufferSize(bioBufferSize),\r
+ openSslEncryptionFilter(openSslEncryptionFilter)\r
+ {\r
+ init();\r
+diff -uNr RCF-0.4-orig/src/RCF/TcpAsioServerTransport.cpp RCF-0.4/src/RCF/TcpAsioServerTransport.cpp
+--- RCF-0.4-orig/src/RCF/TcpAsioServerTransport.cpp 2006-07-28 23:10:12.000000000 +0200
++++ RCF-0.4/src/RCF/TcpAsioServerTransport.cpp 2006-10-20 17:43:44.000000000 +0200
+@@ -20,10 +20,10 @@
+ namespace RCF {\r
+ \r
+ TcpAsioServerTransport::SessionState::SessionState(TcpAsioServerTransport &transport, DemuxerPtr demuxerPtr, ReadWriteMutexPtr readWriteMutexPtr) : \r
+- mSynchronizedSocketPtr( new TcpAsioSynchronizedSocket(demuxerPtr, readWriteMutexPtr) ),\r
+ mState(Ready),\r
+ mReadBufferRemaining(),\r
+ mWriteBufferRemaining(),\r
++ mSynchronizedSocketPtr( new TcpAsioSynchronizedSocket(demuxerPtr, readWriteMutexPtr) ),\r
+ mReflecting(),\r
+ mTransport(transport)\r
+ {\r
+@@ -596,11 +596,11 @@
+ \r
+ TcpAsioServerTransport::TcpAsioServerTransport(int port) :\r
+ mDemuxerPtr(),\r
+- mCycleTimerPtr(),\r
+- mInterrupt(),\r
+ mReadWriteMutexPtr( new ReadWriteMutex(ReaderPriority) ),\r
+ mPort(port),\r
+ mAcceptorPtr(),\r
++ mCycleTimerPtr(),\r
++ mInterrupt(),\r
+ mStopFlag(),\r
+ pServer()\r
+ {}\r
+diff -uNr RCF-0.4-orig/src/RCF/TcpClientTransport.cpp RCF-0.4/src/RCF/TcpClientTransport.cpp
+--- RCF-0.4-orig/src/RCF/TcpClientTransport.cpp 2006-07-27 23:30:14.000000000 +0200
++++ RCF-0.4/src/RCF/TcpClientTransport.cpp 2006-10-20 17:05:35.000000000 +0200
+@@ -336,7 +336,7 @@
+ bufferLen = static_cast<int>(vec.size());\r
+ ret = timedReceive(buffer, bufferLen);\r
+ \r
+- if (ret == length)\r
++ if (ret == (int)length)\r
+ {\r
+ data.clear();\r
+ data.append(&vec[0], length);\r
+diff -uNr RCF-0.4-orig/src/RCF/TcpServerTransport.cpp RCF-0.4/src/RCF/TcpServerTransport.cpp
+--- RCF-0.4-orig/src/RCF/TcpServerTransport.cpp 2006-01-11 01:07:02.000000000 +0100
++++ RCF-0.4/src/RCF/TcpServerTransport.cpp 2006-10-20 17:38:55.000000000 +0200
+@@ -81,15 +81,15 @@
+ }\r
+ \r
+ TcpServerTransport::TcpServerTransport(int port /*= 0*/) :\r
+- allowedIpsMutex(WriterPriority),\r
+ FdPartitionCount(10),\r
+ pSessionManager(),\r
+- networkInterface("0.0.0.0"),\r
+- maxPendingConnectionCount(100),\r
+- port(port),\r
+- selecting(),\r
++ acceptorFd(-1),\r
+ mStopFlag(),\r
+- acceptorFd(-1)\r
++ selecting(),\r
++ allowedIpsMutex(WriterPriority),\r
++ port(port),\r
++ networkInterface("0.0.0.0"),\r
++ maxPendingConnectionCount(100)\r
+ {}\r
+ \r
+ void TcpServerTransport::setSessionManager(I_SessionManager &sessionManager)\r
+@@ -256,7 +256,7 @@
+ readBufferRemaining -= ret;\r
+ return 0;\r
+ }\r
+- else if (ret == readBufferRemaining)\r
++ else if (ret == (int)readBufferRemaining)\r
+ {\r
+ // full packet has now been read\r
+ if (sessionState.state == SessionState::ReadingDataCount)\r
+diff -uNr RCF-0.4-orig/src/RCF/TimedBsdSockets.cpp RCF-0.4/src/RCF/TimedBsdSockets.cpp
+--- RCF-0.4-orig/src/RCF/TimedBsdSockets.cpp 2006-01-27 21:42:30.000000000 +0100
++++ RCF-0.4/src/RCF/TimedBsdSockets.cpp 2006-10-20 17:37:39.000000000 +0200
+@@ -81,7 +81,7 @@
+ RCF_ASSERT(ret != 0);\r
+ if (ret > 0)\r
+ {\r
+- RCF_ASSERT(0 < ret && ret <= bytesRemaining);\r
++ RCF_ASSERT(0 < ret && ret <= (int)bytesRemaining);\r
+ bytesRemaining -= ret;\r
+ bytesSent += ret;\r
+ if (bytesRemaining == 0)\r
+diff -uNr RCF-0.4-orig/src/RCF/UdpServerTransport.cpp RCF-0.4/src/RCF/UdpServerTransport.cpp
+--- RCF-0.4-orig/src/RCF/UdpServerTransport.cpp 2006-02-14 15:23:26.000000000 +0100
++++ RCF-0.4/src/RCF/UdpServerTransport.cpp 2006-10-20 17:40:22.000000000 +0200
+@@ -18,8 +18,8 @@
+ pSessionManager(),\r
+ port(port),\r
+ fd(-1),\r
+- pollingDelayMs(),\r
+- mStopFlag()\r
++ mStopFlag(),\r
++ pollingDelayMs()\r
+ {\r
+ }\r
+ \r
+@@ -193,7 +193,7 @@
+ *(int *)(&writeBuffer[0]) = dataLength;\r
+ const sockaddr_in &remoteAddr = sessionStatePtr->remoteAddress.getSockAddr();\r
+ int len = sendto(fd, &writeBuffer[0], static_cast<int>(writeBuffer.size()), 0, (const sockaddr *) &remoteAddr, sizeof(remoteAddr));\r
+- if (len != writeBuffer.size())\r
++ if (len != (int)writeBuffer.size())\r
+ {\r
+ RCF_THROW(ServerTransportException, "sendto() failed")(fd)(len)(writeBuffer.size());\r
+ }\r
+diff -uNr RCF-0.4-orig/src/RCF/ZlibCompressionFilter.cpp RCF-0.4/src/RCF/ZlibCompressionFilter.cpp
+--- RCF-0.4-orig/src/RCF/ZlibCompressionFilter.cpp 2006-01-11 01:07:02.000000000 +0100
++++ RCF-0.4/src/RCF/ZlibCompressionFilter.cpp 2006-10-23 16:46:50.059387129 +0200
+@@ -67,14 +67,14 @@
+ \r
+ ZlibCompressionReadFilter::ZlibCompressionReadFilter(ZlibCompressionFilter &filter, int bufferSize) :\r
+ filter(filter),\r
++ d_stream_(),\r
++ mBuffer(bufferSize),\r
+ preBuffer(),\r
+ preBufferLen(),\r
+ preBufferOrig(),\r
+ preBufferLenOrig(),\r
+ postBuffer(),\r
+ postBufferLen(),\r
+- mBuffer(bufferSize),\r
+- d_stream_(),\r
+ zerr_(Z_OK),\r
+ err(),\r
+ decompressionStateInited()\r
+@@ -170,14 +170,14 @@
+ \r
+ ZlibCompressionWriteFilter::ZlibCompressionWriteFilter(ZlibCompressionFilter &filter, int bufferSize, bool stateful) :\r
+ filter(filter),\r
++ c_stream_(),\r
++ mBuffer(bufferSize),\r
+ preBuffer(),\r
+ preBufferLen(),\r
+ preBufferOrig(),\r
+ preBufferLenOrig(),\r
+ postBuffer(),\r
+ postBufferLen(),\r
+- mBuffer(bufferSize),\r
+- c_stream_(),\r
+ zerr_(Z_OK),\r
+ err(),\r
+ compressionStateInited(),\r
+diff -uNr RCF-0.4-orig/src/SF/Makefile RCF-0.4/src/SF/Makefile
+--- RCF-0.4-orig/src/SF/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/src/SF/Makefile 2006-10-24 17:43:53.113922445 +0200
+@@ -0,0 +1,54 @@
++#
++# Makefile for SF source files
++# (for syntax check, i.e. to compile all sources separately)
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++O = .o
++A = .a
++D = .so
++
++.PHONY: all clean shared syntax
++
++CXX = g++
++#HAS_MM = yes
++AR = ar
++CDEFINES = -DRCF_USE_OPENSSL -DRCF_USE_ZLIB -DRCF_USE_SF_SERIALIZATION \
++ -DRCF_USE_BOOST_ASIO
++CPPFLAGS = -I../../include
++CXXTHREADS = -DRCF_USE_BOOST_THREADS
++CSHARED =
++CXXFLAGS = -ansi -Wall -Werror -O3
++prefix = /usr/local
++
++OBJS = Archive.o DataPtr.o deque.o Encoding.o Exception.o IBinaryStream.o \
++ INativeBinaryStream.o ITextStream.o I_Stream.o list.o map.o memory.o \
++ Node.o OBinaryStream.o ONativeBinaryStream.o OTextStream.o \
++ PortableTypes.o Registry.o scoped_ptr.o SerializeDynamicArray.o \
++ SerializeFundamental.o SerializePolymorphic.o Serializer.o \
++ SerializeSmartPtr.o SerializeStaticArray.o SerializeStl.o set.o \
++ SfNew.o shared_ptr.o Stream.o string.o Tools.o vector.o
++SOURCES = $(OBJS:%.o=%.cpp)
++
++all:
++ @echo "Nothing do be done for $@ in SF. Run $(MAKE) in the ../RCF directory."
++
++
++shared:
++ @echo "Nothing do be done for $@ in SF. Run $(MAKE) in the ../RCF directory."
++
++syntax: $(OBJS)
++
++clean:
++ rm -f $(OBJS) *~ .depend
++
++%.o: %.cpp
++ $(CXX) -c $(CSHARED) $(CPPFLAGS) $(CDEFINES) $(CXXTHREADS) $(CXXFLAGS) $< -o $@
++
++.depend: $(SOURCES)
++ $(CXX) $(CPPFLAGS) $(CDEFINES) -MM $(SOURCES) >$@
++
++ifeq (yes,$(HAS_MM))
++sinclude .depend
++endif
+Binary files RCF-0.4-orig/src/SF/libSF.a and RCF-0.4/src/SF/libSF.a differ
+diff -uNr RCF-0.4-orig/test/Makefile RCF-0.4/test/Makefile
+--- RCF-0.4-orig/test/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/test/Makefile 2006-10-24 17:44:01.690302364 +0200
+@@ -0,0 +1,163 @@
++#
++# Makefile for RCF test programs
++#
++# Martin Dietze <dietze@4g-systems.com>
++#
++
++O = .o
++A = .a
++D = .so
++
++.PHONY: all clean syntax test test-rcs-multi test-rcs-single test-rcs-filters
++
++CXX = g++
++#HAS_MM = yes
++AR = ar
++CDEFINES = -DRCF_USE_OPENSSL -DRCF_USE_ZLIB -DRCF_USE_SF_SERIALIZATION \
++ -DRCF_USE_BOOST_ASIO
++CPPFLAGS = -I../include
++CXXTHREADS = -DRCF_USE_BOOST_THREADS
++CXXFLAGS = -ansi -Wall -Wno-unused-function -Werror -O3
++LDFLAGS = -L../src/RCF
++LIBSMT = -lRCFmt -lboost_thread -lz -lssl
++LIBSST = -lRCFst -lboost_thread -lz -lssl
++
++PROGRAMS = Test_Binding Test_ClientConnectionDrop Test_ClientInfo \
++ Test_ClientTimeout Test_Client_Minimal Test_Client_Performance \
++ Test_CycleServer_St Test_CycleServer_Mt Test_Endpoint \
++ Test_FilterPerformance Test_Filters Test_General Test_Inheritance \
++ Test_InitDeinit Test_IpRestriction Test_Minimal \
++ Test_MultiThreadedServer Test_MultipleClient Test_NetworkPerformance \
++ Test_Notification Test_ObjectFactoryService Test_Performance \
++ Test_Polymorphic Test_Serialization Test_Server_Minimal \
++ Test_Server_Performance Test_SingleThreadedServer Test_StubSerialization
++OBJS = $(PROGRAMS:%=%.o) Test_SingleThreadedServer_St.o
++SOURCES = $(OBJS:%.o=%.cpp)
++NAME = libRCF
++LIB = $(NAME)$A
++
++test: all
++ @echo "From ze test its beginnink:"
++ $(MAKE) test-rcs-multi test-rcs-single
++ @if [ -f client.pem ] && [ -f server.pem ]; then \
++ echo $(MAKE) test-rcs-filters; \
++ $(MAKE) test-rcs-filters; \
++ else \
++ echo "client.pem and/or server.pem not found, skipping filter tests."; \
++ fi
++ @echo "Not run automatically:"
++ @echo "./Test_Client_Minimal"
++ @echo "./Test_Server_Minimal"
++ @echo "./Test_Client_Performance"
++ @echo "./Test_Server_Performance"
++ @echo "./Test_NetworkPerformance"
++ @echo "From ze test its end."
++
++
++test-rcs-multi:
++ ./Test_Binding
++ ./Test_ClientConnectionDrop
++ ./Test_ClientInfo
++ ./Test_ClientTimeout
++ ./Test_CycleServer_Mt
++ ./Test_Endpoint
++ ./Test_General
++ ./Test_Inheritance
++ ./Test_InitDeinit
++ ./Test_IpRestriction
++ ./Test_Minimal
++ ./Test_MultipleClient
++ ./Test_MultiThreadedServer
++ ./Test_Notification
++ ./Test_ObjectFactoryService
++ ./Test_Performance
++ ./Test_Polymorphic
++ ./Test_Serialization
++ ./Test_StubSerialization
++
++test-rcs-single:
++ ./Test_SingleThreadedServer
++ ./Test_CycleServer_St
++
++test-rcs-filters:
++ ./Test_FilterPerformance
++ ./Test_Filters
++
++all: $(PROGRAMS)
++
++Test_Binding: Test_Binding.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_ClientConnectionDrop: Test_ClientConnectionDrop.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_ClientInfo: Test_ClientInfo.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_ClientTimeout: Test_ClientTimeout.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Client_Minimal: Test_Client_Minimal.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Client_Performance: Test_Client_Performance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_CycleServer_Mt: Test_CycleServer_Mt.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Endpoint: Test_Endpoint.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_FilterPerformance: Test_FilterPerformance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Filters: Test_Filters.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_General: Test_General.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Inheritance: Test_Inheritance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_InitDeinit: Test_InitDeinit.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_IpRestriction: Test_IpRestriction.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Minimal: Test_Minimal.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_MultiThreadedServer: Test_MultiThreadedServer.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_MultipleClient: Test_MultipleClient.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_NetworkPerformance: Test_NetworkPerformance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Notification: Test_Notification.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_ObjectFactoryService: Test_ObjectFactoryService.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Performance: Test_Performance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Polymorphic: Test_Polymorphic.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Serialization: Test_Serialization.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Server_Minimal: Test_Server_Minimal.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_Server_Performance: Test_Server_Performance.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++Test_StubSerialization: Test_StubSerialization.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(LIBSMT)
++
++Test_SingleThreadedServer: Test_SingleThreadedServer_St.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGSST) $(LIBSST)
++Test_CycleServer_St: Test_CycleServer_St.o
++ $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGSST) $(LIBSST)
++
++clean:
++ rm -f $(PROGRAMS) $(OBJS) *~ .depend
++
++%_St.o: %.cpp
++ $(CXX) -c $(CPPFLAGS) $(CDEFINES) $(CXXFLAGS) $< -o $@
++
++%_Mt.o: %.cpp
++ $(CXX) -c $(CPPFLAGS) $(CDEFINES) $(CXXFLAGS) $(CXXTHREADS) $< -o $@
++
++%.o: %.cpp
++ $(CXX) -c $(CPPFLAGS) $(CDEFINES) $(CXXFLAGS) $(CXXTHREADS) $< -o $@
++
++.depend: $(SOURCES)
++ $(CXX) $(CPPFLAGS) $(CDEFINES) -MM $(SOURCES) >$@
++
++ifeq (yes,$(HAS_MM))
++sinclude .depend
++endif
+diff -uNr RCF-0.4-orig/test/Test_Binding.cpp RCF-0.4/test/Test_Binding.cpp
+--- RCF-0.4-orig/test/Test_Binding.cpp 2006-02-07 21:37:18.000000000 +0100
++++ RCF-0.4/test/Test_Binding.cpp 2006-10-24 10:43:51.099624209 +0200
+@@ -25,7 +25,7 @@
+ \r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getTransportFactories().size(); ++i)\r
+ {\r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+ std::pair<RCF::ServerTransportPtr, RCF::ClientTransportAutoPtrPtr> transports = transportFactoryPtr->createTransports();\r
+diff -uNr RCF-0.4-orig/test/Test_ClientConnectionDrop.cpp RCF-0.4/test/Test_ClientConnectionDrop.cpp
+--- RCF-0.4-orig/test/Test_ClientConnectionDrop.cpp 2006-07-30 12:03:52.000000000 +0200
++++ RCF-0.4/test/Test_ClientConnectionDrop.cpp 2006-10-24 11:08:26.273040553 +0200
+@@ -29,7 +29,7 @@
+ \r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getTransportFactories().size(); ++i)\r
+ {\r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+ std::pair<RCF::ServerTransportPtr, RCF::ClientTransportAutoPtrPtr> transports = transportFactoryPtr->createTransports();\r
+diff -uNr RCF-0.4-orig/test/Test_ClientInfo.cpp RCF-0.4/test/Test_ClientInfo.cpp
+--- RCF-0.4-orig/test/Test_ClientInfo.cpp 2006-01-10 19:56:54.000000000 +0100
++++ RCF-0.4/test/Test_ClientInfo.cpp 2006-10-24 11:23:39.441333027 +0200
+@@ -35,7 +35,7 @@
+ \r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getIpTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getIpTransportFactories().size(); ++i)\r
+ {\r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+ std::pair<RCF::ServerTransportPtr, RCF::ClientTransportAutoPtrPtr> transports = transportFactoryPtr->createTransports();\r
+diff -uNr RCF-0.4-orig/test/Test_ClientTimeout.cpp RCF-0.4/test/Test_ClientTimeout.cpp
+--- RCF-0.4-orig/test/Test_ClientTimeout.cpp 2006-03-25 23:37:02.000000000 +0100
++++ RCF-0.4/test/Test_ClientTimeout.cpp 2006-10-24 11:25:10.069308213 +0200
+@@ -44,7 +44,7 @@
+ {\r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getTransportFactories().size(); ++i)\r
+ {\r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+ std::pair<RCF::ServerTransportPtr, RCF::ClientTransportAutoPtrPtr> transports = transportFactoryPtr->createTransports();\r
+diff -uNr RCF-0.4-orig/test/Test_CycleServer.cpp RCF-0.4/test/Test_CycleServer.cpp
+--- RCF-0.4-orig/test/Test_CycleServer.cpp 2006-01-04 08:55:06.000000000 +0100
++++ RCF-0.4/test/Test_CycleServer.cpp 2006-10-24 11:36:36.003409416 +0200
+@@ -46,7 +46,7 @@
+ {\r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getTransportFactories().size(); ++i)\r
+ {\r
+ \r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+@@ -107,7 +107,7 @@
+ serverThread.reset( new boost::thread( boost::bind(serverThreadTask, boost::ref(server)) ) );\r
+ server.addJoinFunctor(joinServerThread);\r
+ \r
+- for (int i=0; i<numberOfTokens; ++i)\r
++ for (int i=0; i<(int)numberOfTokens; ++i)\r
+ {\r
+ bool ok = RCF::createRemoteObject<I_Echo>(myClient);\r
+ BOOST_CHECK(ok);\r
+@@ -118,7 +118,7 @@
+ \r
+ Platform::OS::Sleep(5);\r
+ \r
+- for (int i=0; i<numberOfTokens; ++i)\r
++ for (int i=0; i<(int)numberOfTokens; ++i)\r
+ {\r
+ bool ok = RCF::createRemoteObject<I_Echo>(myClient);\r
+ BOOST_CHECK(ok);\r
+diff -uNr RCF-0.4-orig/test/Test_Endpoint.cpp RCF-0.4/test/Test_Endpoint.cpp
+--- RCF-0.4-orig/test/Test_Endpoint.cpp 2006-02-07 21:37:18.000000000 +0100
++++ RCF-0.4/test/Test_Endpoint.cpp 2006-10-24 11:25:06.821165733 +0200
+@@ -52,7 +52,7 @@
+ \r
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+- for (int i=0; i<RCF::getTransportFactories().size(); ++i)\r
++ for (int i=0; i<(int)RCF::getTransportFactories().size(); ++i)\r
+ {\r
+ RCF::TransportFactoryPtr transportFactoryPtr = RCF::getTransportFactories()[i];\r
+ std::pair<RCF::ServerTransportPtr, RCF::ClientTransportAutoPtrPtr> transports;\r
+diff -uNr RCF-0.4-orig/test/Test_Filters.cpp RCF-0.4/test/Test_Filters.cpp
+--- RCF-0.4-orig/test/Test_Filters.cpp 2006-04-03 20:33:04.000000000 +0200
++++ RCF-0.4/test/Test_Filters.cpp 2006-10-24 11:53:08.334995214 +0200
+@@ -65,21 +65,21 @@
+ {\r
+ RcfClient<X> client(clientTransportAutoPtr->clone());\r
+ \r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+1 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+2 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+1 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+2 );\r
+ \r
+ client.getClientStub().setTransportFilters(filterChains[i]);\r
+ \r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+3 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+4 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+3 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+4 );\r
+ \r
+ if (removable)\r
+ {\r
+ client.getClientStub().setTransportFilters(std::vector<RCF::FilterPtr>());\r
+ }\r
+ \r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+5 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+6 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+5 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+6 );\r
+ }\r
+ \r
+ }\r
+@@ -133,18 +133,18 @@
+ const std::vector<RCF::FilterPtr> &filterChain = filterChains[i];\r
+ \r
+ RcfClient<X> client(clientEndpoint);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+1 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+1 );\r
+ \r
+ client.getClientStub().setPayloadFilters(filterChain);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+2 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+3 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+2 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+3 );\r
+ \r
+ client.getClientStub().setPayloadFilters(std::vector<RCF::FilterPtr>());\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+4 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+4 );\r
+ \r
+ client.getClientStub().setPayloadFilters(filterChain);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+5 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+6 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+5 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+6 );\r
+ }\r
+ \r
+ }\r
+@@ -186,18 +186,18 @@
+ const std::vector<RCF::FilterPtr> &filterChain = filterChains[i];\r
+ \r
+ RcfClient<X> client(clientEndpoint);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+1 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+1 );\r
+ \r
+ client.getClientStub().setPayloadFilters(filterChain);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+2 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+3 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+2 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+3 );\r
+ \r
+ client.getClientStub().setPayloadFilters(std::vector<RCF::FilterPtr>());\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+4 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+4 );\r
+ \r
+ client.getClientStub().setPayloadFilters(filterChain);\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+5 );\r
+- ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*i+6 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+5 );\r
++ ret = client.func(RCF::Twoway); BOOST_CHECK( ret == 6*(int)i+6 );\r
+ }\r
+ \r
+ }\r
+diff -uNr RCF-0.4-orig/test/Test_Inheritance.cpp RCF-0.4/test/Test_Inheritance.cpp
+--- RCF-0.4-orig/test/Test_Inheritance.cpp 2006-01-27 21:42:32.000000000 +0100
++++ RCF-0.4/test/Test_Inheritance.cpp 2006-10-24 12:20:07.734199170 +0200
+@@ -8,6 +8,7 @@
+ #include <RCF/util/CommandLine.hpp>\r
+ #include <RCF/util/PortNumbers.hpp>\r
+ \r
++/*\r
+ // interface inheritance hierarchies\r
+ //\r
+ //A1 <- B1 <- C1 <-\r
+@@ -23,6 +24,7 @@
+ //A1 <- Y <-\r
+ //\r
+ // I_E <- E\r
++*/\r
+ \r
+ RCF_BEGIN(A1, "A1")\r
+ RCF_METHOD_R0(std::string, funcA1)\r
+diff -uNr RCF-0.4-orig/test/Test_IpRestriction.cpp RCF-0.4/test/Test_IpRestriction.cpp
+--- RCF-0.4-orig/test/Test_IpRestriction.cpp 2006-02-07 21:37:18.000000000 +0100
++++ RCF-0.4/test/Test_IpRestriction.cpp 2006-10-24 12:27:45.390368243 +0200
+@@ -33,7 +33,6 @@
+ util::CommandLine::getSingleton().parse(argc, argv);\r
+ \r
+ std::string localIp = "localhost";\r
+- int localPort = 0;\r
+ \r
+ for (unsigned int i=0; i<RCF::getIpTransportFactories().size(); ++i)\r
+ {\r
+diff -uNr RCF-0.4-orig/test/Test_NetworkPerformance.cpp RCF-0.4/test/Test_NetworkPerformance.cpp
+--- RCF-0.4-orig/test/Test_NetworkPerformance.cpp 2006-03-20 15:48:54.000000000 +0100
++++ RCF-0.4/test/Test_NetworkPerformance.cpp 2006-10-24 12:33:16.053031974 +0200
+@@ -222,4 +222,5 @@
+ RCF_VERIFY(0, "no protocol specified");\r
+ }\r
+ \r
+-}
+\ No newline at end of file
++}\r
++\r
+diff -uNr RCF-0.4-orig/test/Test_Notification.cpp RCF-0.4/test/Test_Notification.cpp
+--- RCF-0.4-orig/test/Test_Notification.cpp 2006-03-19 13:20:04.000000000 +0100
++++ RCF-0.4/test/Test_Notification.cpp 2006-10-24 12:34:35.896571773 +0200
+@@ -127,9 +127,9 @@
+ \r
+ for (unsigned int k=0; k<events.size(); ++k)\r
+ {\r
+- BOOST_CHECK(events[k].nA == k);\r
+- BOOST_CHECK(events[k].nB == k);\r
+- BOOST_CHECK(events[k].nC == k);\r
++ BOOST_CHECK(events[k].nA == (int)k);\r
++ BOOST_CHECK(events[k].nB == (int)k);\r
++ BOOST_CHECK(events[k].nC == (int)k);\r
+ }\r
+ }\r
+ \r
+diff -uNr RCF-0.4-orig/test/Test_ObjectFactoryService.cpp RCF-0.4/test/Test_ObjectFactoryService.cpp
+--- RCF-0.4-orig/test/Test_ObjectFactoryService.cpp 2006-04-02 22:29:52.000000000 +0200
++++ RCF-0.4/test/Test_ObjectFactoryService.cpp 2006-10-24 12:37:14.587606124 +0200
+@@ -78,7 +78,7 @@
+ BOOST_CHECK( s == s0 );\r
+ BOOST_CHECK(token != RCF::Token());\r
+ \r
+- for (int j=0; j<numberOfTokens-1;++j)\r
++ for (int j=0; j<(int)numberOfTokens-1;++j)\r
+ {\r
+ ok = RCF::createRemoteObject<I_Echo>(client);\r
+ BOOST_CHECK(ok);\r
+diff -uNr RCF-0.4-orig/test/Test_Polymorphic.cpp RCF-0.4/test/Test_Polymorphic.cpp
+--- RCF-0.4-orig/test/Test_Polymorphic.cpp 2006-04-03 14:33:42.000000000 +0200
++++ RCF-0.4/test/Test_Polymorphic.cpp 2006-10-24 12:45:11.860774284 +0200
+@@ -288,7 +288,7 @@
+ spa = zClient.f2( typeid(C).name() ); BOOST_CHECK( dynamic_cast<C *>(spa.get()) != NULL );\r
+ }\r
+ {\r
+- A *pa = NULL;\r
++ //A *pa = NULL;\r
+ //xClient.f3(typeid(B).name(), pa); BOOST_CHECK( dynamic_cast<B *>(pa) != NULL );\r
+ //xClient.f3(typeid(C).name(), pa); BOOST_CHECK( dynamic_cast<C *>(pa) != NULL );\r
+ \r
+diff -uNr RCF-0.4-orig/test/Test_Serialization.cpp RCF-0.4/test/Test_Serialization.cpp
+--- RCF-0.4-orig/test/Test_Serialization.cpp 2006-04-03 15:33:56.000000000 +0200
++++ RCF-0.4/test/Test_Serialization.cpp 2006-10-24 12:49:32.708372131 +0200
+@@ -507,7 +507,7 @@
+ \r
+ // Single dimensional static array\r
+ int pn1[SIZE];\r
+- for (int i=0;i<SIZE;i++)\r
++ for (int i=0;i<(int)SIZE;i++)\r
+ pn1[i] = i-20;\r
+ \r
+ int pn2[SIZE];\r
+diff -uNr RCF-0.4-orig/test/port.txt RCF-0.4/test/port.txt
+--- RCF-0.4-orig/test/port.txt 1970-01-01 01:00:00.000000000 +0100
++++ RCF-0.4/test/port.txt 2006-10-24 15:51:18.531284783 +0200
+@@ -0,0 +1 @@
++50271
+\ No newline at end of file