-
Trigger compiler error if user defines
UNICODE
or _UNICODE
when building
RCF on non-Windows platforms.
-
Fix compiler error when using
RCF_USE_BOOST_FILESYSTEM
together with RCF_USE_BOOST_SERIALIZATION
.
-
Downloads:
-
Fix bug with
ClientStub::setEnableCompression()
not applying compression in some circumstances.
-
Downloads:
-
Add demo solution for Visual Studio 2012.
-
Add workaround for IOCP
bug in Windows 8 and Windows Server 2012.
-
Add SF serialization for various C++0x types:
std::unique_ptr<>
, std::tuple<>
, std::shared_ptr<>
, std::array<>
. See Serialization.
-
Add PDF
version of RCF User
Guide.
-
Downloads:
-
Fix compiler error occuring on gcc 4.7+.
-
Fix compiler error occuring on clang.
-
Downloads:
-
Fix compiler error when
RCF_USE_BOOST_SERIALIZATION
is defined but not RCF_USE_SF_SERIALIZATION
.
-
Improve JSON-RPC response message from server, when server fails to parse
JSON-RPC request.
-
Downloads:
-
Configuration of RCF logging (see Appendix
- Logging).
-
Disable
SIGPIPE
signals
on non-Windows platforms.
-
Downloads:
-
Reinstate support for UNIX
domain socket transports.
-
Preserve last file modification timestamps, when transferring files.
-
Add
I_ServerTransport::getInitialNumberOfCOnnections()
/ I_ServerTransport::setInitialNumberOfCOnnections()
to get and set the initial number of
listening connections that are created when a server transport starts.
Default value is 1.
-
Fix Winsock compiler errors in Visual Studio 2003 demo projects, by defining
WIN32_LEAN_AND_MEAN
.
-
Downloads:
-
Introduce
RCF_USE_BOOST_ASIO
configuration macro, to build RCF against the version of Asio that is
in Boost. If RCF_USE_BOOST_ASIO
is not defined, RCF will be built against the version of Asio that is
included in RCF.
-
Fix compiler errors when building on Cygwin. For Cygwin builds,
RCF_USE_BOOST_ASIO
is defined automatically.
-
Fix bug with asynchronous call dispatching, when used with oneway calls.
-
Fix possible busy loop in
RCF_VERIFY()
macro.
-
Downloads:
-
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.
-
Downloads:
-
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 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.
-
Downloads:
-
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:
-
Added documentation for publish/subscribe topics.
-
Added documentation for Protocol Buffer support.
-
Rewrote section on Versioning.
-
Documented workaround for internal compiler error with Borland
C++Builder 2007.
-
Added release notes.
-
Downloads:
-
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.
-
Downloads:
-
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.
-
Downloads:
-
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.
-
Downloads:
-
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.