This section is intended to assist users who are transitioning their codebases from RCF 2.2 to RCF 3.0.
RCF 2.2 maintained compatibility with a wide range of older C++ compilers.
RCF 3.0 is only compatible with compilers that support the C++11 and C++14 language updates.
For Windows development, this means you need to use Visual C++ 2015 or later to build against RCF 3.0.
For non-Windows development, you should use the latest versions of gcc or clang that you have available. RCF 3.0 has been tested against gcc 7.0 and clang 4.0.
RCF_FEATURE_BOOST_SERIALIZATION
) is deprecated and support for it will be removed in a future release.RCF 2.2 had a dependency on the Boost library, and a number of Boost types were utilized in RCF headers.
RCF 3.0 has no dependency on Boost at all, and Boost types have been replaced as follows:
RCF 2.2 | RCF 3.0 |
---|---|
boost::shared_ptr<> | std::shared_ptr<> |
boost::function<> | std::function<> |
boost::uint32_t etc | std::uint32_t etc |
The following table lists RCF header files that have moved.
RCF 2.2 | RCF 3.0 |
---|---|
#include <RCF/util/Log.hpp> | #include <RCF/Log.hpp> |
#include <SF/any.hpp> | #include <SF/boost/any.hpp> |
#include <SF/array_boost.hpp> | #include <SF/boost/array.hpp> |
#include <SF/shared_ptr_boost.hpp> | #include <SF/boost/shared_ptr.hpp> |
#include <SF/intrusive_ptr.hpp> | #include <SF/boost/intrusive_ptr.hpp> |
#include <SF/scoped_ptr.hpp> | #include <SF/boost/scoped_ptr.hpp> |
#include <SF/tuple.hpp> | #include <SF/boost/tuple.hpp> |
#include <SF/variant.hpp> | #include <SF/boost/variant.hpp> |
#include <SF/array_tr1.hpp> | #include <SF/tr1/array.hpp> |
#include <SF/shared_ptr_tr1.hpp> | #include <SF/tr1/shared_ptr.hpp> |
#include <SF/tuple_tr1.hpp> | #include <SF/tr1/tuple.hpp> |
#include <SF/array_std.hpp> | #include <SF/array.hpp> |
#include <SF/shared_ptr_std.hpp> | #include <SF/shared_ptr.hpp> |
#include <SF/tuple_std.hpp> | #include <SF/tuple.hpp> |
#include <SF/Q*.hpp> | #include <SF/qt/Q*.hpp> |
The following table lists classes and functions that have been renamed.
RCF 2.2 | RCF 3.0 |
---|---|
RCF::RcfInitDeinit | RCF::RcfInit |
RCF::getGlobals() | RCF::globals() |
RCF::Exception::getErrorString() | RCF::Exception::getErrorMessage() |
RCF::ClientProgress | No longer exists. Use RCF::ClientStub::setRemoteCallProgressCallback() . |
RCF::ClientStub::setEndpoint() | RCF::ClientStub::setServerEndpoint() |
RCF::ClientStub::getUsername() | RCF::ClientStub::getUserName() |
RCF::ClientStub::setUsername() | RCF::ClientStub::setUserName() |
RCF::ClientStub::getHttpProxyUsername() | RCF::ClientStub::getHttpProxyUserName() |
RCF::ClientStub::setHttpProxyUsername() | RCF::ClientStub::setHttpProxyUserName() |
RCF::RcfSession::getClientUsername() | RCF::RcfSession::getClientUserName() |
RCF::RcfServer::setSessionTimeoutMs() | RCF::RcfServer::setConnectionIdleTimeoutMs() |
RCF::RcfServer::getSessionTimeoutMs() | RCF::RcfServer::getConnectionIdleTimeoutMs() |
RCF::RcfServer::setSessionHarvestingIntervalMs() | RCF::RcfServer::setConnectionIdleScanIntervalMs() |
RCF::RcfServer::getSessionHarvestingIntervalMs() | RCF::RcfServer::getConnectionIdleScanIntervalMs() |
RCF::ServerTransport::setMaxMessageLength() | RCF::ServerTransport::setMaxIncomingMessageLength() |
RCF::ServerTransport::getMaxMessageLength() | RCF::ServerTransport::getMaxIncomingMessageLength() |
RCF::ClientTransport::setMaxMessageLength() | RCF::ClientTransport::setMaxIncomingMessageLength() |
RCF::ClientTransport::getMaxMessageLength() | RCF::ClientTransport::getMaxIncomingMessageLength() |
RCF::CertificateValidationCb | RCF::CertificateValidationCallback |
RCF::CbAccessControl | RCF::AccessControlCallback |
RCF::FileProgressCb | RCF::FileProgressCallback |
RCF::getDefaultRuntimeVersion() | RCF::getRuntimeVersion() |
RCF::setDefaultRuntimeVersion() | RCF::setRuntimeVersion() |
RCF::getDefaultArchiveVersion() | RCF::getArchiveVersion() |
RCF::setDefaultArchiveVersion() | RCF::setArchiveVersion() |
RCF::getLibraryVersion() | RCF::getMaxSupportedRuntimeVersion() |
RCF::RemoteCallRequest | RCF::RemoteCallInfo |
The RCF_AUTO_INIT_DEINIT
define is no longer supported. Application code must explicitly initialize RCF using RCF::RcfInit
or by calling RCF::init()
.
Most RCF_USE_XXX
defines are deprecated, and replaced with feature defines (see Feature Defines). For example, if you built RCF 2.2 with OpenSSL and ZLib support by defining RCF_USE_OPENSSL
and RCF_USE_ZLIB
, you should now instead define RCF_FEATURE_OPENSSL=1
and RCF_FEATURE_ZLIB=1
.