Delta V Software

Appendix - Release Notes

Documentation


PrevUpHomeNext
  • This is a bug-fix release for RCF 1.3.
  • Fix for compiler error when using signed char in RCF method signatures.
  • Fix performance problem when using RCF::SspiFilter. Multiple small message chunks are now merged into a single larger chunk to improve network performance.
  • Improve SF serialization performance. Only call typeid() when necessary.
  • Reduced SF archive sizes. Encode small integers using a single byte rather than 4 bytes.
  • Fix excessive CPU usage when using multithreaded thread pools with Boost.Asio based transports.
  • Fix for boost::any serialization. Empty boost::any instances were causing an exception to be thrown.
  • Fix bug in client-side timeout logic when polling network connection using Windows MsgWaitForMultipleObjects() function.
  • Services can no longer be added or removed while an RcfServer is running.
  • Fix potential null pointer crash in marshaling logic.
  • Rename variables named signals and slots in order not to interfere with QT preprocessor.
  • Fix preprocessor redefinition which was causing a compiler warning on OSX.
  • Support for IPv6.
  • IP-based access rules, to grant or deny access to IP-based servers.
  • IP-based client transports able to bind to a specific local interface.
  • Client able to query for size of its latest request and response messages.
  • User data fields in request and response headers.
  • Running multiple server transports on the same thread pool.
  • Server-side caching of application objects.
  • Default max message length changed from 10Kb to 1Mb.
  • Maximum number of methods in an RCF interface increased from 35 to 100.
  • Extended auto-versioning to negotiate archive version as well as runtime version.
  • SF serialization
    • Support for tr1 containers and tr1 smart pointers.
    • Support for boost::intrusive_ptr<>.
    • Serialization of std::wstring changed, to use UTF-8.
  • Boost.Serialization serialization of RCF::Exception now includes error arguments as well as the error message.
  • Fix byte ordering of fast vector serialization, for big-endian platforms.
  • Improved efficiency of Boost.Asio based server transports - no memory allocations when reading or writing network data.
  • For Boost.Asio based server transports, added AsioServerTransport::getIoService() to expose the internal boost::asio::io_service object.
  • Added complete example of server-to-client callbacks, to User Guide.
  • Added FAQ, on server-side detection of client disconnection.
  • Compatibility
    • Support for Visual Studio 2010 compiler.
    • Dropped support for mingw gcc 3.2 & 3.3.
    • Dropped support for Borland C++ Builder 2006.
    • Tested against Boost versions up to 1.45.0.
  • Support use of Protocol Buffers-generated classes, in RCF interfaces.
  • Support Protocol Buffers-based marshaling protocol.
  • Support for batched oneway calls.
  • Improved error messages, with context-specific arguments.
  • Improvements to versioning - SF archive version now passed in message header.
  • Signature of SF serialization functions changed, to remove redundant version parameter.
  • Calling serializeParent() no longer requires type registration.
  • serializeParent() moved into SF namespace.
  • Added configuration macro to control behavior on assert (RCF_ALWAYS_ABORT_ON_ASSERT).
  • Fix serialization of RemoteException, when using Boost.Serialization.
  • Fix several regressions introduced in 1.1.
    • Fix for thread-safety issue with pingback functionality.
    • Fix for subsecond timeouts on Unix platforms.
    • Fix compilation errors on Windows, if _WIN32_WINNT <= 0x0500.
  • Tested against Boost versions up to 1.42.0.
  • Dropped support for gcc 2.95.
  • Updates to the RCF User Guide:
  • Ping function added to RCF::ClientStub.
  • Server-to-client pingbacks, for maintaining connectivity during long-running calls (RCF::PingBackService).
  • Server-to-client callbacks.
  • Dynamic thread pool grows and shrinks, to accommodate client load. User level code no longer needs to call ThreadManager::notifyBusy().
  • Progress callbacks on all transports.
  • Schannel-based transport filter, for SSL encryption on Windows platforms (RCF::SchannelFilter).
  • Support for __attribute__(visibility()) when exporting RCF from shared libraries with GCC 4.x.
  • Memory usage optimizations.
  • Tested against Boost versions up to 1.39.0.
  • Support for more compilers (Intel C++ 9 and 10.1 for Windows, GCC 4.3)
  • Support for more platforms (FreeBSD and OS X).
  • Supports use of UNIX domain sockets as transport (RCF::UnixLocalEndpoint).
  • Tested against Boost versions up to 1.37.0.
  • Win32 named pipe transport implementations (RCF::Win32NamedPipeEndpoint).
  • Boost.Thread no longer required.
  • UDP multicasting and broadcasting.
  • SF serialization for boost::tuple, boost::variant, and boost::any.
  • Support for exporting RCF from a DLL.
  • Tested against Boost versions up to 1.35.0 and Boost.Asio versions from 0.3.8.
  • Zero-copy, zero-heap allocation core for fast and scalable performance.
  • Kerberos and NTLM authentication and encryption on Windows platforms.
  • OpenSSL filter, for SSL authentication and encryption.
  • Server-side multithreading.
  • Server-side session objects.
  • Built-in runtime versioning, for backward and forward runtime compatibility.
  • Robust publish/subscribe functionality.
  • Support for legacy compilers, in particular, Visual C++ 6, Borland C++ Builder 6, and GCC 2.95.
  • Support for 64-bit compilers.

PrevUpHomeNext