diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 9fb76b2e844..a6cc45274f5 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -9,9 +9,7 @@ runs: shell: bash if: runner.os == 'macOS' || runner.os == 'Linux' - - name: Build C++ 11 Tests for Scripting Languages - env: - CONFIGS: "cpp11-shared" + - name: Build C++ Tests for Scripting Languages run: make -j3 V=1 -C cpp tests shell: bash if: (runner.os == 'macOS' || runner.os == 'Linux') && (matrix.language == 'php' || matrix.language == 'js' || matrix.language == 'ruby') diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml index 23202a44e15..475945db2e2 100644 --- a/.github/actions/test/action.yml +++ b/.github/actions/test/action.yml @@ -14,25 +14,10 @@ runs: shell: bash if: runner.os == 'macOS' || runner.os == 'Linux' - - name: Test C++98 - run: python3 allTests.py --debug --all --continue --workers=4 --export-xml=test-report.xml --config=cpp98-shared --languages=cpp --languages=cpp ${{ inputs.flags }} - shell: bash - if: (runner.os == 'macOS' || runner.os == 'Linux') && matrix.language == 'cpp' - - - name: Test - run: python allTests.py --debug --all --continue --export-xml=test-report.xml --platform=x64 --config=Cpp11-Release --workers=4 --languages=${{ matrix.language }} ${{ inputs.flags }} - shell: powershell - if: runner.os == 'Windows' && matrix.language != 'python' - - name: Test run: python allTests.py --debug --all --continue --export-xml=test-report.xml --platform=x64 --config=Release --workers=4 --languages=${{ matrix.language }} ${{ inputs.flags }} shell: powershell - if: runner.os == 'Windows' && matrix.language == 'python' - - - name: Test C++98 - run: python allTests.py --debug --all --continue --export-xml=test-report.xml --platform=x64 --config=Release --workers=4 --languages=cpp ${{ inputs.flags }} - shell: powershell - if: runner.os == 'Windows'&& matrix.language == 'cpp' + if: runner.os == 'Windows' - name: Test Summary uses: test-summary/action@v2 diff --git a/cpp/BUILDING.md b/cpp/BUILDING.md index 3865f970c22..c7fe9d68772 100644 --- a/cpp/BUILDING.md +++ b/cpp/BUILDING.md @@ -205,19 +205,6 @@ To build all the supported configurations and platforms: make CONFIGS=all PLATFORMS=all -j8 ``` -### C++11 mapping - -The C++ source tree supports two different language mappings (C++98 and C++11). -The default build uses the C++98 mapping. The C++11 mapping is a new mapping -that uses new language features. - -To build the C++11 mapping, use build configurations that are prefixed with -`cpp11`, for example: - -```shell -make CONFIGS=cpp11-shared -j8 -``` - ### Ice Xcode SDK (macOS only) The build system supports building Xcode SDKs for Ice. These SDKs allow you to @@ -375,10 +362,6 @@ When compiling Ice programs, you must pass the location of the `/include` directory to the compiler with the `-I` option, and the location of the library directory with the `-L` option. -If building a C++11 program, you must define the `ICE_CPP11_MAPPING` macro -during compilation with the `-D` option (`c++ -DICE_CPP11_MAPPING`) and add the -`++11` suffix to the library name when linking (such as `-lIce++11`). - ## Creating a NuGet Package on Windows You can create a NuGet package with the following command: @@ -396,7 +379,7 @@ configuration and platform. To clean the binaries produced for a specific configuration or platform, you need to specify the `CONFIGS` or `PLATFORMS` variable. For example, -`make CONFIGS=cpp11-shared clean` will clean the C++11 mapping build. +`make CONFIGS=static clean` will clean the static configuration build. To clean the build for all the supported configurations and platforms, run `make CONFIGS=all PLATFORMS=all clean`. @@ -419,31 +402,7 @@ pip install passlib After a successful source build, you can run the tests as follows: ```shell -python allTests.py # default config (C++98) and platform -``` - -For the C++11 mapping, you need to specify a C++11 config: - -- Linux/macOS - -```shell -python allTests.py --config=cpp11-shared # cpp11-shared config with the default platform -``` - -- Windows C++11 debug builds - -```shell -python allTests.py --config Cpp11-Debug -``` - -- Windows C++11 release builds - -```shell -python allTests.py --config Cpp11-Release -``` - -If everything worked out, you should see lots of `ok` messages. In case of a -failure, the tests abort with `failed`. +python allTests.py # default config and platform ### iOS diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules index df9cecb3fbe..018bff9dbee 100644 --- a/cpp/config/Make.rules +++ b/cpp/config/Make.rules @@ -9,8 +9,8 @@ # # Supported configurations # -supported-configs = cpp98-shared cpp98-static cpp11-shared cpp11-static -default-configs = cpp11-shared cpp98-shared +supported-configs = shared static +default-configs = shared -include $(lang_srcdir)/config/Make.rules.$(os) ifeq ($(os),Darwin) @@ -62,73 +62,15 @@ static_projects = test/Common \ static_excludes = test/Ice/library test/Ice/plugin -# -# Components and projects which are built with C++98 -# -cpp98_cppflags = -std=c++17 -cpp98_projects = % -cpp98_excludes = glacier2router \ - icebridge \ - icepatch2server icepatch2client icepatch2calc \ - icegridnode icegridregistry icegridadmin icegriddb \ - IceStormService icestormadmin icestormdb \ - IceXML \ - IceDB \ - test/Glacier2/% \ - test/IceBridge/% \ - test/IceGrid/% \ - test/IceStorm/% - -# -# Components and projects which are built with C++11 -# -cpp11_components = $(coreandstub_components) \ - glacier2router Glacier2CryptPermissionsVerifier \ - icebox icebridge \ - icepatch2server icepatch2client icepatch2calc \ - IceDB \ - IceXML \ - icegridnode icegridregistry icegridadmin icegriddb \ - IceStormService icestormadmin icestormdb \ - -cpp11_projects = test/Common \ - test/IceUtil/% \ - test/Slice/% \ - test/Ice/% \ - test/IceSSL/% \ - test/IceDiscovery/% \ - test/IceBox/% \ - test/IceGrid/% \ - test/IceStorm/% \ - test/Glacier2/% \ - test/IceGrid/% \ - test/IceBridge/simple - # # If building on a Linux multilib platform, we restrict what we build for -# the 32-bits architecture. We basically, build the same set of components -# as C++11 (libraries and icebox executable). +# the 32-bits architecture. # ifeq ($(multilib-platform),yes) x86_components = $(coreandstub_components) IceDB IceStormService icebox x86_projects = test/% endif -# -# C++11 configuration to build the C++11 mapping. -# -# Appends cpp11 to the configuration directory name. If we are building the -# target outside the component build directory, we also append the ++11 -# suffix to the targetname. This is for example how icebox is compiled as -# icebox++11 when compiled with the C++11 configuration. We also don't add -# the cpp11 name to the target directory if building outside the build -# directory. -# -cpp11_cppflags = -DICE_CPP11_MAPPING -cpp11_ldflags = $(cpp11_cppflags) -cpp11_targetname = $(if $(or $(filter-out $($1_target),program),$(filter $(bindir)%,$($4_targetdir))),++11) -cpp11_targetdir = $(if $(filter %/build,$5),cpp11) - # # $(call make-cpp-src-project,$1=project) # @@ -168,8 +110,6 @@ $1[static]_dependencies := IceSSL $(if $(IceBT_system_libs),IceBT) $1[xcodesdk]_dependencies := IceSSL $1[iphoneos-xcodesdk]_targetdir := test/ios/bundles/Bundles-iphoneos/$(subst /,_,$1) $1[iphonesimulator-xcodesdk]_targetdir := test/ios/bundles/Bundles-iphonesimulator/$(subst /,_,$1) -$1[iphoneos-cpp11-xcodesdk]_targetdir := test/ios/bundles/Bundles++11-iphoneos/$(subst /,_,$1) -$1[iphonesimulator-cpp11-xcodesdk]_targetdir := test/ios/bundles/Bundles++11-iphonesimulator/$(subst /,_,$1) $(create-test-project) endef diff --git a/cpp/include/Glacier2/Application.h b/cpp/include/Glacier2/Application.h index bd4927fc4c5..a9f9057bce0 100644 --- a/cpp/include/Glacier2/Application.h +++ b/cpp/include/Glacier2/Application.h @@ -24,9 +24,6 @@ class GLACIER2_API RestartSessionException : public IceUtil::ExceptionHelper -#else - : public virtual IceUtil::Shared -#endif +class GLACIER2_API SessionFactoryHelper : public std::enable_shared_from_this { /// \cond INTERNAL friend class SessionThreadCallback; // To access thread functions diff --git a/cpp/include/Ice/Application.h b/cpp/include/Ice/Application.h index 973b8728413..d195a834617 100644 --- a/cpp/include/Ice/Application.h +++ b/cpp/include/Ice/Application.h @@ -16,14 +16,10 @@ namespace Ice using IceUtil::CtrlCHandler; using IceUtil::CtrlCHandlerCallback; -#ifdef ICE_CPP11_MAPPING /** * Determines how the Application class handles signals. */ enum class SignalPolicy : unsigned char -#else -enum SignalPolicy -#endif { /** Enables signal handling. */ HandleSignals, @@ -47,12 +43,10 @@ class ICE_API Application */ Application(SignalPolicy policy = ICE_ENUM(SignalPolicy, HandleSignals)); -#ifdef ICE_CPP11_MAPPING /// \cond IGNORE Application(const Application&) = delete; Application& operator=(const Application&) = delete; /// \endcond -#endif virtual ~Application(); @@ -310,15 +304,6 @@ class ICE_API Application static void destroyOnInterruptCallback(int); static void shutdownOnInterruptCallback(int); static void callbackOnInterruptCallback(int); - -#ifndef ICE_CPP11_MAPPING - // - // Not defined, make Application non-copyable - // - Application(const Application&); - Application& operator=(const Application&); -#endif - }; } diff --git a/cpp/include/Ice/AsyncResult.h b/cpp/include/Ice/AsyncResult.h deleted file mode 100644 index 00c8de73588..00000000000 --- a/cpp/include/Ice/AsyncResult.h +++ /dev/null @@ -1,153 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_ASYNC_RESULT_H -#define ICE_ASYNC_RESULT_H - -#ifndef ICE_CPP11_MAPPING - -#include -#include -#include -#include -#include -#include -#include - -namespace Ice -{ - -/** - * Represents the result of an asynchronous invocation using the C++98 mapping. - * \headerfile Ice/Ice.h - */ -class ICE_API AsyncResult : private IceUtil::noncopyable, public Ice::LocalObject -{ -public: - - virtual ~AsyncResult(); - - /** - * Prevents a queued invocation from being sent or, if the invocation has already been sent, - * ignores a reply if the server sends one. cancel is a local operation and has no effect - * on the server. A canceled invocation is considered to be completed, meaning isCompleted - * returns true, and the result of the invocation is an InvocationCanceledException. - */ - virtual void cancel() = 0; - - /** - * Allows you to create ordered or hashed collections of pending asynchronous invocations. - * @return A unique hash code for this object. - */ - virtual Int getHash() const = 0; - - /** - * Obtains the communicator that sent the invocation. - * @return A reference to the communicator. - */ - virtual CommunicatorPtr getCommunicator() const = 0; - - /** - * Obtains the connection that was used for the invocation. Note that, for typical asynchronous - * proxy invocations, this method returns a nil value because the possibility of automatic retries - * means the connection that is currently in use could change unexpectedly. The getConnection - * method only returns a non-nil value when the AsyncResult object is obtained by calling - * Connection::begin_flushBatchRequests. - * @return A reference to the connection. - */ - virtual ConnectionPtr getConnection() const = 0; - - /** - * Obtains the proxy that was used to call the begin_ method, or nil if the AsyncResult object was - * not obtained via an asynchronous proxy invocation. - * @return A reference to the proxy. - */ - virtual ObjectPrxPtr getProxy() const = 0; - - /** - * Obtains the completion status of the invocation. - * @return True if, at the time it is called, the result of an invocation is available, indicating - * that a call to the end_ method will not block the caller. Otherwise, if the result is not yet - * available, the method returns false. - */ - virtual bool isCompleted() const = 0; - - /** - * Blocks the caller until the result of an invocation becomes available. - */ - virtual void waitForCompleted() = 0; - - /** - * Obtains the sent status of the invocation. - * @return True if, at the time it is called, the request has been written to the local transport - * (whether it was initially queued or not). Otherwise, if the request is still queued or an - * exception occurred before the request could be sent, this method returns false. - */ - virtual bool isSent() const = 0; - - /** - * Blocks the calling thread until a request has been written to the client-side transport, - * or an exception occurs. - */ - virtual void waitForSent() = 0; - - /** - * Throws the local exception that caused the invocation to fail. If no exception has occurred yet, - * this method does nothing. - */ - virtual void throwLocalException() const = 0; - - /** - * Determines whether the request was sent synchronously. - * @return True if a request was written to the client-side transport without first being queued. - * If the request was initially queued, sentSynchronously returns false (independent of whether - * the request is still in the queue or has since been written to the client-side transport). - */ - virtual bool sentSynchronously() const = 0; - - /** - * Obtains the cookie that was passed to the begin_ method. - * @return The cookie, or nil if you did not pass a cookie to the begin_ method. - */ - virtual LocalObjectPtr getCookie() const = 0; - - /** - * Obtains the name of the operation. - * @return The operation name. - */ - virtual const std::string& getOperation() const = 0; - - /// \cond INTERNAL - virtual bool _waitForResponse() = 0; - virtual Ice::InputStream* _startReadParams() = 0; - virtual void _endReadParams() = 0; - virtual void _readEmptyParams() = 0; - virtual void _readParamEncaps(const ::Ice::Byte*&, ::Ice::Int&) = 0; - virtual void _throwUserException() = 0; - - static void _check(const AsyncResultPtr&, const ::IceProxy::Ice::Object*, const ::std::string&); - static void _check(const AsyncResultPtr&, const Connection*, const ::std::string&); - static void _check(const AsyncResultPtr&, const Communicator*, const ::std::string&); - - class Callback : public IceUtil::Shared - { - public: - - virtual void run() = 0; - }; - typedef IceUtil::Handle CallbackPtr; - /// \endcond - -protected: - - /// \cond INTERNAL - static void check(const AsyncResultPtr&, const ::std::string&); - /// \endcond -}; - -} - -#endif - -#endif diff --git a/cpp/include/Ice/AsyncResultF.h b/cpp/include/Ice/AsyncResultF.h deleted file mode 100644 index 79feb963464..00000000000 --- a/cpp/include/Ice/AsyncResultF.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_ASYNC_RESULT_F_H -#define ICE_ASYNC_RESULT_F_H - -#ifndef ICE_CPP11_MAPPING - -#include -#include - -namespace Ice -{ - -class AsyncResult; -ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*); -typedef IceInternal::Handle AsyncResultPtr; - -} - -#endif -#endif diff --git a/cpp/include/Ice/BatchRequestInterceptor.h b/cpp/include/Ice/BatchRequestInterceptor.h index a65fbef8424..efc6ebda426 100644 --- a/cpp/include/Ice/BatchRequestInterceptor.h +++ b/cpp/include/Ice/BatchRequestInterceptor.h @@ -47,29 +47,6 @@ class BatchRequest virtual const Ice::ObjectPrxPtr& getProxy() const = 0; }; -#ifndef ICE_CPP11_MAPPING - -/** - * The base class for a batch request interceptor. Subclasses must implement enqueue. - * The interceptor can be installed via InitializationData. - * \headerfile Ice/Ice.h - */ -class BatchRequestInterceptor : public IceUtil::Shared -{ -public: - - /** - * Called by the Ice run time to enqueue a batch request. - * @param req An object representing the batch request. - * @param count The number of requests currently in the queue. - * @param size The number of bytes consumed by the requests currently in the queue. - */ - virtual void enqueue(const BatchRequest& req, int count, int size) = 0; -}; -typedef IceUtil::Handle BatchRequestInterceptorPtr; - -#endif - } #endif diff --git a/cpp/include/Ice/Communicator.h b/cpp/include/Ice/Communicator.h index 14551dc8665..85ad8550893 100644 --- a/cpp/include/Ice/Communicator.h +++ b/cpp/include/Ice/Communicator.h @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -44,8 +43,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -458,449 +455,5 @@ using CommunicatorPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceProxy -{ - -} - -namespace Ice -{ - -class Communicator; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Communicator*); -/// \endcond -typedef ::IceInternal::Handle< Communicator> CommunicatorPtr; - -} - -namespace Ice -{ - -/** - * The output mode for xxxToString method such as identityToString and proxyToString. The actual encoding format for - * the string is the same for all modes: you don't need to specify an encoding format or mode when reading such a - * string. - */ -enum ToStringMode -{ - /** - * Characters with ordinal values greater than 127 are kept as-is in the resulting string. Non-printable ASCII - * characters with ordinal values 127 and below are encoded as \\t, \\n (etc.) or \\unnnn. - */ - Unicode, - /** - * Characters with ordinal values greater than 127 are encoded as universal character names in the resulting - * string: \\unnnn for BMP characters and \\Unnnnnnnn for non-BMP characters. Non-printable ASCII characters - * with ordinal values 127 and below are encoded as \\t, \\n (etc.) or \\unnnn. - */ - ASCII, - /** - * Characters with ordinal values greater than 127 are encoded as a sequence of UTF-8 bytes using octal escapes. - * Characters with ordinal values 127 and below are encoded as \\t, \\n (etc.) or an octal escape. Use this mode - * to generate strings compatible with Ice 3.6 and earlier. - */ - Compat -}; - -} - -/// \cond INTERNAL -namespace IceAsync -{ - -} -/// \endcond - -namespace Ice -{ - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Communicator::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Communicator_flushBatchRequests. - */ -class Callback_Communicator_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Communicator_flushBatchRequests_Base> Callback_Communicator_flushBatchRequestsPtr; - -} - -namespace IceProxy -{ - -} - -namespace Ice -{ - -/** - * The central object in Ice. One or more communicators can be instantiated for an Ice application. Communicator - * instantiation is language-specific, and not specified in Slice code. - * @see Logger - * @see ObjectAdapter - * @see Properties - * @see ValueFactory - * \headerfile Ice/Ice.h - */ -class ICE_API Communicator : public virtual LocalObject -{ -public: - - typedef CommunicatorPtr PointerType; - - virtual ~Communicator(); - - Communicator() = default; - Communicator(const Communicator&) = default; - Communicator& operator=(const Communicator&) = default; - - /** - * Destroy the communicator. This operation calls {@link #shutdown} implicitly. Calling {@link #destroy} cleans up - * memory, and shuts down this communicator's client functionality and destroys all object adapters. Subsequent - * calls to {@link #destroy} are ignored. - * @see #shutdown - * @see ObjectAdapter#destroy - */ - virtual void destroy() noexcept = 0; - - /** - * Shuts down this communicator's server functionality, which includes the deactivation of all object adapters. - * Attempts to use a deactivated object adapter raise ObjectAdapterDeactivatedException. Subsequent calls to - * shutdown are ignored. - * After shutdown returns, no new requests are processed. However, requests that have been started before shutdown - * was called might still be active. You can use {@link #waitForShutdown} to wait for the completion of all - * requests. - * @see #destroy - * @see #waitForShutdown - * @see ObjectAdapter#deactivate - */ - virtual void shutdown() noexcept = 0; - - /** - * Wait until the application has called {@link #shutdown} (or {@link #destroy}). On the server side, this - * operation blocks the calling thread until all currently-executing operations have completed. On the client - * side, the operation simply blocks until another thread has called {@link #shutdown} or {@link #destroy}. - * A typical use of this operation is to call it from the main thread, which then waits until some other thread - * calls {@link #shutdown}. After shut-down is complete, the main thread returns and can do some cleanup work - * before it finally calls {@link #destroy} to shut down the client functionality, and then exits the application. - * @see #shutdown - * @see #destroy - * @see ObjectAdapter#waitForDeactivate - */ - virtual void waitForShutdown() noexcept = 0; - - /** - * Check whether communicator has been shut down. - * @return True if the communicator has been shut down; false otherwise. - * @see #shutdown - */ - virtual bool isShutdown() const noexcept = 0; - - /** - * Convert a stringified proxy into a proxy. - * For example, MyCategory/MyObject:tcp -h some_host -p 10000 creates a proxy that refers to the Ice - * object having an identity with a name "MyObject" and a category "MyCategory", with the server running on host - * "some_host", port 10000. If the stringified proxy does not parse correctly, the operation throws one of - * ProxyParseException, EndpointParseException, or IdentityParseException. Refer to the Ice manual for a detailed - * description of the syntax supported by stringified proxies. - * @param str The stringified proxy to convert into a proxy. - * @return The proxy, or nil if str is an empty string. - * @see #proxyToString - */ - virtual ObjectPrx stringToProxy(const ::std::string& str) const = 0; - - /** - * Convert a proxy into a string. - * @param obj The proxy to convert into a stringified proxy. - * @return The stringified proxy, or an empty string if - * obj is nil. - * @see #stringToProxy - */ - virtual ::std::string proxyToString(const ObjectPrx& obj) const = 0; - - /** - * Convert a set of proxy properties into a proxy. The "base" name supplied in the property argument - * refers to a property containing a stringified proxy, such as MyProxy=id:tcp -h localhost -p 10000. - * Additional properties configure local settings for the proxy, such as MyProxy.PreferSecure=1. The - * "Properties" appendix in the Ice manual describes each of the supported proxy properties. - * @param property The base property name. - * @return The proxy. - */ - virtual ObjectPrx propertyToProxy(const ::std::string& property) const = 0; - - /** - * Convert a proxy to a set of proxy properties. - * @param proxy The proxy. - * @param property The base property name. - * @return The property set. - */ - virtual PropertyDict proxyToProperty(const ObjectPrx& proxy, const ::std::string& property) const = 0; - - /** - * Convert an identity into a string. - * @param ident The identity to convert into a string. - * @return The "stringified" identity. - */ - virtual ::std::string identityToString(const Identity& ident) const = 0; - - /** - * Create a new object adapter. The endpoints for the object adapter are taken from the property - * name.Endpoints. - * It is legal to create an object adapter with the empty string as its name. Such an object adapter is accessible - * via bidirectional connections or by collocated invocations that originate from the same communicator as is used - * by the adapter. Attempts to create a named object adapter for which no configuration can be found raise - * InitializationException. - * @param name The object adapter name. - * @return The new object adapter. - * @see #createObjectAdapterWithEndpoints - * @see ObjectAdapter - * @see Properties - */ - virtual ObjectAdapterPtr createObjectAdapter(const ::std::string& name) = 0; - - /** - * Create a new object adapter with endpoints. This operation sets the property - * name.Endpoints, and then calls {@link #createObjectAdapter}. It is provided as a - * convenience function. Calling this operation with an empty name will result in a UUID being generated for the - * name. - * @param name The object adapter name. - * @param endpoints The endpoints for the object adapter. - * @return The new object adapter. - * @see #createObjectAdapter - * @see ObjectAdapter - * @see Properties - */ - virtual ObjectAdapterPtr createObjectAdapterWithEndpoints(const ::std::string& name, const ::std::string& endpoints) = 0; - - /** - * Create a new object adapter with a router. This operation creates a routed object adapter. - * Calling this operation with an empty name will result in a UUID being generated for the name. - * @param name The object adapter name. - * @param rtr The router. - * @return The new object adapter. - * @see #createObjectAdapter - * @see ObjectAdapter - * @see Properties - */ - virtual ObjectAdapterPtr createObjectAdapterWithRouter(const ::std::string& name, const RouterPrx& rtr) = 0; - - /** - * Get the implicit context associated with this communicator. - * @return The implicit context associated with this communicator; returns null when the property Ice.ImplicitContext - * is not set or is set to None. - */ - virtual ImplicitContextPtr getImplicitContext() const noexcept = 0; - - /** - * Get the properties for this communicator. - * @return This communicator's properties. - * @see Properties - */ - virtual PropertiesPtr getProperties() const noexcept = 0; - - /** - * Get the logger for this communicator. - * @return This communicator's logger. - * @see Logger - */ - virtual LoggerPtr getLogger() const noexcept = 0; - - /** - * Get the observer resolver object for this communicator. - * @return This communicator's observer resolver object. - */ - virtual ::Ice::Instrumentation::CommunicatorObserverPtr getObserver() const noexcept = 0; - - /** - * Get the default router for this communicator. - * @return The default router for this communicator. - * @see #setDefaultRouter - * @see Router - */ - virtual RouterPrx getDefaultRouter() const = 0; - - /** - * Set a default router for this communicator. All newly created proxies will use this default router. To disable - * the default router, null can be used. Note that this operation has no effect on existing proxies. - * You can also set a router for an individual proxy by calling the operation ice_router on the - * proxy. - * @param rtr The default router to use for this communicator. - * @see #getDefaultRouter - * @see #createObjectAdapterWithRouter - * @see Router - */ - virtual void setDefaultRouter(const RouterPrx& rtr) = 0; - - /** - * Get the default locator for this communicator. - * @return The default locator for this communicator. - * @see #setDefaultLocator - * @see Locator - */ - virtual LocatorPrx getDefaultLocator() const = 0; - - /** - * Set a default Ice locator for this communicator. All newly created proxy and object adapters will use this - * default locator. To disable the default locator, null can be used. Note that this operation has no effect on - * existing proxies or object adapters. - * You can also set a locator for an individual proxy by calling the operation ice_locator on the - * proxy, or for an object adapter by calling {@link ObjectAdapter#setLocator} on the object adapter. - * @param loc The default locator to use for this communicator. - * @see #getDefaultLocator - * @see Locator - * @see ObjectAdapter#setLocator - */ - virtual void setDefaultLocator(const LocatorPrx& loc) = 0; - - /** - * Get the plug-in manager for this communicator. - * @return This communicator's plug-in manager. - * @see PluginManager - */ - virtual PluginManagerPtr getPluginManager() const = 0; - - /** - * Get the value factory manager for this communicator. - * @return This communicator's value factory manager. - * @see ValueFactoryManager - */ - virtual ValueFactoryManagerPtr getValueFactoryManager() const noexcept = 0; - - /** - * Flush any pending batch requests for this communicator. This means all batch requests invoked on fixed proxies - * for all connections associated with the communicator. Any errors that occur while flushing a connection are - * ignored. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - */ - virtual void flushBatchRequests(CompressBatch compress) = 0; - - /** - * Flush any pending batch requests for this communicator. This means all batch requests invoked on fixed proxies - * for all connections associated with the communicator. Any errors that occur while flushing a connection are - * ignored. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress) = 0; - - /** - * Flush any pending batch requests for this communicator. This means all batch requests invoked on fixed proxies - * for all connections associated with the communicator. Any errors that occur while flushing a connection are - * ignored. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const CallbackPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Flush any pending batch requests for this communicator. This means all batch requests invoked on fixed proxies - * for all connections associated with the communicator. Any errors that occur while flushing a connection are - * ignored. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const Callback_Communicator_flushBatchRequestsPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Flush any pending batch requests for this communicator. This means all batch requests invoked on fixed proxies - * for all connections associated with the communicator. Any errors that occur while flushing a connection are - * ignored. - * @param result The asynchronous result object returned by the begin_ method. - */ - virtual void end_flushBatchRequests(const AsyncResultPtr& result) = 0; - - /** - * Add the Admin object with all its facets to the provided object adapter. If Ice.Admin.ServerId is - * set and the provided object adapter has a {@link Locator}, createAdmin registers the Admin's Process facet with - * the {@link Locator}'s {@link LocatorRegistry}. createAdmin must only be called once; subsequent calls raise - * InitializationException. - * @param adminAdapter The object adapter used to host the Admin object; if null and Ice.Admin.Endpoints is set, - * create, activate and use the Ice.Admin object adapter. - * @param adminId The identity of the Admin object. - * @return A proxy to the main ("") facet of the Admin object. Never returns a null proxy. - * @see #getAdmin - */ - virtual ObjectPrx createAdmin(const ObjectAdapterPtr& adminAdapter, const Identity& adminId) = 0; - - /** - * Get a proxy to the main facet of the Admin object. getAdmin also creates the Admin object and creates and - * activates the Ice.Admin object adapter to host this Admin object if Ice.Admin.Enpoints is set. The identity of - * the Admin object created by getAdmin is {value of Ice.Admin.InstanceName}/admin, or {UUID}/admin when - * Ice.Admin.InstanceName is not set. If Ice.Admin.DelayCreation is 0 or not set, getAdmin is called - * by the communicator initialization, after initialization of all plugins. - * @return A proxy to the main ("") facet of the Admin object, or a null proxy if no Admin object is configured. - * @see #createAdmin - */ - virtual ObjectPrx getAdmin() const = 0; - - /** - * Add a new facet to the Admin object. Adding a servant with a facet that is already registered throws - * AlreadyRegisteredException. - * @param servant The servant that implements the new Admin facet. - * @param facet The name of the new Admin facet. - */ - virtual void addAdminFacet(const std::shared_ptr& servant, const ::std::string& facet) = 0; - - inline void addAdminFacet(const SharedPtr& servant, const ::std::string& facet) - { - addAdminFacet(servant.underlying(), facet); - } - - /** - * Remove the following facet to the Admin object. Removing a facet that was not previously registered throws - * NotRegisteredException. - * @param facet The name of the Admin facet. - * @return The servant associated with this Admin facet. - */ - virtual std::shared_ptr removeAdminFacet(const ::std::string& facet) = 0; - - /** - * Returns a facet of the Admin object. - * @param facet The name of the Admin facet. - * @return The servant associated with this Admin facet, or null if no facet is registered with the given name. - */ - virtual std::shared_ptr findAdminFacet(const ::std::string& facet) = 0; - - /** - * Returns a map of all facets of the Admin object. - * @return A collection containing all the facet names and servants of the Admin object. - * @see #findAdminFacet - */ - virtual FacetMap findAllAdminFacets() = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Communicator& lhs, const Communicator& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Communicator& lhs, const Communicator& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/CommunicatorAsync.h b/cpp/include/Ice/CommunicatorAsync.h deleted file mode 100644 index 85cc9e78056..00000000000 --- a/cpp/include/Ice/CommunicatorAsync.h +++ /dev/null @@ -1,154 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_COMMUNICATOR_ASYNC_H -#define ICE_COMMUNICATOR_ASYNC_H - -#ifndef ICE_CPP11_MAPPING - -#include - -namespace Ice -{ - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Communicator::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Communicator_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Communicator_flushBatchRequests : public Callback_Communicator_flushBatchRequests_Base, - public ::IceInternal::OnewayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC_Communicator_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallbackNC(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::CommunicatorPtr communicator = result->getCommunicator(); - assert(communicator); - try - { - communicator->end_flushBatchRequests(result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - } - } - /// \endcond -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Communicator::begin_flushBatchRequests. - */ -template Callback_Communicator_flushBatchRequestsPtr -newCallback_Communicator_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Communicator_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Communicator::begin_flushBatchRequests. - */ -template Callback_Communicator_flushBatchRequestsPtr -newCallback_Communicator_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Communicator_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Communicator::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Communicator_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class Callback_Communicator_flushBatchRequests : public Callback_Communicator_flushBatchRequests_Base, - public ::IceInternal::OnewayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception& , const CT&); - typedef void (T::*Sent)(bool , const CT&); - - Callback_Communicator_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallback(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::CommunicatorPtr communicator = result->getCommunicator(); - assert(communicator); - try - { - communicator->end_flushBatchRequests(result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - } - } - /// \endcond -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Communicator::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Communicator_flushBatchRequests. - */ -template Callback_Communicator_flushBatchRequestsPtr -newCallback_Communicator_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Communicator_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Communicator::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Communicator_flushBatchRequests. - */ -template Callback_Communicator_flushBatchRequestsPtr -newCallback_Communicator_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Communicator_flushBatchRequests(instance, excb, sentcb); -} - -} -#endif - -#endif diff --git a/cpp/include/Ice/CommunicatorF.h b/cpp/include/Ice/CommunicatorF.h index bf9840d8d96..e03423b7122 100644 --- a/cpp/include/Ice/CommunicatorF.h +++ b/cpp/include/Ice/CommunicatorF.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -27,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -36,13 +33,6 @@ class Communicator; } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace Ice { @@ -52,27 +42,5 @@ using CommunicatorPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Communicator; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Communicator*); -/// \endcond -typedef ::IceInternal::Handle< Communicator> CommunicatorPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/Comparable.h b/cpp/include/Ice/Comparable.h index de93991f346..3b018eddc86 100644 --- a/cpp/include/Ice/Comparable.h +++ b/cpp/include/Ice/Comparable.h @@ -96,8 +96,6 @@ inline bool targetNotEqualTo(const T& lhs, const U& rhs) return !targetEqualTo(lhs, rhs); } -#ifdef ICE_CPP11_MAPPING - /** * Functor class that compares the contents of two smart pointers of the given type using the given comparator. * \headerfile Ice/Ice.h @@ -198,8 +196,6 @@ bool operator!=(const C& lhs, const C& rhs) return lhs.ice_tuple() != rhs.ice_tuple(); } -#endif - } #endif diff --git a/cpp/include/Ice/Config.h b/cpp/include/Ice/Config.h index 00c1acda103..f83a586677e 100644 --- a/cpp/include/Ice/Config.h +++ b/cpp/include/Ice/Config.h @@ -52,13 +52,8 @@ typedef unsigned char Byte; typedef short Short; /** The mapping for the Slice int type. */ typedef int Int; -#ifdef ICE_CPP11_MAPPING /** The mapping for the Slice long type. */ typedef long long int Long; -#else -/** The mapping for the Slice long type. */ -typedef IceUtil::Int64 Long; -#endif /** The mapping for the Slice float type. */ typedef float Float; /** The mapping for the Slice double type. */ diff --git a/cpp/include/Ice/Connection.h b/cpp/include/Ice/Connection.h index d0b0e7cf582..953a05023ba 100644 --- a/cpp/include/Ice/Connection.h +++ b/cpp/include/Ice/Connection.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -31,8 +30,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -701,910 +698,5 @@ using WSConnectionInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -class Connection; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Connection*); -/// \endcond -typedef ::IceInternal::Handle< Connection> ConnectionPtr; - -class CloseCallback; -/// \cond INTERNAL -ICE_API LocalObject* upCast(CloseCallback*); -/// \endcond -typedef ::IceInternal::Handle< CloseCallback> CloseCallbackPtr; - -class HeartbeatCallback; -/// \cond INTERNAL -ICE_API LocalObject* upCast(HeartbeatCallback*); -/// \endcond -typedef ::IceInternal::Handle< HeartbeatCallback> HeartbeatCallbackPtr; - -class IPConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(IPConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< IPConnectionInfo> IPConnectionInfoPtr; - -class TCPConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(TCPConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< TCPConnectionInfo> TCPConnectionInfoPtr; - -class UDPConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(UDPConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< UDPConnectionInfo> UDPConnectionInfoPtr; - -class WSConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(WSConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< WSConnectionInfo> WSConnectionInfoPtr; - -} - -namespace Ice -{ - -/** - * The batch compression option when flushing queued batch requests. - */ -enum CompressBatch -{ - /** - * Compress the batch requests. - */ - CompressBatchYes, - /** - * Don't compress the batch requests. - */ - CompressBatchNo, - /** - * Compress the batch requests if at least one request was made on a compressed proxy. - */ - CompressBatchBasedOnProxy -}; - -/** - * Specifies the close semantics for Active Connection Management. - */ -enum ACMClose -{ - /** - * Disables automatic connection closure. - */ - CloseOff, - /** - * Gracefully closes a connection that has been idle for the configured timeout period. - */ - CloseOnIdle, - /** - * Forcefully closes a connection that has been idle for the configured timeout period, but only if the connection - * has pending invocations. - */ - CloseOnInvocation, - /** - * Combines the behaviors of CloseOnIdle and CloseOnInvocation. - */ - CloseOnInvocationAndIdle, - /** - * Forcefully closes a connection that has been idle for the configured timeout period, regardless of whether the - * connection has pending invocations or dispatch. - */ - CloseOnIdleForceful -}; - -/** - * Specifies the heartbeat semantics for Active Connection Management. - */ -enum ACMHeartbeat -{ - /** - * Disables heartbeats. - */ - HeartbeatOff, - /** - * Send a heartbeat at regular intervals if the connection is idle and only if there are pending dispatch. - */ - HeartbeatOnDispatch, - /** - * Send a heartbeat at regular intervals when the connection is idle. - */ - HeartbeatOnIdle, - /** - * Send a heartbeat at regular intervals until the connection is closed. - */ - HeartbeatAlways -}; - -/** - * A collection of Active Connection Management configuration settings. - * \headerfile Ice/Ice.h - */ -struct ACM -{ - /** - * A timeout value in seconds. - */ - ::Ice::Int timeout; - /** - * The close semantics. - */ - ::Ice::ACMClose close; - /** - * The heartbeat semantics. - */ - ::Ice::ACMHeartbeat heartbeat; - - bool operator==(const ACM& rhs_) const - { - if(this == &rhs_) - { - return true; - } - if(timeout != rhs_.timeout) - { - return false; - } - if(close != rhs_.close) - { - return false; - } - if(heartbeat != rhs_.heartbeat) - { - return false; - } - return true; - } - - bool operator<(const ACM& rhs_) const - { - if(this == &rhs_) - { - return false; - } - if(timeout < rhs_.timeout) - { - return true; - } - else if(rhs_.timeout < timeout) - { - return false; - } - if(close < rhs_.close) - { - return true; - } - else if(rhs_.close < close) - { - return false; - } - if(heartbeat < rhs_.heartbeat) - { - return true; - } - else if(rhs_.heartbeat < heartbeat) - { - return false; - } - return false; - } - - bool operator!=(const ACM& rhs_) const - { - return !operator==(rhs_); - } - bool operator<=(const ACM& rhs_) const - { - return operator<(rhs_) || operator==(rhs_); - } - bool operator>(const ACM& rhs_) const - { - return !operator<(rhs_) && !operator==(rhs_); - } - bool operator>=(const ACM& rhs_) const - { - return !operator<(rhs_); - } -}; - -/** - * Determines the behavior when manually closing a connection. - */ -enum ConnectionClose -{ - /** - * Close the connection immediately without sending a close connection protocol message to the peer and waiting - * for the peer to acknowledge it. - */ - ConnectionCloseForcefully, - /** - * Close the connection by notifying the peer but do not wait for pending outgoing invocations to complete. On the - * server side, the connection will not be closed until all incoming invocations have completed. - */ - ConnectionCloseGracefully, - /** - * Wait for all pending invocations to complete before closing the connection. - */ - ConnectionCloseGracefullyWithWait -}; - -/** - * A collection of HTTP headers. - */ -typedef ::std::map< ::std::string, ::std::string> HeaderDict; - -} - -namespace Ice -{ - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Connection::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_flushBatchRequests. - */ -class Callback_Connection_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Connection_flushBatchRequests_Base> Callback_Connection_flushBatchRequestsPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Connection::begin_heartbeat. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_heartbeat. - */ -class Callback_Connection_heartbeat_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Connection_heartbeat_Base> Callback_Connection_heartbeatPtr; - -} - -namespace Ice -{ - -/** - * Base class providing access to the connection details. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionInfo : public virtual LocalObject -{ -public: - - typedef ConnectionInfoPtr PointerType; - - virtual ~ConnectionInfo(); - - ConnectionInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - */ - ConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId) : - underlying(underlying), - incoming(incoming), - adapterName(adapterName), - connectionId(connectionId) - { - } - - ConnectionInfo(const ConnectionInfo&) = default; - ConnectionInfo& operator=(const ConnectionInfo&) = default; - - /** - * The information of the underyling transport or null if there's no underlying transport. - */ - ::Ice::ConnectionInfoPtr underlying; - /** - * Whether or not the connection is an incoming or outgoing connection. - */ - bool incoming; - /** - * The name of the adapter associated with the connection. - */ - ::std::string adapterName; - /** - * The connection id. - */ - ::std::string connectionId; -}; - -/// \cond INTERNAL -inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * An application can implement this interface to receive notifications when a connection closes. - * @see Connection#setCloseCallback - * \headerfile Ice/Ice.h - */ -class ICE_API CloseCallback : public virtual LocalObject -{ -public: - - typedef CloseCallbackPtr PointerType; - - virtual ~CloseCallback(); - - CloseCallback() = default; - CloseCallback(const CloseCallback&) = default; - CloseCallback& operator=(const CloseCallback&) = default; - - /** - * This method is called by the connection when the connection is closed. If the callback needs more information - * about the closure, it can call {@link Connection#throwException}. - * @param con The connection that closed. - */ - virtual void closed(const ConnectionPtr& con) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const CloseCallback& lhs, const CloseCallback& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const CloseCallback& lhs, const CloseCallback& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * An application can implement this interface to receive notifications when a connection receives a heartbeat - * message. - * @see Connection#setHeartbeatCallback - * \headerfile Ice/Ice.h - */ -class ICE_API HeartbeatCallback : public virtual LocalObject -{ -public: - - typedef HeartbeatCallbackPtr PointerType; - - virtual ~HeartbeatCallback(); - - HeartbeatCallback() = default; - HeartbeatCallback(const HeartbeatCallback&) = default; - HeartbeatCallback& operator=(const HeartbeatCallback&) = default; - - /** - * This method is called by the connection when a heartbeat is received from the peer. - * @param con The connection on which a heartbeat was received. - */ - virtual void heartbeat(const ConnectionPtr& con) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * The user-level interface to a connection. - * \headerfile Ice/Ice.h - */ -class ICE_API Connection : public virtual LocalObject -{ -public: - - typedef ConnectionPtr PointerType; - - virtual ~Connection(); - Connection() = default; - Connection(const Connection&) = default; - Connection& operator=(const Connection&) = default; - - /** - * Manually close the connection using the specified closure mode. - * @param mode Determines how the connection will be closed. - * @see ConnectionClose - */ - virtual void close(ConnectionClose mode) noexcept = 0; - - /** - * Create a special proxy that always uses this connection. This can be used for callbacks from a server to a - * client if the server cannot directly establish a connection to the client, for example because of firewalls. In - * this case, the server would create a proxy using an already established connection from the client. - * @param id The identity for which a proxy is to be created. - * @return A proxy that matches the given identity and uses this connection. - * @see #setAdapter - */ - virtual ObjectPrx createProxy(const Identity& id) const = 0; - - /** - * Explicitly set an object adapter that dispatches requests that are received over this connection. A client can - * invoke an operation on a server using a proxy, and then set an object adapter for the outgoing connection that - * is used by the proxy in order to receive callbacks. This is useful if the server cannot establish a connection - * back to the client, for example because of firewalls. - * @param adapter The object adapter that should be used by this connection to dispatch requests. The object - * adapter must be activated. When the object adapter is deactivated, it is automatically removed from the - * connection. Attempts to use a deactivated object adapter raise {@link ObjectAdapterDeactivatedException} - * @see #createProxy - * @see #getAdapter - */ - virtual void setAdapter(const ObjectAdapterPtr& adapter) = 0; - - /** - * Get the object adapter that dispatches requests for this connection. - * @return The object adapter that dispatches requests for the connection, or null if no adapter is set. - * @see #setAdapter - */ - virtual ObjectAdapterPtr getAdapter() const noexcept = 0; - - /** - * Get the endpoint from which the connection was created. - * @return The endpoint from which the connection was created. - */ - virtual EndpointPtr getEndpoint() const noexcept = 0; - - /** - * Flush any pending batch requests for this connection. This means all batch requests invoked on fixed proxies - * associated with the connection. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - */ - virtual void flushBatchRequests(CompressBatch compress) = 0; - - /** - * Flush any pending batch requests for this connection. This means all batch requests invoked on fixed proxies - * associated with the connection. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress) = 0; - - /** - * Flush any pending batch requests for this connection. This means all batch requests invoked on fixed proxies - * associated with the connection. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const CallbackPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Flush any pending batch requests for this connection. This means all batch requests invoked on fixed proxies - * associated with the connection. - * @param compress Specifies whether or not the queued batch requests should be compressed before being sent over - * the wire. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const Callback_Connection_flushBatchRequestsPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Flush any pending batch requests for this connection. This means all batch requests invoked on fixed proxies - * associated with the connection. - * @param result The asynchronous result object returned by the begin_ method. - */ - virtual void end_flushBatchRequests(const AsyncResultPtr& result) = 0; - - /** - * Set a close callback on the connection. The callback is called by the connection when it's closed. The callback - * is called from the Ice thread pool associated with the connection. If the callback needs more information about - * the closure, it can call {@link Connection#throwException}. - * @param callback The close callback object. - */ - virtual void setCloseCallback(const CloseCallbackPtr& callback) = 0; - - /** - * Set a heartbeat callback on the connection. The callback is called by the connection when a heartbeat is - * received. The callback is called from the Ice thread pool associated with the connection. - * @param callback The heartbeat callback object. - */ - virtual void setHeartbeatCallback(const HeartbeatCallbackPtr& callback) = 0; - - /** - * Send a heartbeat message. - */ - virtual void heartbeat() = 0; - - /** - * Send a heartbeat message. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_heartbeat() = 0; - - /** - * Send a heartbeat message. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_heartbeat(const CallbackPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Send a heartbeat message. - * @param cb Callback to be invoked when the invocation completes - * @param cookie Extra data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - virtual AsyncResultPtr begin_heartbeat(const Callback_Connection_heartbeatPtr& cb, const LocalObjectPtr& cookie = 0) = 0; - - /** - * Send a heartbeat message. - * @param result The asynchronous result object returned by the begin_ method. - */ - virtual void end_heartbeat(const AsyncResultPtr& result) = 0; - - /** - * Set the active connection management parameters. - * @param timeout The timeout value in seconds, must be >= 0. - * @param close The close condition - * @param heartbeat The hertbeat condition - */ - virtual void setACM(const IceUtil::Optional& timeout, const IceUtil::Optional& close, const IceUtil::Optional& heartbeat) = 0; - - /** - * Get the ACM parameters. - * @return The ACM parameters. - */ - virtual ACM getACM() noexcept = 0; - - /** - * Return the connection type. This corresponds to the endpoint type, i.e., "tcp", "udp", etc. - * @return The type of the connection. - */ - virtual ::std::string type() const noexcept = 0; - - /** - * Get the timeout for the connection. - * @return The connection's timeout. - */ - virtual Int timeout() const noexcept = 0; - - /** - * Return a description of the connection as human readable text, suitable for logging or error messages. - * @return The description of the connection as human readable text. - */ - virtual ::std::string toString() const noexcept = 0; - - /** - * Returns the connection information. - * @return The connection information. - */ - virtual ConnectionInfoPtr getInfo() const = 0; - - /** - * Set the connection buffer receive/send size. - * @param rcvSize The connection receive buffer size. - * @param sndSize The connection send buffer size. - */ - virtual void setBufferSize(Int rcvSize, Int sndSize) = 0; - - /** - * Throw an exception indicating the reason for connection closure. For example, - * {@link CloseConnectionException} is raised if the connection was closed gracefully, whereas - * {@link ConnectionManuallyClosedException} is raised if the connection was manually closed by - * the application. This operation does nothing if the connection is not yet closed. - */ - virtual void throwException() const = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Connection& lhs, const Connection& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Connection& lhs, const Connection& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the connection details of an IP connection - * \headerfile Ice/Ice.h - */ -class ICE_API IPConnectionInfo : public ConnectionInfo -{ -public: - - typedef IPConnectionInfoPtr PointerType; - - virtual ~IPConnectionInfo(); - - /** Default constructor that assigns default values to members as specified in the Slice definition. */ - IPConnectionInfo() : - localAddress(""), - localPort(-1), - remoteAddress(""), - remotePort(-1) - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param localAddress The local address. - * @param localPort The local port. - * @param remoteAddress The remote address. - * @param remotePort The remote port. - */ - IPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort) : - ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId), - localAddress(localAddress), - localPort(localPort), - remoteAddress(remoteAddress), - remotePort(remotePort) - { - } - - IPConnectionInfo(const IPConnectionInfo&) = default; - IPConnectionInfo& operator=(const IPConnectionInfo&) = default; - - /** - * The local address. - */ - ::std::string localAddress; - /** - * The local port. - */ - ::Ice::Int localPort; - /** - * The remote address. - */ - ::std::string remoteAddress; - /** - * The remote port. - */ - ::Ice::Int remotePort; -}; - -/// \cond INTERNAL -inline bool operator==(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the connection details of a TCP connection - * \headerfile Ice/Ice.h - */ -class ICE_API TCPConnectionInfo : public IPConnectionInfo -{ -public: - - typedef TCPConnectionInfoPtr PointerType; - - virtual ~TCPConnectionInfo(); - - /** Default constructor that assigns default values to members as specified in the Slice definition. */ - TCPConnectionInfo() : - rcvSize(0), - sndSize(0) - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param localAddress The local address. - * @param localPort The local port. - * @param remoteAddress The remote address. - * @param remotePort The remote port. - * @param rcvSize The connection buffer receive size. - * @param sndSize The connection buffer send size. - */ - TCPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort, ::Ice::Int rcvSize, ::Ice::Int sndSize) : - ::Ice::IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort), - rcvSize(rcvSize), - sndSize(sndSize) - { - } - - TCPConnectionInfo(const TCPConnectionInfo&) = default; - TCPConnectionInfo& operator=(const TCPConnectionInfo&) = default; - - /** - * The connection buffer receive size. - */ - ::Ice::Int rcvSize; - /** - * The connection buffer send size. - */ - ::Ice::Int sndSize; -}; - -/// \cond INTERNAL -inline bool operator==(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the connection details of a UDP connection - * \headerfile Ice/Ice.h - */ -class ICE_API UDPConnectionInfo : public IPConnectionInfo -{ -public: - - typedef UDPConnectionInfoPtr PointerType; - - virtual ~UDPConnectionInfo(); - - /** Default constructor that assigns default values to members as specified in the Slice definition. */ - UDPConnectionInfo() : - mcastPort(-1), - rcvSize(0), - sndSize(0) - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param localAddress The local address. - * @param localPort The local port. - * @param remoteAddress The remote address. - * @param remotePort The remote port. - * @param mcastAddress The multicast address. - * @param mcastPort The multicast port. - * @param rcvSize The connection buffer receive size. - * @param sndSize The connection buffer send size. - */ - UDPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort, const ::std::string& mcastAddress, ::Ice::Int mcastPort, ::Ice::Int rcvSize, ::Ice::Int sndSize) : - ::Ice::IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort), - mcastAddress(mcastAddress), - mcastPort(mcastPort), - rcvSize(rcvSize), - sndSize(sndSize) - { - } - - UDPConnectionInfo(const UDPConnectionInfo&) = default; - UDPConnectionInfo& operator=(const UDPConnectionInfo&) = default; - - /** - * The multicast address. - */ - ::std::string mcastAddress; - /** - * The multicast port. - */ - ::Ice::Int mcastPort; - /** - * The connection buffer receive size. - */ - ::Ice::Int rcvSize; - /** - * The connection buffer send size. - */ - ::Ice::Int sndSize; -}; - -/// \cond INTERNAL -inline bool operator==(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the connection details of a WebSocket connection - * \headerfile Ice/Ice.h - */ -class ICE_API WSConnectionInfo : public ConnectionInfo -{ -public: - - typedef WSConnectionInfoPtr PointerType; - - virtual ~WSConnectionInfo(); - - WSConnectionInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param headers The headers from the HTTP upgrade request. - */ - WSConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::Ice::HeaderDict& headers) : - ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId), - headers(headers) - { - } - - WSConnectionInfo(const WSConnectionInfo&) = default; - WSConnectionInfo& operator=(const WSConnectionInfo&) = default; - - /** - * The headers from the HTTP upgrade request. - */ - ::Ice::HeaderDict headers; -}; - -/// \cond INTERNAL -inline bool operator==(const WSConnectionInfo& lhs, const WSConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const WSConnectionInfo& lhs, const WSConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/ConnectionAsync.h b/cpp/include/Ice/ConnectionAsync.h deleted file mode 100644 index 7a62256f6ff..00000000000 --- a/cpp/include/Ice/ConnectionAsync.h +++ /dev/null @@ -1,302 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_CONNECTION_ASYNC_H -#define ICE_CONNECTION_ASYNC_H - -#ifndef ICE_CPP11_MAPPING - -#include -#include - -namespace Ice -{ - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Connection::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Connection_flushBatchRequests : public Callback_Connection_flushBatchRequests_Base, - public ::IceInternal::OnewayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC_Connection_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallbackNC(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::ConnectionPtr connection = result->getConnection(); - assert(connection); - try - { - connection->end_flushBatchRequests(result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - } - } - /// \endcond -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_flushBatchRequests. - */ -template Callback_Connection_flushBatchRequestsPtr -newCallback_Connection_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Connection_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_flushBatchRequests. - */ -template Callback_Connection_flushBatchRequestsPtr -newCallback_Connection_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Connection_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Connection::begin_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class Callback_Connection_flushBatchRequests : public Callback_Connection_flushBatchRequests_Base, - public ::IceInternal::OnewayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception& , const CT&); - typedef void (T::*Sent)(bool , const CT&); - - Callback_Connection_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallback(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::ConnectionPtr connection = result->getConnection(); - assert(connection); - try - { - connection->end_flushBatchRequests(result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - } - } - /// \endcond -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_flushBatchRequests. - */ -template Callback_Connection_flushBatchRequestsPtr -newCallback_Connection_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Connection_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_flushBatchRequests. - */ -template Callback_Connection_flushBatchRequestsPtr -newCallback_Connection_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Connection_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Connection::begin_heartbeat. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_heartbeat. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Connection_heartbeat : public Callback_Connection_heartbeat_Base, - public ::IceInternal::OnewayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC_Connection_heartbeat(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallbackNC(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& __result) const - { - ::Ice::ConnectionPtr __con = __result->getConnection(); - assert(__con); - try - { - __con->end_heartbeat(__result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(__result, ex); - } - } - /// \endcond -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_heartbeat. - */ -template Callback_Connection_heartbeatPtr -newCallback_Connection_heartbeat(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Connection_heartbeat(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_heartbeat. - */ -template Callback_Connection_heartbeatPtr -newCallback_Connection_heartbeat(T* instance, void (T::*excb)(const ::Ice::Exception&), void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Connection_heartbeat(instance, excb, sentcb); -} - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * Ice::Connection::begin_heartbeat. - * Create a wrapper instance by calling ::Ice::newCallback_Connection_heartbeat. - * \headerfile Ice/Ice.h - */ -template -class Callback_Connection_heartbeat : public Callback_Connection_heartbeat_Base, - public ::IceInternal::OnewayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception& , const CT&); - typedef void (T::*Sent)(bool , const CT&); - - Callback_Connection_heartbeat(const TPtr& obj, Exception excb, Sent sentcb) - : ::IceInternal::OnewayCallback(obj, 0, excb, sentcb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& __result) const - { - ::Ice::ConnectionPtr __con = __result->getConnection(); - assert(__con); - try - { - __con->end_heartbeat(__result); - assert(false); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(__result, ex); - } - } - /// \endcond -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_heartbeat. - */ -template Callback_Connection_heartbeatPtr -newCallback_Connection_heartbeat(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Connection_heartbeat(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * Ice::Connection::begin_heartbeat. - */ -template Callback_Connection_heartbeatPtr -newCallback_Connection_heartbeat(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Connection_heartbeat(instance, excb, sentcb); -} - -} - -#endif -#endif diff --git a/cpp/include/Ice/ConnectionF.h b/cpp/include/Ice/ConnectionF.h index fe0db843c42..842d8450636 100644 --- a/cpp/include/Ice/ConnectionF.h +++ b/cpp/include/Ice/ConnectionF.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -27,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -50,47 +47,11 @@ namespace Ice { using ConnectionInfoPtr = ::std::shared_ptr; - using WSConnectionInfoPtr = ::std::shared_ptr; - using ConnectionPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -class WSConnectionInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(WSConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< WSConnectionInfo> WSConnectionInfoPtr; - -class Connection; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Connection*); -/// \endcond -typedef ::IceInternal::Handle< Connection> ConnectionPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/ConnectionIF.h b/cpp/include/Ice/ConnectionIF.h index ae1dd9c1a56..4e97b80721d 100644 --- a/cpp/include/Ice/ConnectionIF.h +++ b/cpp/include/Ice/ConnectionIF.h @@ -13,12 +13,7 @@ namespace Ice /// \cond INTERNAL class ConnectionI; -#ifdef ICE_CPP11_MAPPING // C++11 mapping using ConnectionIPtr = ::std::shared_ptr; -#else // C++98 mapping -ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*); -typedef IceInternal::Handle ConnectionIPtr; -#endif /// \endcond } diff --git a/cpp/include/Ice/Current.h b/cpp/include/Ice/Current.h index cdca588f277..82f6b7133f7 100644 --- a/cpp/include/Ice/Current.h +++ b/cpp/include/Ice/Current.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -33,8 +32,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -103,60 +100,5 @@ using Ice::operator!=; } -#else // C++98 mapping - -namespace Ice -{ - -/** - * Information about the current method invocation for servers. Each operation on the server has a - * Current as its implicit final parameter. Current is mostly used for Ice services. Most - * applications ignore this parameter. - * \headerfile Ice/Ice.h - */ -struct Current -{ - /** - * The object adapter. - */ - ::Ice::ObjectAdapterPtr adapter; - /** - * Information about the connection over which the current method invocation was received. If the invocation is - * direct due to collocation optimization, this value is set to null. - */ - ::Ice::ConnectionPtr con; - /** - * The Ice object identity. - */ - ::Ice::Identity id; - /** - * The facet. - */ - ::std::string facet; - /** - * The operation name. - */ - ::std::string operation; - /** - * The mode of the operation. - */ - ::Ice::OperationMode mode; - /** - * The request context, as received from the client. - */ - ::Ice::Context ctx; - /** - * The request id unless oneway (0). - */ - ::Ice::Int requestId; - /** - * The encoding version used to encode the input and output parameters. - */ - ::Ice::EncodingVersion encoding; -}; - -} -#endif - #include #endif diff --git a/cpp/include/Ice/Dispatcher.h b/cpp/include/Ice/Dispatcher.h index 46939d85532..c06cae113a7 100644 --- a/cpp/include/Ice/Dispatcher.h +++ b/cpp/include/Ice/Dispatcher.h @@ -5,7 +5,7 @@ #ifndef ICE_DISPATCHER_H #define ICE_DISPATCHER_H -#if !defined(ICE_CPP11_MAPPING) || defined(ICE_BUILDING_SRC) +#if defined(ICE_BUILDING_SRC) // // Part of the C++98 mapping, and "internal" definitions when building Ice // with the C++11 mapping diff --git a/cpp/include/Ice/Endpoint.h b/cpp/include/Ice/Endpoint.h index 0cb34425e2d..55fb6e0ec2d 100644 --- a/cpp/include/Ice/Endpoint.h +++ b/cpp/include/Ice/Endpoint.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -30,8 +29,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -372,459 +369,5 @@ using OpaqueEndpointInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class EndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(EndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< EndpointInfo> EndpointInfoPtr; - -class Endpoint; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Endpoint*); -/// \endcond -typedef ::IceInternal::Handle< Endpoint> EndpointPtr; - -class IPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(IPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< IPEndpointInfo> IPEndpointInfoPtr; - -class TCPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(TCPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< TCPEndpointInfo> TCPEndpointInfoPtr; - -class UDPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(UDPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< UDPEndpointInfo> UDPEndpointInfoPtr; - -class WSEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(WSEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< WSEndpointInfo> WSEndpointInfoPtr; - -class OpaqueEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(OpaqueEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< OpaqueEndpointInfo> OpaqueEndpointInfoPtr; - -} - -namespace Ice -{ - -/** - * Base class providing access to the endpoint details. - * \headerfile Ice/Ice.h - */ -class ICE_API EndpointInfo : public virtual LocalObject -{ -public: - - typedef EndpointInfoPtr PointerType; - - virtual ~EndpointInfo(); - - EndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - */ - EndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress) : - underlying(underlying), - timeout(timeout), - compress(compress) - { - } - - EndpointInfo(const EndpointInfo&) = default; - EndpointInfo& operator=(const EndpointInfo&) = default; - - /** - * Returns the type of the endpoint. - * @return The endpoint type. - */ - virtual Short type() const noexcept = 0; - - /** - * Returns true if this endpoint is a datagram endpoint. - * @return True for a datagram endpoint. - */ - virtual bool datagram() const noexcept = 0; - - /** - * @return True for a secure endpoint. - */ - virtual bool secure() const noexcept = 0; - - /** - * The information of the underyling endpoint or null if there's no underlying endpoint. - */ - ::Ice::EndpointInfoPtr underlying; - /** - * The timeout for the endpoint in milliseconds. 0 means non-blocking, -1 means no timeout. - */ - ::Ice::Int timeout; - /** - * Specifies whether or not compression should be used if available when using this endpoint. - */ - bool compress; -}; - -/// \cond INTERNAL -inline bool operator==(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * The user-level interface to an endpoint. - * \headerfile Ice/Ice.h - */ -class ICE_API Endpoint : public virtual LocalObject -{ -public: - - typedef EndpointPtr PointerType; - - virtual ~Endpoint(); - Endpoint() = default; - Endpoint(const Endpoint&) = default; - Endpoint& operator=(const Endpoint&) = default; - - /** - * Return a string representation of the endpoint. - * @return The string representation of the endpoint. - */ - virtual ::std::string toString() const noexcept = 0; - - /** - * Returns the endpoint information. - * @return The endpoint information class. - */ - virtual EndpointInfoPtr getInfo() const noexcept = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Endpoint& lhs, const Endpoint& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Endpoint& lhs, const Endpoint& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the address details of a IP endpoint. - * @see Endpoint - * \headerfile Ice/Ice.h - */ -class ICE_API IPEndpointInfo : public EndpointInfo -{ -public: - - typedef IPEndpointInfoPtr PointerType; - - virtual ~IPEndpointInfo(); - - IPEndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param host The host or address configured with the endpoint. - * @param port The port number. - * @param sourceAddress The source IP address. - */ - IPEndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& host, ::Ice::Int port, const ::std::string& sourceAddress) : - ::Ice::EndpointInfo(underlying, timeout, compress), - host(host), - port(port), - sourceAddress(sourceAddress) - { - } - IPEndpointInfo(const IPEndpointInfo&) = default; - IPEndpointInfo& operator=(const IPEndpointInfo&) = default; - - /** - * The host or address configured with the endpoint. - */ - ::std::string host; - /** - * The port number. - */ - ::Ice::Int port; - /** - * The source IP address. - */ - ::std::string sourceAddress; -}; - -/// \cond INTERNAL -inline bool operator==(const IPEndpointInfo& lhs, const IPEndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const IPEndpointInfo& lhs, const IPEndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to a TCP endpoint information. - * @see Endpoint - * \headerfile Ice/Ice.h - */ -class ICE_API TCPEndpointInfo : public IPEndpointInfo -{ -public: - - typedef TCPEndpointInfoPtr PointerType; - - virtual ~TCPEndpointInfo(); - - TCPEndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param host The host or address configured with the endpoint. - * @param port The port number. - * @param sourceAddress The source IP address. - */ - TCPEndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& host, ::Ice::Int port, const ::std::string& sourceAddress) : - ::Ice::IPEndpointInfo(underlying, timeout, compress, host, port, sourceAddress) - { - } - - TCPEndpointInfo(const TCPEndpointInfo&) = default; - TCPEndpointInfo& operator=(const TCPEndpointInfo&) = default; -}; - -/// \cond INTERNAL -inline bool operator==(const TCPEndpointInfo& lhs, const TCPEndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const TCPEndpointInfo& lhs, const TCPEndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to an UDP endpoint information. - * @see Endpoint - * \headerfile Ice/Ice.h - */ -class ICE_API UDPEndpointInfo : public IPEndpointInfo -{ -public: - - typedef UDPEndpointInfoPtr PointerType; - - virtual ~UDPEndpointInfo(); - - UDPEndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param host The host or address configured with the endpoint. - * @param port The port number. - * @param sourceAddress The source IP address. - * @param mcastInterface The multicast interface. - * @param mcastTtl The multicast time-to-live (or hops). - */ - UDPEndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& host, ::Ice::Int port, const ::std::string& sourceAddress, const ::std::string& mcastInterface, ::Ice::Int mcastTtl) : - ::Ice::IPEndpointInfo(underlying, timeout, compress, host, port, sourceAddress), - mcastInterface(mcastInterface), - mcastTtl(mcastTtl) - { - } - - UDPEndpointInfo(const UDPEndpointInfo&) = default; - UDPEndpointInfo& operator=(const UDPEndpointInfo&) = default; - - /** - * The multicast interface. - */ - ::std::string mcastInterface; - /** - * The multicast time-to-live (or hops). - */ - ::Ice::Int mcastTtl; -}; - -/// \cond INTERNAL -inline bool operator==(const UDPEndpointInfo& lhs, const UDPEndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const UDPEndpointInfo& lhs, const UDPEndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to a WebSocket endpoint information. - * \headerfile Ice/Ice.h - */ -class ICE_API WSEndpointInfo : public EndpointInfo -{ -public: - - typedef WSEndpointInfoPtr PointerType; - - virtual ~WSEndpointInfo(); - - WSEndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param resource The URI configured with the endpoint. - */ - WSEndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& resource) : - ::Ice::EndpointInfo(underlying, timeout, compress), - resource(resource) - { - } - - WSEndpointInfo(const WSEndpointInfo&) = default; - WSEndpointInfo& operator=(const WSEndpointInfo&) = default; - - /** - * The URI configured with the endpoint. - */ - ::std::string resource; -}; - -/// \cond INTERNAL -inline bool operator==(const WSEndpointInfo& lhs, const WSEndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const WSEndpointInfo& lhs, const WSEndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Provides access to the details of an opaque endpoint. - * @see Endpoint - * \headerfile Ice/Ice.h - */ -class ICE_API OpaqueEndpointInfo : public EndpointInfo -{ -public: - - typedef OpaqueEndpointInfoPtr PointerType; - - virtual ~OpaqueEndpointInfo(); - - OpaqueEndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param rawEncoding The encoding version of the opaque endpoint (to decode or encode the rawBytes). - * @param rawBytes The raw encoding of the opaque endpoint. - */ - OpaqueEndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::Ice::EncodingVersion& rawEncoding, const ::Ice::ByteSeq& rawBytes) : - ::Ice::EndpointInfo(underlying, timeout, compress), - rawEncoding(rawEncoding), - rawBytes(rawBytes) - { - } - - OpaqueEndpointInfo(const OpaqueEndpointInfo&) = default; - OpaqueEndpointInfo& operator=(const OpaqueEndpointInfo&) = default; - - /** - * The encoding version of the opaque endpoint (to decode or encode the rawBytes). - */ - ::Ice::EncodingVersion rawEncoding; - /** - * The raw encoding of the opaque endpoint. - */ - ::Ice::ByteSeq rawBytes; -}; - -/// \cond INTERNAL -inline bool operator==(const OpaqueEndpointInfo& lhs, const OpaqueEndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const OpaqueEndpointInfo& lhs, const OpaqueEndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/EndpointF.h b/cpp/include/Ice/EndpointF.h index 531e60e5291..ad67050e98a 100644 --- a/cpp/include/Ice/EndpointF.h +++ b/cpp/include/Ice/EndpointF.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -27,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -77,67 +74,5 @@ using EndpointPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class EndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(EndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< EndpointInfo> EndpointInfoPtr; - -class IPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(IPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< IPEndpointInfo> IPEndpointInfoPtr; - -class TCPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(TCPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< TCPEndpointInfo> TCPEndpointInfoPtr; - -class UDPEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(UDPEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< UDPEndpointInfo> UDPEndpointInfoPtr; - -class WSEndpointInfo; -/// \cond INTERNAL -ICE_API LocalObject* upCast(WSEndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< WSEndpointInfo> WSEndpointInfoPtr; - -class Endpoint; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Endpoint*); -/// \endcond -typedef ::IceInternal::Handle< Endpoint> EndpointPtr; - -} - -namespace Ice -{ - -/** - * A sequence of endpoints. - */ -typedef ::std::vector EndpointSeq; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/EndpointSelectionType.h b/cpp/include/Ice/EndpointSelectionType.h index b51dea15fb7..e3560bf23d6 100644 --- a/cpp/include/Ice/EndpointSelectionType.h +++ b/cpp/include/Ice/EndpointSelectionType.h @@ -5,7 +5,6 @@ #ifndef __Ice_EndpointSelectionType_h__ #define __Ice_EndpointSelectionType_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include @@ -27,8 +25,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -49,43 +45,4 @@ enum class EndpointSelectionType : unsigned char } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#else // C++98 mapping - -namespace Ice -{ - -/** - * Determines the order in which the Ice run time uses the endpoints in a proxy when establishing a connection. - */ -enum EndpointSelectionType -{ - /** - * Random causes the endpoints to be arranged in a random order. - */ - Random, - /** - * Ordered forces the Ice run time to use the endpoints in the order they appeared in the proxy. - */ - Ordered -}; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h index 7814132eb2b..4512be9efd4 100644 --- a/cpp/include/Ice/Exception.h +++ b/cpp/include/Ice/Exception.h @@ -42,11 +42,7 @@ class ICE_API LocalException : public IceUtil::Exception * Polymorphically clones this exception. * @return A shallow copy of this exception. */ -#ifdef ICE_CPP11_MAPPING std::unique_ptr ice_clone() const; -#else - virtual LocalException* ice_clone() const = 0; -#endif /** * Obtains the Slice type ID of this exception. @@ -67,11 +63,8 @@ class ICE_API UserException : public IceUtil::Exception * Polymorphically clones this exception. * @return A shallow copy of this exception. */ -#ifdef ICE_CPP11_MAPPING std::unique_ptr ice_clone() const; -#else - virtual UserException* ice_clone() const = 0; -#endif + virtual Ice::SlicedDataPtr ice_getSlicedData() const; /** @@ -119,11 +112,7 @@ class ICE_API SystemException : public IceUtil::Exception * Polymorphically clones this exception. * @return A shallow copy of this exception. */ -#ifdef ICE_CPP11_MAPPING std::unique_ptr ice_clone() const; -#else - virtual SystemException* ice_clone() const = 0; -#endif /** * Obtains the Slice type ID of this exception. diff --git a/cpp/include/Ice/ExceptionHelpers.h b/cpp/include/Ice/ExceptionHelpers.h index eb799ff298b..14e64ade028 100644 --- a/cpp/include/Ice/ExceptionHelpers.h +++ b/cpp/include/Ice/ExceptionHelpers.h @@ -5,8 +5,6 @@ #ifndef ICE_EXCEPTION_HELPERS_H #define ICE_EXCEPTION_HELPERS_H -#ifdef ICE_CPP11_MAPPING // C++11 mapping - #include #include @@ -69,6 +67,4 @@ template class UserExceptionHelper : public IceUtil::Exc } -#endif // C++11 mapping end - #endif diff --git a/cpp/include/Ice/FactoryTableInit.h b/cpp/include/Ice/FactoryTableInit.h index 5bb094cd32f..3c7ca4f4ab9 100644 --- a/cpp/include/Ice/FactoryTableInit.h +++ b/cpp/include/Ice/FactoryTableInit.h @@ -42,11 +42,7 @@ class DefaultUserExceptionFactoryInit DefaultUserExceptionFactoryInit(const char* tId) : typeId(tId) { -#ifdef ICE_CPP11_MAPPING factoryTable->addExceptionFactory(typeId, defaultUserExceptionFactory); -#else - factoryTable->addExceptionFactory(typeId, new DefaultUserExceptionFactory(typeId)); -#endif } ~DefaultUserExceptionFactoryInit() diff --git a/cpp/include/Ice/Format.h b/cpp/include/Ice/Format.h index 5cb76ec5345..c01ecfb0fe5 100644 --- a/cpp/include/Ice/Format.h +++ b/cpp/include/Ice/Format.h @@ -13,11 +13,7 @@ namespace Ice /** * Describes the possible formats for classes and exceptions. */ -#ifdef ICE_CPP11_MAPPING enum class FormatType : unsigned char -#else -enum FormatType -#endif { /** * Indicates that no preference was specified. diff --git a/cpp/include/Ice/Ice.h b/cpp/include/Ice/Ice.h index acb23ad75f9..d0965523875 100644 --- a/cpp/include/Ice/Ice.h +++ b/cpp/include/Ice/Ice.h @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -31,7 +30,6 @@ # include # include # include -# include # include # include # if !defined(__APPLE__) || TARGET_OS_IPHONE == 0 @@ -39,7 +37,6 @@ # include # endif # include -# include # include # include # include diff --git a/cpp/include/Ice/IconvStringConverter.h b/cpp/include/Ice/IconvStringConverter.h index 158ce7e867d..e70665b3249 100644 --- a/cpp/include/Ice/IconvStringConverter.h +++ b/cpp/include/Ice/IconvStringConverter.h @@ -59,14 +59,6 @@ class ICE_API IconvInitializationException : public IceUtil::ExceptionHelper #include #include -#include #include #include #include @@ -30,8 +29,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -130,119 +127,5 @@ using ImplicitContextPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class ImplicitContext; -/// \cond INTERNAL -ICE_API LocalObject* upCast(ImplicitContext*); -/// \endcond -typedef ::IceInternal::Handle< ImplicitContext> ImplicitContextPtr; - -} - -namespace Ice -{ - -/** - * An interface to associate implict contexts with communicators. When you make a remote invocation without an - * explicit context parameter, Ice uses the per-proxy context (if any) combined with the ImplicitContext - * associated with the communicator. - * Ice provides several implementations of ImplicitContext. The implementation used depends on the value - * of the Ice.ImplicitContext property. - *
- *
None (default)
- *
No implicit context at all.
- *
PerThread
- *
The implementation maintains a context per thread.
- *
Shared
- *
The implementation maintains a single context shared by all threads.
- *
- * ImplicitContext also provides a number of operations to create, update or retrieve an entry in the - * underlying context without first retrieving a copy of the entire context. These operations correspond to a subset - * of the java.util.Map methods, with java.lang.Object replaced by string and - * null replaced by the empty-string. - * \headerfile Ice/Ice.h - */ -class ICE_API ImplicitContext : public virtual LocalObject -{ -public: - - typedef ImplicitContextPtr PointerType; - - virtual ~ImplicitContext(); - ImplicitContext() = default; - ImplicitContext(const ImplicitContext&) = default; - ImplicitContext& operator=(const ImplicitContext&) = default; - - /** - * Get a copy of the underlying context. - * @return A copy of the underlying context. - */ - virtual Context getContext() const = 0; - - /** - * Set the underlying context. - * @param newContext The new context. - */ - virtual void setContext(const Context& newContext) = 0; - - /** - * Check if this key has an associated value in the underlying context. - * @param key The key. - * @return True if the key has an associated value, False otherwise. - */ - virtual bool containsKey(const ::std::string& key) const = 0; - - /** - * Get the value associated with the given key in the underlying context. Returns an empty string if no value is - * associated with the key. {@link #containsKey} allows you to distinguish between an empty-string value and no - * value at all. - * @param key The key. - * @return The value associated with the key. - */ - virtual ::std::string get(const ::std::string& key) const = 0; - - /** - * Create or update a key/value entry in the underlying context. - * @param key The key. - * @param value The value. - * @return The previous value associated with the key, if any. - */ - virtual ::std::string put(const ::std::string& key, const ::std::string& value) = 0; - - /** - * Remove the entry for the given key in the underlying context. - * @param key The key. - * @return The value associated with the key, if any. - */ - virtual ::std::string remove(const ::std::string& key) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const ImplicitContext& lhs, const ImplicitContext& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ImplicitContext& lhs, const ImplicitContext& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/ImplicitContextF.h b/cpp/include/Ice/ImplicitContextF.h index b39be27ba0c..21e0eb3e235 100644 --- a/cpp/include/Ice/ImplicitContextF.h +++ b/cpp/include/Ice/ImplicitContextF.h @@ -5,7 +5,6 @@ #ifndef __Ice_ImplicitContextF_h__ #define __Ice_ImplicitContextF_h__ -#include #include #include #include @@ -13,12 +12,9 @@ #include #include #include -#include #include #include -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -26,13 +22,6 @@ class ImplicitContext; } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace Ice { @@ -42,27 +31,4 @@ using ImplicitContextPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class ImplicitContext; -/// \cond INTERNAL -ICE_API LocalObject* upCast(ImplicitContext*); -/// \endcond -typedef ::IceInternal::Handle< ImplicitContext> ImplicitContextPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/Ice/Incoming.h b/cpp/include/Ice/Incoming.h index 67a11ad74a0..68436b2ca31 100644 --- a/cpp/include/Ice/Incoming.h +++ b/cpp/include/Ice/Incoming.h @@ -18,8 +18,6 @@ #include -#ifdef ICE_CPP11_MAPPING - namespace Ice { @@ -54,8 +52,6 @@ class ICE_API MarshaledResult } -#endif - namespace Ice { class ServantLocator; @@ -72,10 +68,7 @@ class ICE_API IncomingBase : private IceUtil::noncopyable void endWriteParams(); void writeEmptyParams(); void writeParamEncaps(const Ice::Byte*, Ice::Int, bool); - -#ifdef ICE_CPP11_MAPPING void setMarshaledResult(const Ice::MarshaledResult&); -#endif void response(bool); void exception(const std::exception&, bool); @@ -109,13 +102,8 @@ class ICE_API IncomingBase : private IceUtil::noncopyable // stack-allocated Incoming still holds it. // ResponseHandler* _responseHandler; - -#ifdef ICE_CPP11_MAPPING using DispatchInterceptorCallbacks = std::deque, std::function>>; -#else - typedef std::deque DispatchInterceptorCallbacks; -#endif DispatchInterceptorCallbacks _interceptorCBs; }; @@ -136,11 +124,7 @@ class ICE_API Incoming : public IncomingBase return _current; } -#ifdef ICE_CPP11_MAPPING void push(std::function, std::function); -#else - void push(const Ice::DispatchInterceptorAsyncCallbackPtr&); -#endif void pop(); void setAsync(const IncomingAsyncPtr& in) diff --git a/cpp/include/Ice/IncomingAsync.h b/cpp/include/Ice/IncomingAsync.h index 269f31a1696..36b3223b9b1 100644 --- a/cpp/include/Ice/IncomingAsync.h +++ b/cpp/include/Ice/IncomingAsync.h @@ -8,35 +8,6 @@ #include #include -#ifndef ICE_CPP11_MAPPING -namespace Ice -{ - -/** - * Base class for generated AMD callback classes. - * \headerfile Ice/Ice.h - */ -class ICE_API AMDCallback : public Ice::LocalObject -{ -public: - - virtual ~AMDCallback(); - - /** - * Completes the asynchronous request with the given exception. - * @param ex The exception that completed the request. - */ - virtual void ice_exception(const ::std::exception& ex) = 0; - - /** - * Completes the asynchronous request with an UnknownException. - */ - virtual void ice_exception() = 0; -}; - -} -#endif - namespace IceInternal { @@ -50,19 +21,12 @@ namespace IceInternal // We need virtual inheritance from AMDCallback, because we use multiple // inheritance from Ice::AMDCallback for generated AMD code. // -class ICE_API IncomingAsync : public IncomingBase, -#ifdef ICE_CPP11_MAPPING - public ::std::enable_shared_from_this -#else - public virtual Ice::AMDCallback -#endif +class ICE_API IncomingAsync : public IncomingBase, public ::std::enable_shared_from_this { public: IncomingAsync(Incoming&); -#ifdef ICE_CPP11_MAPPING - static std::shared_ptr create(Incoming&); std::function response() @@ -92,20 +56,11 @@ class ICE_API IncomingAsync : public IncomingBase, return [self](std::exception_ptr ex) { self->completed(ex); }; } -#else - - virtual void ice_exception(const ::std::exception&); - virtual void ice_exception(); - -#endif - void kill(Incoming&); void completed(); -#ifdef ICE_CPP11_MAPPING void completed(std::exception_ptr); -#endif private: @@ -125,62 +80,4 @@ class ICE_API IncomingAsync : public IncomingBase, } -#ifndef ICE_CPP11_MAPPING -namespace Ice -{ - -/** - * Base class for the AMD callback for BlobjectAsync::ice_invoke_async. - * \headerfile Ice/Ice.h - */ -class ICE_API AMD_Object_ice_invoke : public virtual Ice::AMDCallback -{ -public: - - virtual ~AMD_Object_ice_invoke(); - - /** - * Completes the request. - * @param ok True if the request completed successfully, in which case bytes contains an encapsulation - * of the marshaled results. False if the request completed with a user exception, in which case bytes - * contains an encapsulation of the marshaled user exception. - * @param bytes An encapsulation of the results or user exception. - */ - virtual void ice_response(bool ok, const std::vector& bytes) = 0; - - /** - * Completes the request. - * @param ok True if the request completed successfully, in which case bytes contains an encapsulation - * of the marshaled results. False if the request completed with a user exception, in which case bytes - * contains an encapsulation of the marshaled user exception. - * @param bytes An encapsulation of the results or user exception. - */ - virtual void ice_response(bool ok, const std::pair& bytes) = 0; -}; - -} - -/// \cond INTERNAL -namespace IceAsync -{ - -namespace Ice -{ - -class ICE_API AMD_Object_ice_invoke : public ::Ice::AMD_Object_ice_invoke, public IceInternal::IncomingAsync -{ -public: - - AMD_Object_ice_invoke(IceInternal::Incoming&); - - virtual void ice_response(bool, const std::vector< ::Ice::Byte>&); - virtual void ice_response(bool, const std::pair&); -}; - -} - -} -/// \endcond -#endif - #endif diff --git a/cpp/include/Ice/IncomingAsyncF.h b/cpp/include/Ice/IncomingAsyncF.h index 269ab7728d1..97c6885daf3 100644 --- a/cpp/include/Ice/IncomingAsyncF.h +++ b/cpp/include/Ice/IncomingAsyncF.h @@ -5,32 +5,15 @@ #ifndef ICE_INCOMING_ASYNC_F_H #define ICE_INCOMING_ASYNC_F_H -#include - -#include +#include "Config.h" +#include namespace IceInternal { class IncomingAsync; -#ifdef ICE_CPP11_MAPPING using IncomingAsyncPtr = ::std::shared_ptr; -#else -ICE_API IceUtil::Shared* upCast(IncomingAsync*); -typedef IceInternal::Handle IncomingAsyncPtr; -#endif - -} - -#ifndef ICE_CPP11_MAPPING -namespace Ice -{ - -class AMD_Object_ice_invoke; -ICE_API IceUtil::Shared* upCast(::Ice::AMD_Object_ice_invoke*); -typedef IceInternal::Handle AMD_Object_ice_invokePtr; } -#endif #endif diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h index 70ad7fe0e04..66c7fe4836a 100644 --- a/cpp/include/Ice/Initialize.h +++ b/cpp/include/Ice/Initialize.h @@ -18,11 +18,7 @@ #include #include -#ifdef ICE_CPP11_MAPPING # define ICE_CONFIG_FILE_STRING const std::string& -#else -# define ICE_CONFIG_FILE_STRING const char* -#endif namespace Ice { @@ -246,8 +242,6 @@ typedef IceUtil::Handle ThreadNotificationPtr; class ICE_API ThreadHookPlugin : public Ice::Plugin { public: - -#ifdef ICE_CPP11_MAPPING /** * Installs the thread hooks. * @param communicator The communicator in which to install the thread hooks. @@ -255,14 +249,6 @@ class ICE_API ThreadHookPlugin : public Ice::Plugin * @param stop The stop callback. */ ThreadHookPlugin(const CommunicatorPtr& communicator, std::function start, std::function stop); -#else - /** - * Installs the thread hooks. - * @param communicator The communicator in which to install the thread hooks. - * @param hook The thread notification callback object. - */ - ThreadHookPlugin(const CommunicatorPtr& communicator, const ThreadNotificationPtr& hook); -#endif /** Not used. */ virtual void initialize(); @@ -292,8 +278,6 @@ struct InitializationData */ Instrumentation::CommunicatorObserverPtr observer; -#ifdef ICE_CPP11_MAPPING - #if defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wdocumentation" // param/return is not recognized for std::function data members @@ -349,41 +333,6 @@ struct InitializationData # pragma clang diagnostic pop #endif -#else - /** - * The thread hook for the communicator. - */ - ThreadNotificationPtr threadHook; - - /** - * You can control which thread receives operation invocations and AMI - * callbacks by supplying a dispatcher. - * - * For example, you can use this dispatching facility to ensure that - * all invocations and callbacks are dispatched in a GUI event loop - * thread so that it is safe to invoke directly on GUI objects. - * - * The dispatcher is responsible for running (dispatching) the - * invocation or AMI callback on its favorite thread. It must eventually - * execute the provided call. - */ - DispatcherPtr dispatcher; - - /** - * Applications that make use of compact type IDs to conserve space - * when marshaling class instances, and also use the streaming API to - * extract such classes, can intercept the translation between compact - * type IDs and their corresponding string type IDs by installing a - * compact ID resolver. - */ - CompactIdResolverPtr compactIdResolver; - - /** - * The batch request interceptor. - */ - BatchRequestInterceptorPtr batchRequestInterceptor; -#endif - /** * The value factory manager. */ @@ -648,8 +597,6 @@ class ICE_API CommunicatorHolder */ CommunicatorHolder(); -#ifdef ICE_CPP11_MAPPING - /** * Calls initialize to create a communicator with the provided arguments. * This constructor accepts all of the same overloaded argument styles as @@ -690,215 +637,6 @@ class ICE_API CommunicatorHolder */ explicit operator bool() const; -#else // C++98 mapping - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, const char* argv[], const InitializationData& initData = InitializationData(), - int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, char* argv[], const InitializationData& initData = InitializationData(), - int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, const char* argv[], const char* configFile, int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, char* argv[], const char* configFile, int version = ICE_INT_VERSION); - -# ifdef _WIN32 - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, const wchar_t* argv[], const InitializationData& initData = InitializationData(), - int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, wchar_t* argv[], const InitializationData& initData = InitializationData(), - int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, const wchar_t* argv[], const char* configFile, int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param argc The number of arguments in argv. Upon return, this argument - * is updated to reflect the arguments still remaining in argv. - * @param argv Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this vector upon return. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(int& argc, wchar_t* argv[], const char* configFile, int version = ICE_INT_VERSION); -# endif - - /** - * Initializes a new communicator. - * @param seq Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this container upon return. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - explicit CommunicatorHolder(StringSeq& seq, const InitializationData& initData = InitializationData(), - int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param seq Command-line arguments, possibly containing - * options to set properties. If the arguments include - * a --Ice.Config option, the corresponding configuration - * files are parsed. If the same property is set in a configuration - * file and in the arguments, the arguments take precedence. - * Recognized options are removed from this container upon return. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - CommunicatorHolder(StringSeq& seq, const char* configFile, int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param initData Configuration data for the new Communicator. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - explicit CommunicatorHolder(const InitializationData& initData, int version = ICE_INT_VERSION); - - /** - * Initializes a new communicator. - * @param configFile The name of an Ice configuration file. - * @param version Indicates the Ice version with which the application is compatible. If not - * specified, the version of the Ice installation is used. - */ - explicit CommunicatorHolder(const char* configFile, int version = ICE_INT_VERSION); - - /** - * Adopts the given communicator. - * @param communicator The new communicator instance to hold. - */ - CommunicatorHolder(const CommunicatorPtr& communicator); - - /** - * Adopts the given communicator. If this holder currently holds a communicator, - * it will be destroyed. - * @param communicator The new communicator instance to hold. - */ - CommunicatorHolder& operator=(const CommunicatorPtr& communicator); - - /** - * Determines whether the holder contains an instance. - * @return True if the holder currently holds an instance, false otherwise. - */ - operator bool() const; - - /// \cond INTERNAL - // - // Required for successful copy-initialization, but not - // defined as it should always be elided by the compiler. - CommunicatorHolder(const CommunicatorHolder&); - /// \endcond - -#endif - ~CommunicatorHolder(); /** diff --git a/cpp/include/Ice/InputStream.h b/cpp/include/Ice/InputStream.h index 28e5b6d2863..3beb13455e3 100644 --- a/cpp/include/Ice/InputStream.h +++ b/cpp/include/Ice/InputStream.h @@ -178,13 +178,10 @@ class ICE_API InputStream : public IceInternal::Buffer clear(); // Not inlined. } -#ifdef ICE_CPP11_MAPPING - - for(auto d: _deleters) + for(auto d : _deleters) { d(); } -#endif } /** @@ -240,11 +237,7 @@ class ICE_API InputStream : public IceInternal::Buffer * * @param r The compact ID resolver. */ -#ifdef ICE_CPP11_MAPPING void setCompactIdResolver(std::function r); -#else - void setCompactIdResolver(const CompactIdResolverPtr& r); -#endif /** * Indicates whether to slice instances of Slice classes to a known Slice type when a more @@ -656,8 +649,6 @@ class ICE_API InputStream : public IceInternal::Buffer } } -#ifdef ICE_CPP11_MAPPING - /** * Extracts a sequence of data values from the stream. * @param v A pair of pointers representing the beginning and end of the sequence elements. @@ -716,8 +707,6 @@ class ICE_API InputStream : public IceInternal::Buffer readAll(tags, ve...); } -#endif - /** * Determine if an optional value is available for reading. * @@ -764,20 +753,6 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::pair& v); -#ifndef ICE_CPP11_MAPPING - /** - * Reads a sequence of bytes from the stream. - * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the - * sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr) - { - arr.reset(); - read(v); - } -#endif - /** * Reads a bool from the stream. * @param v The extracted bool. @@ -797,22 +772,12 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of boolean values from the stream. * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the * sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of boolean values from the stream. - * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the - * sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads a short from the stream. @@ -826,20 +791,11 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of boolean values from the stream. * @param v A pair of pointers representing the start and end of the sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of shorts from the stream. - * @param v A pair of pointers representing the start and end of the sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads an int from the stream. @@ -874,20 +830,11 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of ints from the stream. * @param v A pair of pointers representing the start and end of the sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of ints from the stream. - * @param v A pair of pointers representing the start and end of the sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads a long from the stream. @@ -901,20 +848,11 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of longs from the stream. * @param v A pair of pointers representing the start and end of the sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of longs from the stream. - * @param v A pair of pointers representing the start and end of the sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads a float from the stream. @@ -928,20 +866,11 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of floats from the stream. * @param v A pair of pointers representing the start and end of the sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of floats from the stream. - * @param v A pair of pointers representing the start and end of the sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads a double from the stream. @@ -955,20 +884,11 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a sequence of doubles from the stream. * @param v A pair of pointers representing the start and end of the sequence elements. */ void read(std::pair& v); -#else - /** - * Reads a sequence of doubles from the stream. - * @param v A pair of pointers representing the start and end of the sequence elements. - * @param arr A scoped array. - */ - void read(std::pair& v, ::IceUtil::ScopedArray& arr); -#endif /** * Reads a string from the stream. @@ -978,7 +898,6 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::string& v, bool convert = true); -#ifdef ICE_CPP11_MAPPING /** * Reads a string from the stream. * @param vdata A pointer to the beginning of the string. @@ -987,24 +906,6 @@ class ICE_API InputStream : public IceInternal::Buffer * is installed. The default behavior is to convert strings. */ void read(const char*& vdata, size_t& vsize, bool convert = true); -#else - // For custom strings, convert = false - /** - * Reads a string from the stream. String conversion is disabled. - * @param vdata A pointer to the beginning of the string. - * @param vsize The number of bytes in the string. - */ - void read(const char*& vdata, size_t& vsize); - - // For custom strings, convert = true - /** - * Reads a string from the stream. String conversion is enabled. - * @param vdata A pointer to the beginning of the string. - * @param vsize The number of bytes in the string. - * @param holder Holds the string contents. - */ - void read(const char*& vdata, size_t& vsize, std::string& holder); -#endif /** * Reads a sequence of strings from the stream. @@ -1026,7 +927,6 @@ class ICE_API InputStream : public IceInternal::Buffer */ void read(std::vector& v); -#ifdef ICE_CPP11_MAPPING /** * Reads a proxy from the stream. * @return The proxy as the base ObjectPrx type. @@ -1051,22 +951,6 @@ class ICE_API InputStream : public IceInternal::Buffer v->_copyFrom(proxy); } } -#else - /** - * Reads a proxy from the stream. - * @param v The proxy as the base ObjectPrx type. - */ - void read(ObjectPrx& v); - - /** - * Reads a typed proxy from the stream. - * @param v The proxy as a user-defined type. - */ - template void read(IceInternal::ProxyHandle& v) - { - _readProxy(this, v); // Generated _readProxy method, necessary for forward declarations. - } -#endif /** * Reads a value (instance of a Slice class) from the stream (New mapping). @@ -1078,16 +962,6 @@ class ICE_API InputStream : public IceInternal::Buffer read(patchValue, &v); } - /** - * Reads a value (instance of a Slice class) from the stream (Original mapping). - * @param v The instance. - */ - template::value>::type* = nullptr> - void read(Ice::SharedPtr& v) - { - read(v.underlying()); - } - /** * Reads a value (instance of a Slice class) from the stream. * @param patchFunc The patch callback function. @@ -1210,11 +1084,7 @@ class ICE_API InputStream : public IceInternal::Buffer LoggerPtr logger() const; -#ifdef ICE_CPP11_MAPPING std::function compactIdResolver() const; -#else - CompactIdResolverPtr compactIdResolver() const; -#endif using ValueList = std::vector>; @@ -1477,15 +1347,8 @@ class ICE_API InputStream : public IceInternal::Buffer ValueFactoryManagerPtr _valueFactoryManager; LoggerPtr _logger; -#ifdef ICE_CPP11_MAPPING std::function _compactIdResolver; -#else - CompactIdResolverPtr _compactIdResolver; -#endif - -#ifdef ICE_CPP11_MAPPING std::vector> _deleters; -#endif }; diff --git a/cpp/include/Ice/LocalException.h b/cpp/include/Ice/LocalException.h index 53428850e75..a4e35984f56 100644 --- a/cpp/include/Ice/LocalException.h +++ b/cpp/include/Ice/LocalException.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -31,8 +30,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -3725,3210 +3722,5 @@ namespace Ice } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -/** - * This exception is raised when a failure occurs during initialization. - * \headerfile Ice/Ice.h - */ -class ICE_API InitializationException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - InitializationException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - InitializationException(const char* file, int line, const ::std::string& reason); - InitializationException(const InitializationException&) = default; - virtual ~InitializationException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual InitializationException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The reason for the failure. - */ - ::std::string reason; -}; - -/** - * This exception indicates that a failure occurred while initializing a plug-in. - * \headerfile Ice/Ice.h - */ -class ICE_API PluginInitializationException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - PluginInitializationException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - PluginInitializationException(const char* file, int line, const ::std::string& reason); - PluginInitializationException(const PluginInitializationException&) = default; - virtual ~PluginInitializationException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual PluginInitializationException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The reason for the failure. - */ - ::std::string reason; -}; - -/** - * This exception is raised if a feature is requested that is not supported with collocation optimization. - * - * @deprecated This exception is no longer used by the Ice run time - * \headerfile Ice/Ice.h - */ -class ICE_API CollocationOptimizationException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CollocationOptimizationException(const char* file, int line); - CollocationOptimizationException(const CollocationOptimizationException&) = default; - virtual ~CollocationOptimizationException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CollocationOptimizationException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * An attempt was made to register something more than once with the Ice run time. This exception is raised if an - * attempt is made to register a servant, servant locator, facet, value factory, plug-in, object adapter, object, or - * user exception factory more than once for the same ID. - * \headerfile Ice/Ice.h - */ -class ICE_API AlreadyRegisteredException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - AlreadyRegisteredException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param kindOfObject The kind of object that could not be removed: "servant", "facet", "object", "default servant", "servant locator", "value factory", "plugin", "object adapter", "object adapter with router", "replica group". - * @param id The ID (or name) of the object that is registered already. - */ - AlreadyRegisteredException(const char* file, int line, const ::std::string& kindOfObject, const ::std::string& id); - AlreadyRegisteredException(const AlreadyRegisteredException&) = default; - virtual ~AlreadyRegisteredException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual AlreadyRegisteredException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The kind of object that could not be removed: "servant", "facet", "object", "default servant", - * "servant locator", "value factory", "plugin", "object adapter", "object adapter with router", "replica group". - */ - ::std::string kindOfObject; - /** - * The ID (or name) of the object that is registered already. - */ - ::std::string id; -}; - -/** - * An attempt was made to find or deregister something that is not registered with the Ice run time or Ice locator. - * This exception is raised if an attempt is made to remove a servant, servant locator, facet, value factory, plug-in, - * object adapter, object, or user exception factory that is not currently registered. It's also raised if the Ice - * locator can't find an object or object adapter when resolving an indirect proxy or when an object adapter is - * activated. - * \headerfile Ice/Ice.h - */ -class ICE_API NotRegisteredException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - NotRegisteredException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param kindOfObject The kind of object that could not be removed: "servant", "facet", "object", "default servant", "servant locator", "value factory", "plugin", "object adapter", "object adapter with router", "replica group". - * @param id The ID (or name) of the object that could not be removed. - */ - NotRegisteredException(const char* file, int line, const ::std::string& kindOfObject, const ::std::string& id); - NotRegisteredException(const NotRegisteredException&) = default; - virtual ~NotRegisteredException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual NotRegisteredException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The kind of object that could not be removed: "servant", "facet", "object", "default servant", - * "servant locator", "value factory", "plugin", "object adapter", "object adapter with router", "replica group". - */ - ::std::string kindOfObject; - /** - * The ID (or name) of the object that could not be removed. - */ - ::std::string id; -}; - -/** - * The operation can only be invoked with a twoway request. This exception is raised if an attempt is made to invoke - * an operation with ice_oneway, ice_batchOneway, ice_datagram, or - * ice_batchDatagram and the operation has a return value, out-parameters, or an exception specification. - * \headerfile Ice/Ice.h - */ -class ICE_API TwowayOnlyException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - TwowayOnlyException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param operation The name of the operation that was invoked. - */ - TwowayOnlyException(const char* file, int line, const ::std::string& operation); - TwowayOnlyException(const TwowayOnlyException&) = default; - virtual ~TwowayOnlyException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual TwowayOnlyException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The name of the operation that was invoked. - */ - ::std::string operation; -}; - -/** - * An attempt was made to clone a class that does not support cloning. This exception is raised if - * ice_clone is called on a class that is derived from an abstract Slice class (that is, a class - * containing operations), and the derived class does not provide an implementation of the ice_clone - * operation (C++ only). - * \headerfile Ice/Ice.h - */ -class ICE_API CloneNotImplementedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CloneNotImplementedException(const char* file, int line); - CloneNotImplementedException(const CloneNotImplementedException&) = default; - virtual ~CloneNotImplementedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CloneNotImplementedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if an operation call on a server raises an unknown exception. For example, for C++, this - * exception is raised if the server throws a C++ exception that is not directly or indirectly derived from - * Ice::LocalException or Ice::UserException. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param unknown This field is set to the textual representation of the unknown exception if available. - */ - UnknownException(const char* file, int line, const ::std::string& unknown); - UnknownException(const UnknownException&) = default; - virtual ~UnknownException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * This field is set to the textual representation of the unknown exception if available. - */ - ::std::string unknown; -}; - -/** - * This exception is raised if an operation call on a server raises a local exception. Because local exceptions are - * not transmitted by the Ice protocol, the client receives all local exceptions raised by the server as - * {@link UnknownLocalException}. The only exception to this rule are all exceptions derived from - * {@link RequestFailedException}, which are transmitted by the Ice protocol even though they are declared - * local. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownLocalException : public UnknownException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownLocalException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param unknown This field is set to the textual representation of the unknown exception if available. - */ - UnknownLocalException(const char* file, int line, const ::std::string& unknown); - UnknownLocalException(const UnknownLocalException&) = default; - virtual ~UnknownLocalException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownLocalException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * An operation raised an incorrect user exception. This exception is raised if an operation raises a user exception - * that is not declared in the exception's throws clause. Such undeclared exceptions are not transmitted - * from the server to the client by the Ice protocol, but instead the client just gets an {@link UnknownUserException}. - * This is necessary in order to not violate the contract established by an operation's signature: Only local - * exceptions and user exceptions declared in the throws clause can be raised. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownUserException : public UnknownException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownUserException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param unknown This field is set to the textual representation of the unknown exception if available. - */ - UnknownUserException(const char* file, int line, const ::std::string& unknown); - UnknownUserException(const UnknownUserException&) = default; - virtual ~UnknownUserException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownUserException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if the Ice library version does not match the version in the Ice header files. - * \headerfile Ice/Ice.h - */ -class ICE_API VersionMismatchException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - VersionMismatchException(const char* file, int line); - VersionMismatchException(const VersionMismatchException&) = default; - virtual ~VersionMismatchException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual VersionMismatchException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if the {@link Communicator} has been destroyed. - * @see Communicator#destroy - * \headerfile Ice/Ice.h - */ -class ICE_API CommunicatorDestroyedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CommunicatorDestroyedException(const char* file, int line); - CommunicatorDestroyedException(const CommunicatorDestroyedException&) = default; - virtual ~CommunicatorDestroyedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CommunicatorDestroyedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if an attempt is made to use a deactivated {@link ObjectAdapter}. - * @see ObjectAdapter#deactivate - * @see Communicator#shutdown - * \headerfile Ice/Ice.h - */ -class ICE_API ObjectAdapterDeactivatedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ObjectAdapterDeactivatedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param name Name of the adapter. - */ - ObjectAdapterDeactivatedException(const char* file, int line, const ::std::string& name); - ObjectAdapterDeactivatedException(const ObjectAdapterDeactivatedException&) = default; - virtual ~ObjectAdapterDeactivatedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ObjectAdapterDeactivatedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Name of the adapter. - */ - ::std::string name; -}; - -/** - * This exception is raised if an {@link ObjectAdapter} cannot be activated. This happens if the {@link Locator} - * detects another active {@link ObjectAdapter} with the same adapter id. - * \headerfile Ice/Ice.h - */ -class ICE_API ObjectAdapterIdInUseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ObjectAdapterIdInUseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id Adapter ID. - */ - ObjectAdapterIdInUseException(const char* file, int line, const ::std::string& id); - ObjectAdapterIdInUseException(const ObjectAdapterIdInUseException&) = default; - virtual ~ObjectAdapterIdInUseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ObjectAdapterIdInUseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Adapter ID. - */ - ::std::string id; -}; - -/** - * This exception is raised if no suitable endpoint is available. - * \headerfile Ice/Ice.h - */ -class ICE_API NoEndpointException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - NoEndpointException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param proxy The stringified proxy for which no suitable endpoint is available. - */ - NoEndpointException(const char* file, int line, const ::std::string& proxy); - NoEndpointException(const NoEndpointException&) = default; - virtual ~NoEndpointException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual NoEndpointException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The stringified proxy for which no suitable endpoint is available. - */ - ::std::string proxy; -}; - -/** - * This exception is raised if there was an error while parsing an endpoint. - * \headerfile Ice/Ice.h - */ -class ICE_API EndpointParseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - EndpointParseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param str Describes the failure and includes the string that could not be parsed. - */ - EndpointParseException(const char* file, int line, const ::std::string& str); - EndpointParseException(const EndpointParseException&) = default; - virtual ~EndpointParseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual EndpointParseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes the failure and includes the string that could not be parsed. - */ - ::std::string str; -}; - -/** - * This exception is raised if there was an error while parsing an endpoint selection type. - * \headerfile Ice/Ice.h - */ -class ICE_API EndpointSelectionTypeParseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - EndpointSelectionTypeParseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param str Describes the failure and includes the string that could not be parsed. - */ - EndpointSelectionTypeParseException(const char* file, int line, const ::std::string& str); - EndpointSelectionTypeParseException(const EndpointSelectionTypeParseException&) = default; - virtual ~EndpointSelectionTypeParseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual EndpointSelectionTypeParseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes the failure and includes the string that could not be parsed. - */ - ::std::string str; -}; - -/** - * This exception is raised if there was an error while parsing a version. - * \headerfile Ice/Ice.h - */ -class ICE_API VersionParseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - VersionParseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param str Describes the failure and includes the string that could not be parsed. - */ - VersionParseException(const char* file, int line, const ::std::string& str); - VersionParseException(const VersionParseException&) = default; - virtual ~VersionParseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual VersionParseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes the failure and includes the string that could not be parsed. - */ - ::std::string str; -}; - -/** - * This exception is raised if there was an error while parsing a stringified identity. - * \headerfile Ice/Ice.h - */ -class ICE_API IdentityParseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - IdentityParseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param str Describes the failure and includes the string that could not be parsed. - */ - IdentityParseException(const char* file, int line, const ::std::string& str); - IdentityParseException(const IdentityParseException&) = default; - virtual ~IdentityParseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual IdentityParseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes the failure and includes the string that could not be parsed. - */ - ::std::string str; -}; - -/** - * This exception is raised if there was an error while parsing a stringified proxy. - * \headerfile Ice/Ice.h - */ -class ICE_API ProxyParseException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ProxyParseException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param str Describes the failure and includes the string that could not be parsed. - */ - ProxyParseException(const char* file, int line, const ::std::string& str); - ProxyParseException(const ProxyParseException&) = default; - virtual ~ProxyParseException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ProxyParseException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes the failure and includes the string that could not be parsed. - */ - ::std::string str; -}; - -/** - * This exception is raised if an illegal identity is encountered. - * \headerfile Ice/Ice.h - */ -class ICE_API IllegalIdentityException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - IllegalIdentityException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id The illegal identity. - */ - IllegalIdentityException(const char* file, int line, const Identity& id); - IllegalIdentityException(const IllegalIdentityException&) = default; - virtual ~IllegalIdentityException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual IllegalIdentityException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The illegal identity. - */ - ::Ice::Identity id; -}; - -/** - * This exception is raised to reject an illegal servant (typically a null servant). - * \headerfile Ice/Ice.h - */ -class ICE_API IllegalServantException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - IllegalServantException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason Describes why this servant is illegal. - */ - IllegalServantException(const char* file, int line, const ::std::string& reason); - IllegalServantException(const IllegalServantException&) = default; - virtual ~IllegalServantException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual IllegalServantException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Describes why this servant is illegal. - */ - ::std::string reason; -}; - -/** - * This exception is raised if a request failed. This exception, and all exceptions derived from - * {@link RequestFailedException}, are transmitted by the Ice protocol, even though they are declared - * local. - * \headerfile Ice/Ice.h - */ -class ICE_API RequestFailedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - RequestFailedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id The identity of the Ice Object to which the request was sent. - * @param facet The facet to which the request was sent. - * @param operation The operation name of the request. - */ - RequestFailedException(const char* file, int line, const Identity& id, const ::std::string& facet, const ::std::string& operation); - RequestFailedException(const RequestFailedException&) = default; - virtual ~RequestFailedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual RequestFailedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The identity of the Ice Object to which the request was sent. - */ - ::Ice::Identity id; - /** - * The facet to which the request was sent. - */ - ::std::string facet; - /** - * The operation name of the request. - */ - ::std::string operation; -}; - -/** - * This exception is raised if an object does not exist on the server, that is, if no facets with the given identity - * exist. - * \headerfile Ice/Ice.h - */ -class ICE_API ObjectNotExistException : public RequestFailedException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ObjectNotExistException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id The identity of the Ice Object to which the request was sent. - * @param facet The facet to which the request was sent. - * @param operation The operation name of the request. - */ - ObjectNotExistException(const char* file, int line, const Identity& id, const ::std::string& facet, const ::std::string& operation); - ObjectNotExistException(const ObjectNotExistException&) = default; - virtual ~ObjectNotExistException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ObjectNotExistException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if no facet with the given name exists, but at least one facet with the given identity - * exists. - * \headerfile Ice/Ice.h - */ -class ICE_API FacetNotExistException : public RequestFailedException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - FacetNotExistException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id The identity of the Ice Object to which the request was sent. - * @param facet The facet to which the request was sent. - * @param operation The operation name of the request. - */ - FacetNotExistException(const char* file, int line, const Identity& id, const ::std::string& facet, const ::std::string& operation); - FacetNotExistException(const FacetNotExistException&) = default; - virtual ~FacetNotExistException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual FacetNotExistException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if an operation for a given object does not exist on the server. Typically this is caused - * by either the client or the server using an outdated Slice specification. - * \headerfile Ice/Ice.h - */ -class ICE_API OperationNotExistException : public RequestFailedException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - OperationNotExistException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param id The identity of the Ice Object to which the request was sent. - * @param facet The facet to which the request was sent. - * @param operation The operation name of the request. - */ - OperationNotExistException(const char* file, int line, const Identity& id, const ::std::string& facet, const ::std::string& operation); - OperationNotExistException(const OperationNotExistException&) = default; - virtual ~OperationNotExistException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual OperationNotExistException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if a system error occurred in the server or client process. There are many possible causes - * for such a system exception. For details on the cause, {@link SyscallException#error} should be inspected. - * \headerfile Ice/Ice.h - */ -class ICE_API SyscallException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - SyscallException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - */ - SyscallException(const char* file, int line, Int error); - SyscallException(const SyscallException&) = default; - virtual ~SyscallException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual SyscallException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The error number describing the system exception. For C++ and Unix, this is equivalent to errno. - * For C++ and Windows, this is the value returned by GetLastError() or - * WSAGetLastError(). - */ - ::Ice::Int error; -}; - -/** - * This exception indicates socket errors. - * \headerfile Ice/Ice.h - */ -class ICE_API SocketException : public SyscallException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - SocketException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - */ - SocketException(const char* file, int line, Int error); - SocketException(const SocketException&) = default; - virtual ~SocketException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual SocketException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates CFNetwork errors. - * \headerfile Ice/Ice.h - */ -class ICE_API CFNetworkException : public SocketException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CFNetworkException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - * @param domain The domain of the error. - */ - CFNetworkException(const char* file, int line, Int error, const ::std::string& domain); - CFNetworkException(const CFNetworkException&) = default; - virtual ~CFNetworkException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CFNetworkException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The domain of the error. - */ - ::std::string domain; -}; - -/** - * This exception indicates file errors. - * \headerfile Ice/Ice.h - */ -class ICE_API FileException : public SyscallException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - FileException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - * @param path The path of the file responsible for the error. - */ - FileException(const char* file, int line, Int error, const ::std::string& path); - FileException(const FileException&) = default; - virtual ~FileException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual FileException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The path of the file responsible for the error. - */ - ::std::string path; -}; - -/** - * This exception indicates connection failures. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectFailedException : public SocketException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectFailedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - */ - ConnectFailedException(const char* file, int line, Int error); - ConnectFailedException(const ConnectFailedException&) = default; - virtual ~ConnectFailedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectFailedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a connection failure for which the server host actively refuses a connection. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionRefusedException : public ConnectFailedException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectionRefusedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - */ - ConnectionRefusedException(const char* file, int line, Int error); - ConnectionRefusedException(const ConnectionRefusedException&) = default; - virtual ~ConnectionRefusedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectionRefusedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a lost connection. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionLostException : public SocketException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectionLostException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the system exception. - */ - ConnectionLostException(const char* file, int line, Int error); - ConnectionLostException(const ConnectionLostException&) = default; - virtual ~ConnectionLostException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectionLostException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a DNS problem. For details on the cause, {@link DNSException#error} should be inspected. - * \headerfile Ice/Ice.h - */ -class ICE_API DNSException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - DNSException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param error The error number describing the DNS problem. - * @param host The host name that could not be resolved. - */ - DNSException(const char* file, int line, Int error, const ::std::string& host); - DNSException(const DNSException&) = default; - virtual ~DNSException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual DNSException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The error number describing the DNS problem. For C++ and Unix, this is equivalent to h_errno. For - * C++ and Windows, this is the value returned by WSAGetLastError(). - */ - ::Ice::Int error; - /** - * The host name that could not be resolved. - */ - ::std::string host; -}; - -/** - * This exception indicates a request was interrupted. - * \headerfile Ice/Ice.h - */ -class ICE_API OperationInterruptedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - OperationInterruptedException(const char* file, int line); - OperationInterruptedException(const OperationInterruptedException&) = default; - virtual ~OperationInterruptedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual OperationInterruptedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a timeout condition. - * \headerfile Ice/Ice.h - */ -class ICE_API TimeoutException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - TimeoutException(const char* file, int line); - TimeoutException(const TimeoutException&) = default; - virtual ~TimeoutException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual TimeoutException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a connection establishment timeout condition. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectTimeoutException : public TimeoutException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectTimeoutException(const char* file, int line); - ConnectTimeoutException(const ConnectTimeoutException&) = default; - virtual ~ConnectTimeoutException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectTimeoutException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a connection closure timeout condition. - * \headerfile Ice/Ice.h - */ -class ICE_API CloseTimeoutException : public TimeoutException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CloseTimeoutException(const char* file, int line); - CloseTimeoutException(const CloseTimeoutException&) = default; - virtual ~CloseTimeoutException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CloseTimeoutException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that a connection has been shut down because it has been idle for some time. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionTimeoutException : public TimeoutException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectionTimeoutException(const char* file, int line); - ConnectionTimeoutException(const ConnectionTimeoutException&) = default; - virtual ~ConnectionTimeoutException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectionTimeoutException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that an invocation failed because it timed out. - * \headerfile Ice/Ice.h - */ -class ICE_API InvocationTimeoutException : public TimeoutException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - InvocationTimeoutException(const char* file, int line); - InvocationTimeoutException(const InvocationTimeoutException&) = default; - virtual ~InvocationTimeoutException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual InvocationTimeoutException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that an asynchronous invocation failed because it was canceled explicitly by the user. - * \headerfile Ice/Ice.h - */ -class ICE_API InvocationCanceledException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - InvocationCanceledException(const char* file, int line); - InvocationCanceledException(const InvocationCanceledException&) = default; - virtual ~InvocationCanceledException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual InvocationCanceledException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * A generic exception base for all kinds of protocol error conditions. - * \headerfile Ice/Ice.h - */ -class ICE_API ProtocolException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ProtocolException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - ProtocolException(const char* file, int line, const ::std::string& reason); - ProtocolException(const ProtocolException&) = default; - virtual ~ProtocolException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ProtocolException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The reason for the failure. - */ - ::std::string reason; -}; - -/** - * This exception indicates that a message did not start with the expected magic number ('I', 'c', 'e', 'P'). - * \headerfile Ice/Ice.h - */ -class ICE_API BadMagicException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - BadMagicException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - * @param badMagic A sequence containing the first four bytes of the incorrect message. - */ - BadMagicException(const char* file, int line, const ::std::string& reason, const ByteSeq& badMagic); - BadMagicException(const BadMagicException&) = default; - virtual ~BadMagicException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual BadMagicException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * A sequence containing the first four bytes of the incorrect message. - */ - ::Ice::ByteSeq badMagic; -}; - -/** - * This exception indicates an unsupported protocol version. - * \headerfile Ice/Ice.h - */ -class ICE_API UnsupportedProtocolException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnsupportedProtocolException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - * @param bad The version of the unsupported protocol. - * @param supported The version of the protocol that is supported. - */ - UnsupportedProtocolException(const char* file, int line, const ::std::string& reason, const ProtocolVersion& bad, const ProtocolVersion& supported); - UnsupportedProtocolException(const UnsupportedProtocolException&) = default; - virtual ~UnsupportedProtocolException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnsupportedProtocolException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The version of the unsupported protocol. - */ - ::Ice::ProtocolVersion bad; - /** - * The version of the protocol that is supported. - */ - ::Ice::ProtocolVersion supported; -}; - -/** - * This exception indicates an unsupported data encoding version. - * \headerfile Ice/Ice.h - */ -class ICE_API UnsupportedEncodingException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnsupportedEncodingException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - * @param bad The version of the unsupported encoding. - * @param supported The version of the encoding that is supported. - */ - UnsupportedEncodingException(const char* file, int line, const ::std::string& reason, const EncodingVersion& bad, const EncodingVersion& supported); - UnsupportedEncodingException(const UnsupportedEncodingException&) = default; - virtual ~UnsupportedEncodingException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnsupportedEncodingException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The version of the unsupported encoding. - */ - ::Ice::EncodingVersion bad; - /** - * The version of the encoding that is supported. - */ - ::Ice::EncodingVersion supported; -}; - -/** - * This exception indicates that an unknown protocol message has been received. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownMessageException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownMessageException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - UnknownMessageException(const char* file, int line, const ::std::string& reason); - UnknownMessageException(const UnknownMessageException&) = default; - virtual ~UnknownMessageException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownMessageException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if a message is received over a connection that is not yet validated. - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionNotValidatedException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectionNotValidatedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - ConnectionNotValidatedException(const char* file, int line, const ::std::string& reason); - ConnectionNotValidatedException(const ConnectionNotValidatedException&) = default; - virtual ~ConnectionNotValidatedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectionNotValidatedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that a response for an unknown request ID has been received. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownRequestIdException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownRequestIdException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - UnknownRequestIdException(const char* file, int line, const ::std::string& reason); - UnknownRequestIdException(const UnknownRequestIdException&) = default; - virtual ~UnknownRequestIdException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownRequestIdException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that an unknown reply status has been received. - * \headerfile Ice/Ice.h - */ -class ICE_API UnknownReplyStatusException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnknownReplyStatusException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - UnknownReplyStatusException(const char* file, int line, const ::std::string& reason); - UnknownReplyStatusException(const UnknownReplyStatusException&) = default; - virtual ~UnknownReplyStatusException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnknownReplyStatusException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates that the connection has been gracefully shut down by the server. The operation call that - * caused this exception has not been executed by the server. In most cases you will not get this exception, because - * the client will automatically retry the operation call in case the server shut down the connection. However, if - * upon retry the server shuts down the connection again, and the retry limit has been reached, then this exception is - * propagated to the application code. - * \headerfile Ice/Ice.h - */ -class ICE_API CloseConnectionException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CloseConnectionException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - CloseConnectionException(const char* file, int line, const ::std::string& reason); - CloseConnectionException(const CloseConnectionException&) = default; - virtual ~CloseConnectionException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CloseConnectionException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised by an operation call if the application closes the connection locally using - * {@link Connection#close}. - * @see Connection#close - * \headerfile Ice/Ice.h - */ -class ICE_API ConnectionManuallyClosedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ConnectionManuallyClosedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param graceful True if the connection was closed gracefully, false otherwise. - */ - ConnectionManuallyClosedException(const char* file, int line, bool graceful); - ConnectionManuallyClosedException(const ConnectionManuallyClosedException&) = default; - virtual ~ConnectionManuallyClosedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ConnectionManuallyClosedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * True if the connection was closed gracefully, false otherwise. - */ - bool graceful; -}; - -/** - * This exception indicates that a message size is less than the minimum required size. - * \headerfile Ice/Ice.h - */ -class ICE_API IllegalMessageSizeException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - IllegalMessageSizeException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - IllegalMessageSizeException(const char* file, int line, const ::std::string& reason); - IllegalMessageSizeException(const IllegalMessageSizeException&) = default; - virtual ~IllegalMessageSizeException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual IllegalMessageSizeException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a problem with compressing or uncompressing data. - * \headerfile Ice/Ice.h - */ -class ICE_API CompressionException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - CompressionException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - CompressionException(const char* file, int line, const ::std::string& reason); - CompressionException(const CompressionException&) = default; - virtual ~CompressionException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual CompressionException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * A datagram exceeds the configured size. This exception is raised if a datagram exceeds the configured send or - * receive buffer size, or exceeds the maximum payload size of a UDP packet (65507 bytes). - * \headerfile Ice/Ice.h - */ -class ICE_API DatagramLimitException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - DatagramLimitException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - DatagramLimitException(const char* file, int line, const ::std::string& reason); - DatagramLimitException(const DatagramLimitException&) = default; - virtual ~DatagramLimitException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual DatagramLimitException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised for errors during marshaling or unmarshaling data. - * \headerfile Ice/Ice.h - */ -class ICE_API MarshalException : public ProtocolException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - MarshalException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - MarshalException(const char* file, int line, const ::std::string& reason); - MarshalException(const MarshalException&) = default; - virtual ~MarshalException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual MarshalException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if inconsistent data is received while unmarshaling a proxy. - * \headerfile Ice/Ice.h - */ -class ICE_API ProxyUnmarshalException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ProxyUnmarshalException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - ProxyUnmarshalException(const char* file, int line, const ::std::string& reason); - ProxyUnmarshalException(const ProxyUnmarshalException&) = default; - virtual ~ProxyUnmarshalException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ProxyUnmarshalException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if an out-of-bounds condition occurs during unmarshaling. - * \headerfile Ice/Ice.h - */ -class ICE_API UnmarshalOutOfBoundsException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnmarshalOutOfBoundsException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - UnmarshalOutOfBoundsException(const char* file, int line, const ::std::string& reason); - UnmarshalOutOfBoundsException(const UnmarshalOutOfBoundsException&) = default; - virtual ~UnmarshalOutOfBoundsException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnmarshalOutOfBoundsException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if no suitable value factory was found during unmarshaling of a Slice class instance. - * @see ValueFactory - * @see Communicator#getValueFactoryManager - * @see ValueFactoryManager#add - * @see ValueFactoryManager#find - * \headerfile Ice/Ice.h - */ -class ICE_API NoValueFactoryException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - NoValueFactoryException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - * @param type The Slice type ID of the class instance for which no factory could be found. - */ - NoValueFactoryException(const char* file, int line, const ::std::string& reason, const ::std::string& type); - NoValueFactoryException(const NoValueFactoryException&) = default; - virtual ~NoValueFactoryException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual NoValueFactoryException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The Slice type ID of the class instance for which no factory could be found. - */ - ::std::string type; -}; - -/** - * This exception is raised if the type of an unmarshaled Slice class instance does not match its expected type. This - * can happen if client and server are compiled with mismatched Slice definitions or if a class of the wrong type is - * passed as a parameter or return value using dynamic invocation. This exception can also be raised if IceStorm is - * used to send Slice class instances and an operation is subscribed to the wrong topic. - * \headerfile Ice/Ice.h - */ -class ICE_API UnexpectedObjectException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - UnexpectedObjectException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - * @param type The Slice type ID of the class instance that was unmarshaled. - * @param expectedType The Slice type ID that was expected by the receiving operation. - */ - UnexpectedObjectException(const char* file, int line, const ::std::string& reason, const ::std::string& type, const ::std::string& expectedType); - UnexpectedObjectException(const UnexpectedObjectException&) = default; - virtual ~UnexpectedObjectException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual UnexpectedObjectException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The Slice type ID of the class instance that was unmarshaled. - */ - ::std::string type; - /** - * The Slice type ID that was expected by the receiving operation. - */ - ::std::string expectedType; -}; - -/** - * This exception is raised when Ice receives a request or reply message whose size exceeds the limit specified by the - * Ice.MessageSizeMax property. - * \headerfile Ice/Ice.h - */ -class ICE_API MemoryLimitException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - MemoryLimitException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - MemoryLimitException(const char* file, int line, const ::std::string& reason); - MemoryLimitException(const MemoryLimitException&) = default; - virtual ~MemoryLimitException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual MemoryLimitException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised when a string conversion to or from UTF-8 fails during marshaling or unmarshaling. - * \headerfile Ice/Ice.h - */ -class ICE_API StringConversionException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - StringConversionException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - StringConversionException(const char* file, int line, const ::std::string& reason); - StringConversionException(const StringConversionException&) = default; - virtual ~StringConversionException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual StringConversionException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception indicates a malformed data encapsulation. - * \headerfile Ice/Ice.h - */ -class ICE_API EncapsulationException : public MarshalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - EncapsulationException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - EncapsulationException(const char* file, int line, const ::std::string& reason); - EncapsulationException(const EncapsulationException&) = default; - virtual ~EncapsulationException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual EncapsulationException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * This exception is raised if an unsupported feature is used. The unsupported feature string contains the name of the - * unsupported feature. - * \headerfile Ice/Ice.h - */ -class ICE_API FeatureNotSupportedException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - FeatureNotSupportedException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param unsupportedFeature The name of the unsupported feature. - */ - FeatureNotSupportedException(const char* file, int line, const ::std::string& unsupportedFeature); - FeatureNotSupportedException(const FeatureNotSupportedException&) = default; - virtual ~FeatureNotSupportedException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual FeatureNotSupportedException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The name of the unsupported feature. - */ - ::std::string unsupportedFeature; -}; - -/** - * This exception indicates a failure in a security subsystem, such as the IceSSL plug-in. - * \headerfile Ice/Ice.h - */ -class ICE_API SecurityException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - SecurityException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - SecurityException(const char* file, int line, const ::std::string& reason); - SecurityException(const SecurityException&) = default; - virtual ~SecurityException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual SecurityException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The reason for the failure. - */ - ::std::string reason; -}; - -/** - * This exception indicates that an attempt has been made to change the connection properties of a fixed proxy. - * \headerfile Ice/Ice.h - */ -class ICE_API FixedProxyException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - FixedProxyException(const char* file, int line); - FixedProxyException(const FixedProxyException&) = default; - virtual ~FixedProxyException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual FixedProxyException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -/** - * Indicates that the response to a request has already been sent; re-dispatching such a request is not possible. - * \headerfile Ice/Ice.h - */ -class ICE_API ResponseSentException : public LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - ResponseSentException(const char* file, int line); - ResponseSentException(const ResponseSentException&) = default; - virtual ~ResponseSentException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual ResponseSentException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; -}; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/LocalObject.h b/cpp/include/Ice/LocalObject.h index 75d03dabe07..cd204bd6b0e 100644 --- a/cpp/include/Ice/LocalObject.h +++ b/cpp/include/Ice/LocalObject.h @@ -5,7 +5,7 @@ #ifndef ICE_LOCAL_OBJECT_H #define ICE_LOCAL_OBJECT_H -#if !defined(ICE_CPP11_MAPPING) || defined(ICE_BUILDING_SRC) +#if defined(ICE_BUILDING_SRC) // // Part of the C++98 mapping, and "internal" definitions when building Ice // with the C++11 mapping diff --git a/cpp/include/Ice/LocatorF.h b/cpp/include/Ice/LocatorF.h index c8c5627730f..86b1a336815 100644 --- a/cpp/include/Ice/LocatorF.h +++ b/cpp/include/Ice/LocatorF.h @@ -5,15 +5,9 @@ #ifndef ICE_LOCATOR_F_H #define ICE_LOCATOR_F_H -// TODO: remove this include when we remove the C++98 mapping. -#include - #include "Config.h" #include #include "ProxyF.h" -#include "SharedPtr.h" - -#ifdef ICE_CPP11_MAPPING // C++11 mapping namespace Ice { @@ -31,48 +25,4 @@ using LocatorRegistryPrxPtr = ::std::shared_ptr; } -#else // C++98 mapping - -namespace Ice -{ - class InputStream; -} - -namespace IceProxy::Ice -{ - -class Locator; -/// \cond INTERNAL -ICE_API void _readProxy(::Ice::InputStream*, ::IceInternal::ProxyHandle< Locator>&); -ICE_API ::IceProxy::Ice::Object* upCast(Locator*); -/// \endcond - -class LocatorRegistry; -/// \cond INTERNAL -ICE_API void _readProxy(::Ice::InputStream*, ::IceInternal::ProxyHandle< LocatorRegistry>&); -ICE_API ::IceProxy::Ice::Object* upCast(LocatorRegistry*); -/// \endcond - -} - -namespace Ice -{ - -typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Locator> LocatorPrx; -typedef LocatorPrx LocatorPrxPtr; - -class Locator; -using LocatorPtr = ::Ice::SharedPtr< Locator>; -typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::LocatorRegistry> LocatorRegistryPrx; -typedef LocatorRegistryPrx LocatorRegistryPrxPtr; - -class LocatorRegistry; -using LocatorRegistryPtr = ::Ice::SharedPtr< LocatorRegistry>; - -} - -#endif - -// TODO: remove this include when we remove the C++98 mapping. -#include #endif diff --git a/cpp/include/Ice/Logger.h b/cpp/include/Ice/Logger.h index d6dbd886f04..5e8bfea67a8 100644 --- a/cpp/include/Ice/Logger.h +++ b/cpp/include/Ice/Logger.h @@ -5,7 +5,6 @@ #ifndef __Ice_Logger_h__ #define __Ice_Logger_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include @@ -27,8 +25,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -110,102 +106,4 @@ using LoggerPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Logger; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Logger*); -/// \endcond -typedef ::IceInternal::Handle< Logger> LoggerPtr; - -} - -namespace Ice -{ - -/** - * The Ice message logger. Applications can provide their own logger by implementing this interface and installing it - * in a communicator. - * \headerfile Ice/Ice.h - */ -class ICE_API Logger : public virtual LocalObject -{ -public: - - typedef LoggerPtr PointerType; - - virtual ~Logger(); - Logger() = default; - Logger(const Logger&) = default; - Logger& operator=(const Logger&) = default; - - /** - * Print a message. The message is printed literally, without any decorations such as executable name or time - * stamp. - * @param message The message to log. - */ - virtual void print(const ::std::string& message) = 0; - - /** - * Log a trace message. - * @param category The trace category. - * @param message The trace message to log. - */ - virtual void trace(const ::std::string& category, const ::std::string& message) = 0; - - /** - * Log a warning message. - * @param message The warning message to log. - * @see #error - */ - virtual void warning(const ::std::string& message) = 0; - - /** - * Log an error message. - * @param message The error message to log. - * @see #warning - */ - virtual void error(const ::std::string& message) = 0; - - /** - * Returns this logger's prefix. - * @return The prefix. - */ - virtual ::std::string getPrefix() = 0; - - /** - * Returns a clone of the logger with a new prefix. - * @param prefix The new prefix for the logger. - * @return A logger instance. - */ - virtual LoggerPtr cloneWithPrefix(const ::std::string& prefix) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Logger& lhs, const Logger& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Logger& lhs, const Logger& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/Ice/LoggerF.h b/cpp/include/Ice/LoggerF.h index 54bf0cb669e..bf25269db6b 100644 --- a/cpp/include/Ice/LoggerF.h +++ b/cpp/include/Ice/LoggerF.h @@ -5,7 +5,6 @@ #ifndef __Ice_LoggerF_h__ #define __Ice_LoggerF_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include @@ -27,8 +25,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -36,13 +32,6 @@ class Logger; } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace Ice { @@ -52,27 +41,4 @@ using LoggerPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Logger; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Logger*); -/// \endcond -typedef ::IceInternal::Handle< Logger> LoggerPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/Ice/LoggerUtil.h b/cpp/include/Ice/LoggerUtil.h index 8696a75562a..8f47028e8dd 100644 --- a/cpp/include/Ice/LoggerUtil.h +++ b/cpp/include/Ice/LoggerUtil.h @@ -74,15 +74,9 @@ operator<<(LoggerOutputBase& out, const T& val) return LoggerOutputInserter::value>::insert(out, val); } -#ifdef ICE_CPP11_MAPPING template::value>::type* = nullptr> inline LoggerOutputBase& operator<<(LoggerOutputBase& os, const ::std::shared_ptr& p) -#else -template -inline LoggerOutputBase& -operator<<(LoggerOutputBase& os, const ::IceInternal::ProxyHandle& p) -#endif { return os << (p ? p->ice_toString() : ""); } diff --git a/cpp/include/Ice/MetricsAdminI.h b/cpp/include/Ice/MetricsAdminI.h index d99dfc293e9..f6bf48c5ba9 100644 --- a/cpp/include/Ice/MetricsAdminI.h +++ b/cpp/include/Ice/MetricsAdminI.h @@ -614,21 +614,11 @@ class ICE_API MetricsAdminI : public IceMX::MetricsAdmin, void updated(const Ice::PropertyDict&); -#ifdef ICE_CPP11_MAPPING virtual void enableMetricsView(std::string, const ::Ice::Current&); virtual void disableMetricsView(std::string, const ::Ice::Current&); virtual IceMX::MetricsView getMetricsView(std::string, Ice::Long&, const ::Ice::Current&); virtual IceMX::MetricsFailuresSeq getMapMetricsFailures(std::string, std::string, const ::Ice::Current&); virtual IceMX::MetricsFailures getMetricsFailures(std::string, std::string, std::string, const ::Ice::Current&); -#else - virtual void enableMetricsView(const std::string&, const ::Ice::Current&); - virtual void disableMetricsView(const std::string&, const ::Ice::Current&); - virtual IceMX::MetricsView getMetricsView(const std::string&, Ice::Long&, const ::Ice::Current&); - virtual IceMX::MetricsFailuresSeq getMapMetricsFailures(const std::string&, const std::string&, - const ::Ice::Current&); - virtual IceMX::MetricsFailures getMetricsFailures(const std::string&, const std::string&, const std::string&, - const ::Ice::Current&); -#endif std::vector getMaps(const std::string&) const; const Ice::LoggerPtr& getLogger() const; diff --git a/cpp/include/Ice/MetricsFunctional.h b/cpp/include/Ice/MetricsFunctional.h index c0f04534167..4addc7dfa35 100644 --- a/cpp/include/Ice/MetricsFunctional.h +++ b/cpp/include/Ice/MetricsFunctional.h @@ -16,7 +16,6 @@ template struct ReferenceWrapper } }; -#ifdef ICE_CPP11_MAPPING // C++11 mapping template struct ReferenceWrapper<::std::shared_ptr > { static R* get(const ::std::shared_ptr& v) @@ -32,55 +31,6 @@ template struct ReferenceWrapper& > return v.get(); } }; -#else // C++98 mapping -template struct ReferenceWrapper > -{ - static R* get(const IceInternal::ProxyHandle& v) - { - return v.get(); - } -}; - -template struct ReferenceWrapper& > -{ - static R* get(const IceInternal::ProxyHandle& v) - { - return v.get(); - } -}; - -template struct ReferenceWrapper > -{ - static R* get(const IceInternal::Handle& v) - { - return v.get(); - } -}; - -template struct ReferenceWrapper& > -{ - static R* get(const IceInternal::Handle& v) - { - return v.get(); - } -}; - -template struct ReferenceWrapper > -{ - static R* get(const Ice::SharedPtr& v) - { - return v.get(); - } -}; - -template struct ReferenceWrapper& > -{ - static R* get(const Ice::SharedPtr& v) - { - return v.get(); - } -}; -#endif template struct ReferenceWrapper { diff --git a/cpp/include/Ice/Object.h b/cpp/include/Ice/Object.h index 79f520e7cb4..47827ba6872 100644 --- a/cpp/include/Ice/Object.h +++ b/cpp/include/Ice/Object.h @@ -28,34 +28,6 @@ namespace Ice /** A default-initialized Current instance. */ ICE_API extern const Current emptyCurrent; -#ifndef ICE_CPP11_MAPPING -/** - * Abstract callback class for an asynchronous dispatch interceptor. - * \headerfile Ice/Ice.h - */ -class ICE_API DispatchInterceptorAsyncCallback : public virtual IceUtil::Shared -{ -public: - - virtual ~DispatchInterceptorAsyncCallback(); - - /** Called when the dispatch completes successfully. */ - virtual bool response() = 0; - - /** - * Called when the dispatch fails with an exception. - * @param ex The exception that caused the failure. - */ - virtual bool exception(const std::exception& ex) = 0; - - /** - * Called when the dispatch fails with an unknown exception. - */ - virtual bool exception() = 0; -}; -ICE_DEFINE_PTR(DispatchInterceptorAsyncCallbackPtr, DispatchInterceptorAsyncCallback); -#endif - /** * Encapsulates details about a dispatch request. * \headerfile Ice/Ice.h @@ -132,7 +104,6 @@ class ICE_API Object static const std::string& ice_staticId(); // TODO: temporary. To remove it, we need to refactor IncomingAsync that is the base class for generated AMD callbacks. -#ifdef ICE_CPP11_MAPPING /** * Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation * to a servant (or to another interceptor). @@ -147,17 +118,6 @@ class ICE_API Object virtual bool ice_dispatch(Ice::Request& request, std::function response = nullptr, std::function error = nullptr); -#else - /** - * Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation - * to a servant (or to another interceptor). - * @param request The details of the invocation. - * @param cb The asynchronous callback object. - * @return True if the request completed synchronously, false if the request will be completed asynchronously. - * @throws UserException A user exception that propagates out of this method will be marshaled as the result. - */ - virtual bool ice_dispatch(Ice::Request& request, const DispatchInterceptorAsyncCallbackPtr& cb = 0); -#endif /// \cond INTERNAL virtual bool _iceDispatch(IceInternal::Incoming&, const Current&); @@ -254,7 +214,6 @@ class ICE_API BlobjectAsync : public virtual Object { public: -#ifdef ICE_CPP11_MAPPING /** * Dispatch an incoming request asynchronously. * @@ -272,19 +231,6 @@ class ICE_API BlobjectAsync : public virtual Object std::function&)> response, std::function error, const Current& current) = 0; -#else - /** - * Dispatch an incoming request asynchronously. - * - * @param cb The callback to invoke when the invocation completes. - * @param inEncaps An encapsulation containing the encoded in-parameters for the operation. - * @param current The Current object for the invocation. - * @throws UserException A user exception can be raised directly and the - * run time will marshal it. - */ - virtual void ice_invoke_async(const AMD_Object_ice_invokePtr& cb, const std::vector& inEncaps, - const Current& current) = 0; -#endif /// \cond INTERNAL virtual bool _iceDispatch(IceInternal::Incoming&, const Current&); @@ -300,7 +246,6 @@ class ICE_API BlobjectArrayAsync : public virtual Object { public: -#ifdef ICE_CPP11_MAPPING /** * Dispatch an incoming request asynchronously. * @@ -318,21 +263,6 @@ class ICE_API BlobjectArrayAsync : public virtual Object std::function&)> response, std::function error, const Current& current) = 0; -#else - /** - * Dispatch an incoming request asynchronously. - * - * @param cb The callback to invoke when the invocation completes. - * @param inEncaps An encapsulation containing the encoded in-parameters for the operation. - * @param current The Current object for the invocation. - * @throws UserException A user exception can be raised directly and the - * run time will marshal it. - */ - virtual void ice_invoke_async(const AMD_Object_ice_invokePtr& cb, - const std::pair& inEncaps, - const Current& current) = 0; -#endif - /// \cond INTERNAL virtual bool _iceDispatch(IceInternal::Incoming&, const Current&); /// \endcond diff --git a/cpp/include/Ice/ObjectAdapter.h b/cpp/include/Ice/ObjectAdapter.h index e25f8facce8..778a6a122a8 100644 --- a/cpp/include/Ice/ObjectAdapter.h +++ b/cpp/include/Ice/ObjectAdapter.h @@ -10,10 +10,11 @@ #include "Ice/LocatorF.h" #include "Endpoint.h" #include "FacetMap.h" -#include "SharedPtr.h" #include "ServantLocator.h" #include "Proxy.h" +#include + namespace Ice { @@ -131,24 +132,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual ObjectPrxPtr add(const ::std::shared_ptr& servant, const Identity& id) = 0; - /** - * Add a servant to this object adapter's Active Servant Map. Note that one servant can implement several Ice - * objects by registering the servant with multiple identities. Adding a servant with an identity that is in the - * map already throws {@link AlreadyRegisteredException}. - * @param servant The servant to add. - * @param id The identity of the Ice object that is implemented by the servant. - * @return A proxy that matches the given identity and this object adapter. - * @see Identity - * @see #addFacet - * @see #addWithUUID - * @see #remove - * @see #find - */ - ObjectPrxPtr add(const SharedPtr& servant, const Identity& id) - { - return add(servant.underlying(), id); - } - /** * Like {@link #add}, but with a facet. Calling add(servant, id) is equivalent to calling * {@link #addFacet} with an empty facet. @@ -164,24 +147,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual ObjectPrxPtr addFacet(const ::std::shared_ptr& servant, const Identity& id, const ::std::string& facet) = 0; - /** - * Like {@link #add}, but with a facet. Calling add(servant, id) is equivalent to calling - * {@link #addFacet} with an empty facet. - * @param servant The servant to add. - * @param id The identity of the Ice object that is implemented by the servant. - * @param facet The facet. An empty facet means the default facet. - * @return A proxy that matches the given identity, facet, and this object adapter. - * @see Identity - * @see #add - * @see #addFacetWithUUID - * @see #removeFacet - * @see #findFacet - */ - ObjectPrxPtr addFacet(const SharedPtr& servant, const Identity& id, const ::std::string& facet) - { - return addFacet(servant.underlying(), id, facet); - } - /** * Add a servant to this object adapter's Active Servant Map, using an automatically generated UUID as its * identity. Note that the generated UUID identity can be accessed using the proxy's ice_getIdentity @@ -196,23 +161,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual ObjectPrxPtr addWithUUID(const ::std::shared_ptr& servant) = 0; - /** - * Add a servant to this object adapter's Active Servant Map, using an automatically generated UUID as its - * identity. Note that the generated UUID identity can be accessed using the proxy's ice_getIdentity - * operation. - * @param servant The servant to add. - * @return A proxy that matches the generated UUID identity and this object adapter. - * @see Identity - * @see #add - * @see #addFacetWithUUID - * @see #remove - * @see #find - */ - ObjectPrxPtr addWithUUID(const SharedPtr& servant) - { - return addWithUUID(servant.underlying()); - } - /** * Like {@link #addWithUUID}, but with a facet. Calling addWithUUID(servant) is equivalent to calling * {@link #addFacetWithUUID} with an empty facet. @@ -227,23 +175,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual ObjectPrxPtr addFacetWithUUID(const ::std::shared_ptr& servant, const ::std::string& facet) = 0; - /** - * Like {@link #addWithUUID}, but with a facet. Calling addWithUUID(servant) is equivalent to calling - * {@link #addFacetWithUUID} with an empty facet. - * @param servant The servant to add. - * @param facet The facet. An empty facet means the default facet. - * @return A proxy that matches the generated UUID identity, facet, and this object adapter. - * @see Identity - * @see #addFacet - * @see #addWithUUID - * @see #removeFacet - * @see #findFacet - */ - ObjectPrxPtr addFacetWithUUID(const SharedPtr& servant, const ::std::string& facet) - { - return addFacetWithUUID(servant.underlying(), facet); - } - /** * Add a default servant to handle requests for a specific category. Adding a default servant for a category for * which a default servant is already registered throws {@link AlreadyRegisteredException}. To dispatch operation @@ -266,31 +197,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual void addDefaultServant(const ::std::shared_ptr& servant, const ::std::string& category) = 0; - /** - * Add a default servant to handle requests for a specific category. Adding a default servant for a category for - * which a default servant is already registered throws {@link AlreadyRegisteredException}. To dispatch operation - * calls on servants, the object adapter tries to find a servant for a given Ice object identity and facet in the - * following order: - *
    - *
  1. The object adapter tries to find a servant for the identity and facet in the Active Servant Map.
  2. - *
  3. If no servant has been found in the Active Servant Map, the object adapter tries to find a default servant - * for the category component of the identity.
  4. - *
  5. If no servant has been found by any of the preceding steps, the object adapter tries to find a default - * servant for an empty category, regardless of the category contained in the identity.
  6. - *
  7. If no servant has been found by any of the preceding steps, the object adapter gives up and the caller - * receives {@link ObjectNotExistException} or {@link FacetNotExistException}.
  8. - *
- * @param servant The default servant. - * @param category The category for which the default servant is registered. An empty category means it will - * handle all categories. - * @see #removeDefaultServant - * @see #findDefaultServant - */ - void addDefaultServant(const SharedPtr& servant, const ::std::string& category) - { - return addDefaultServant(servant.underlying(), category); - } - /** * Remove a servant (that is, the default facet) from the object adapter's Active Servant Map. * @param id The identity of the Ice object that is implemented by the servant. If the servant implements multiple @@ -410,36 +316,6 @@ class ICE_CLASS(ICE_API) ObjectAdapter */ virtual void addServantLocator(const ::std::shared_ptr& locator, const ::std::string& category) = 0; - /** - * Add a Servant Locator to this object adapter. Adding a servant locator for a category for which a servant - * locator is already registered throws {@link AlreadyRegisteredException}. To dispatch operation calls on - * servants, the object adapter tries to find a servant for a given Ice object identity and facet in the following - * order: - *
    - *
  1. The object adapter tries to find a servant for the identity and facet in the Active Servant Map.
  2. - *
  3. If no servant has been found in the Active Servant Map, the object adapter tries to find a servant locator - * for the category component of the identity. If a locator is found, the object adapter tries to find a servant - * using this locator.
  4. - *
  5. If no servant has been found by any of the preceding steps, the object adapter tries to find a locator for - * an empty category, regardless of the category contained in the identity. If a locator is found, the object - * adapter tries to find a servant using this locator.
  6. - *
  7. If no servant has been found by any of the preceding steps, the object adapter gives up and the caller - * receives {@link ObjectNotExistException} or {@link FacetNotExistException}.
  8. - *
- *

Only one locator for the empty category can be installed. - * @param locator The locator to add. - * @param category The category for which the Servant Locator can locate servants, or an empty string if the - * Servant Locator does not belong to any specific category. - * @see Identity - * @see #removeServantLocator - * @see #findServantLocator - * @see ServantLocator - */ - void addServantLocator(const SharedPtr& locator, const ::std::string& category) - { - return addServantLocator(locator.underlying(), category); - } - /** * Remove a Servant Locator from this object adapter. * @param category The category for which the Servant Locator can locate servants, or an empty string if the diff --git a/cpp/include/Ice/ObjectF.h b/cpp/include/Ice/ObjectF.h index d9b11775725..a60cb043c71 100644 --- a/cpp/include/Ice/ObjectF.h +++ b/cpp/include/Ice/ObjectF.h @@ -6,20 +6,15 @@ #define ICE_OBJECT_F_H #include -#include +#include namespace Ice { class Object; - -#ifdef ICE_CPP11_MAPPING /// \cond INTERNAL using ObjectPtr = ::std::shared_ptr; /// \endcond -#else -using ObjectPtr = SharedPtr; -#endif } diff --git a/cpp/include/Ice/OutgoingAsync.h b/cpp/include/Ice/OutgoingAsync.h index a85a97635b0..cf8d5347b07 100644 --- a/cpp/include/Ice/OutgoingAsync.h +++ b/cpp/include/Ice/OutgoingAsync.h @@ -17,11 +17,6 @@ #include #include #include -#include - -#ifndef ICE_CPP11_MAPPING -# include -#endif #include @@ -53,11 +48,7 @@ class ICE_API OutgoingAsyncCompletionCallback // invocation observer. // class ICE_API OutgoingAsyncBase : public virtual OutgoingAsyncCompletionCallback, -#ifdef ICE_CPP11_MAPPING public std::enable_shared_from_this -#else - public Ice::AsyncResult -#endif { public: @@ -76,34 +67,6 @@ class ICE_API OutgoingAsyncBase : public virtual OutgoingAsyncCompletionCallback virtual void cancelable(const IceInternal::CancellationHandlerPtr&); void cancel(); -#ifndef ICE_CPP11_MAPPING - virtual Ice::Int getHash() const; - - virtual Ice::CommunicatorPtr getCommunicator() const; - virtual Ice::ConnectionPtr getConnection() const; - virtual Ice::ObjectPrx getProxy() const; - - virtual Ice::LocalObjectPtr getCookie() const; - virtual const std::string& getOperation() const; - - virtual bool isCompleted() const; - virtual void waitForCompleted(); - - virtual bool isSent() const; - virtual void waitForSent(); - - virtual bool sentSynchronously() const; - - virtual void throwLocalException() const; - - virtual bool _waitForResponse(); - virtual Ice::InputStream* _startReadParams(); - virtual void _endReadParams(); - virtual void _readEmptyParams(); - virtual void _readParamEncaps(const ::Ice::Byte*&, ::Ice::Int&); - virtual void _throwUserException(); -#endif - void attachRemoteObserver(const Ice::ConnectionInfoPtr& c, const Ice::EndpointPtr& endpt, Ice::Int requestId) { const Ice::Int size = static_cast(_os.b.size() - headerSize - 4); @@ -155,17 +118,11 @@ class ICE_API OutgoingAsyncBase : public virtual OutgoingAsyncCompletionCallback bool _doneInSent; unsigned char _state; -#ifdef ICE_CPP11_MAPPING std::mutex _m; using Lock = std::lock_guard; -#else - IceUtil::Monitor _m; - typedef IceUtil::Monitor::Lock Lock; - Ice::LocalObjectPtr _cookie; -#endif - IceInternal::UniquePtr _ex; - IceInternal::UniquePtr _cancellationException; + std::unique_ptr _ex; + std::unique_ptr _cancellationException; InvocationObserver _observer; ObserverHelperT _childObserver; @@ -177,10 +134,6 @@ class ICE_API OutgoingAsyncBase : public virtual OutgoingAsyncCompletionCallback static const unsigned char OK; static const unsigned char Sent; -#ifndef ICE_CPP11_MAPPING - static const unsigned char Done; - static const unsigned char EndCalled; -#endif }; // @@ -204,15 +157,10 @@ class ICE_API ProxyOutgoingAsyncBase : public OutgoingAsyncBase, void retry(); void abort(const Ice::Exception&); -#ifdef ICE_CPP11_MAPPING std::shared_ptr shared_from_this() { return std::static_pointer_cast(OutgoingAsyncBase::shared_from_this()); } -#else - virtual Ice::ObjectPrx getProxy() const; - virtual Ice::CommunicatorPtr getCommunicator() const; -#endif protected: @@ -255,11 +203,9 @@ class ICE_API OutgoingAsync : public ProxyOutgoingAsyncBase void abort(const Ice::Exception&); void invoke(const std::string&); -#ifdef ICE_CPP11_MAPPING void invoke(const std::string&, Ice::OperationMode, Ice::FormatType, const Ice::Context&, std::function); void throwUserException(); -#endif Ice::OutputStream* startWriteParams(Ice::FormatType format) { @@ -289,11 +235,7 @@ class ICE_API OutgoingAsync : public ProxyOutgoingAsyncBase protected: const Ice::EncodingVersion _encoding; - -#ifdef ICE_CPP11_MAPPING std::function _userException; -#endif - bool _synchronous; }; @@ -302,8 +244,6 @@ class ICE_API OutgoingAsync : public ProxyOutgoingAsyncBase namespace IceInternal { -#ifdef ICE_CPP11_MAPPING - class ICE_API LambdaInvoke : public virtual OutgoingAsyncCompletionCallback { public: @@ -629,240 +569,6 @@ class PromiseOutgoing : public OutgoingAsyncT, public PromiseInvo } }; -#else - -// -// Base class for all callbacks. -// -class ICE_API CallbackBase : public IceUtil::Shared -{ -public: - - virtual ~CallbackBase(); - - void checkCallback(bool, bool); - - virtual void completed(const ::Ice::AsyncResultPtr&) const = 0; - virtual IceUtil::Handle verify(const ::Ice::LocalObjectPtr&) = 0; - virtual void sent(const ::Ice::AsyncResultPtr&) const = 0; - virtual bool hasSentCallback() const = 0; -}; -typedef IceUtil::Handle CallbackBasePtr; - -// -// Base class for generic callbacks. -// -class ICE_API GenericCallbackBase : public virtual CallbackBase -{ -public: - - virtual ~GenericCallbackBase(); -}; - -// -// See comments in OutgoingAsync.cpp -// -extern ICE_API CallbackBasePtr dummyCallback; - -// -// Generic callback template that requires the caller to down-cast the -// proxy and the cookie that are obtained from the AsyncResult. -// -template -class AsyncCallback : public GenericCallbackBase -{ -public: - - typedef T callback_type; - - typedef void (T::*Callback)(const ::Ice::AsyncResultPtr&); - - AsyncCallback(const TPtr& instance, Callback cb, Callback sentcb = 0) : - _callback(instance), _completed(cb), _sent(sentcb) - { - checkCallback(instance != 0, cb != 0); - } - - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - (_callback.get()->*_completed)(result); - } - - virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr&) - { - return this; // Nothing to do, the cookie is not type-safe. - } - - virtual void sent(const ::Ice::AsyncResultPtr& result) const - { - if(_sent) - { - (_callback.get()->*_sent)(result); - } - } - - virtual bool hasSentCallback() const - { - return _sent != 0; - } - -private: - - TPtr _callback; - Callback _completed; - Callback _sent; -}; - -class CallbackCompletion : public virtual OutgoingAsyncCompletionCallback -{ -public: - - CallbackCompletion(const CallbackBasePtr& cb, const Ice::LocalObjectPtr& cookie) : _callback(cb) - { - if(!_callback) - { - throw IceUtil::IllegalArgumentException(__FILE__, __LINE__); - } - const_cast(_callback) = _callback->verify(cookie); - } - - virtual bool handleSent(bool, bool alreadySent) - { - return _callback && _callback->hasSentCallback() && !alreadySent; - } - - virtual bool handleException(const Ice::Exception&) - { - return _callback; - } - - virtual bool handleResponse(bool) - { - return _callback; - } - - virtual void handleInvokeSent(bool, OutgoingAsyncBase* outAsync) const - { - _callback->sent(outAsync); - } - - virtual void handleInvokeException(const Ice::Exception&, OutgoingAsyncBase* outAsync) const - { - _callback->completed(outAsync); - } - - virtual void handleInvokeResponse(bool, OutgoingAsyncBase* outAsync) const - { - _callback->completed(outAsync); - } - -private: - - const CallbackBasePtr _callback; -}; - -class CallbackOutgoing : public OutgoingAsync, public CallbackCompletion -{ -public: - - CallbackOutgoing(const Ice::ObjectPrx& proxy, - const std::string& operation, - const CallbackBasePtr& cb, - const Ice::LocalObjectPtr& cookie, - bool sync) : - OutgoingAsync(proxy, sync), CallbackCompletion(cb, cookie), _operation(operation) - { - _cookie = cookie; - } - - virtual const std::string& - getOperation() const - { - return _operation; - } - -private: - - const std::string& _operation; -}; - -#endif - -} - -#ifndef ICE_CPP11_MAPPING - -namespace Ice -{ - -typedef IceUtil::Handle< ::IceInternal::GenericCallbackBase> CallbackPtr; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The completion callback. - * @param sentcb The sent callback. - * @return A callback object that can be passed to an asynchronous invocation. - */ -template CallbackPtr -newCallback(const IceUtil::Handle& instance, - void (T::*cb)(const AsyncResultPtr&), - void (T::*sentcb)(const AsyncResultPtr&) = 0) -{ - return new ::IceInternal::AsyncCallback>(instance, cb, sentcb); } -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The completion callback. - * @param sentcb The sent callback. - * @return A callback object that can be passed to an asynchronous invocation. - */ -template CallbackPtr -newCallback(T* instance, - void (T::*cb)(const AsyncResultPtr&), - void (T::*sentcb)(const AsyncResultPtr&) = 0) -{ - return new ::IceInternal::AsyncCallback>(instance, cb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The completion callback. - * @param sentcb The sent callback. - * @return A callback object that can be passed to an asynchronous invocation. - */ -template CallbackPtr -newCallback(const Ice::SharedPtr& instance, - void (T::*cb)(const AsyncResultPtr&), - void (T::*sentcb)(const AsyncResultPtr&) = 0) -{ - return new ::IceInternal::AsyncCallback>(instance, cb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The completion callback. - * @param sentcb The sent callback. - * @return A callback object that can be passed to an asynchronous invocation. - */ -template CallbackPtr -newCallback(const std::shared_ptr& instance, - void (T::*cb)(const AsyncResultPtr&), - void (T::*sentcb)(const AsyncResultPtr&) = 0) -{ - return new ::IceInternal::AsyncCallback>(instance, cb, sentcb); -} - -} - -// -// Operation callbacks are specified in Proxy.h -// - -#endif - #endif diff --git a/cpp/include/Ice/OutgoingAsyncF.h b/cpp/include/Ice/OutgoingAsyncF.h index 86885db1214..f5ae73c9e33 100644 --- a/cpp/include/Ice/OutgoingAsyncF.h +++ b/cpp/include/Ice/OutgoingAsyncF.h @@ -5,8 +5,8 @@ #ifndef ICE_OUTGOING_ASYNC_F_H #define ICE_OUTGOING_ASYNC_F_H -#include -#include +#include +#include namespace IceInternal { @@ -16,24 +16,11 @@ class OutgoingAsync; class ProxyOutgoingAsyncBase; class CommunicatorFlushBatchAsync; -#ifdef ICE_CPP11_MAPPING using OutgoingAsyncBasePtr = ::std::shared_ptr; using OutgoingAsyncPtr = ::std::shared_ptr; using ProxyOutgoingAsyncBasePtr = ::std::shared_ptr; using CommunicatorFlushBatchAsyncPtr = ::std::shared_ptr; -#else -ICE_API IceUtil::Shared* upCast(OutgoingAsyncBase*); -typedef IceInternal::Handle OutgoingAsyncBasePtr; -ICE_API IceUtil::Shared* upCast(OutgoingAsync*); -typedef IceInternal::Handle OutgoingAsyncPtr; - -ICE_API IceUtil::Shared* upCast(ProxyOutgoingAsyncBase*); -typedef IceInternal::Handle ProxyOutgoingAsyncBasePtr; - -ICE_API IceUtil::Shared* upCast(CommunicatorFlushBatchAsync*); -typedef IceInternal::Handle CommunicatorFlushBatchAsyncPtr; -#endif } #endif diff --git a/cpp/include/Ice/OutputStream.h b/cpp/include/Ice/OutputStream.h index 3d6020c6643..985cc4dabe6 100644 --- a/cpp/include/Ice/OutputStream.h +++ b/cpp/include/Ice/OutputStream.h @@ -447,8 +447,6 @@ class ICE_API OutputStream : public IceInternal::Buffer } } -#ifdef ICE_CPP11_MAPPING - /** * Writes a list of mandatory data values. */ @@ -507,8 +505,6 @@ class ICE_API OutputStream : public IceInternal::Buffer writeAll(tags, ve...); } -#endif - /** * Writes the tag and format of an optional value. * @param tag The optional tag ID. @@ -744,7 +740,6 @@ class ICE_API OutputStream : public IceInternal::Buffer */ void write(const std::wstring* begin, const std::wstring* end); -#ifdef ICE_CPP11_MAPPING /** * Writes a proxy to the stream. * @param v The proxy to be written. @@ -760,22 +755,6 @@ class ICE_API OutputStream : public IceInternal::Buffer { writeProxy(::std::static_pointer_cast(v)); } -#else - /** - * Writes a proxy to the stream. - * @param v The proxy to be written. - */ - void write(const ObjectPrx& v); - - /** - * Writes a proxy to the stream. - * @param v The proxy to be written. - */ - template void write(const IceInternal::ProxyHandle& v) - { - write(ObjectPrx(upCast(v.get()))); - } -#endif /** * Writes a value instance to the stream. @@ -788,16 +767,6 @@ class ICE_API OutputStream : public IceInternal::Buffer _currentEncaps->encoder->write(v); } - /** - * Writes a value instance to the stream. - * @param v The value to be written. - */ - template::value>::type* = nullptr> - void write(const Ice::SharedPtr& v) - { - write(v.underlying()); - } - /** * Writes an enumerator to the stream. * @param v The enumerator to be written. diff --git a/cpp/include/Ice/Plugin.h b/cpp/include/Ice/Plugin.h index 16e9f80cb2d..b8a8a953aac 100644 --- a/cpp/include/Ice/Plugin.h +++ b/cpp/include/Ice/Plugin.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -29,8 +28,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -116,13 +113,6 @@ class ICE_CLASS(ICE_API) PluginManager } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace Ice { @@ -134,144 +124,5 @@ using PluginManagerPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Plugin; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Plugin*); -/// \endcond -typedef ::IceInternal::Handle< Plugin> PluginPtr; - -class PluginManager; -/// \cond INTERNAL -ICE_API LocalObject* upCast(PluginManager*); -/// \endcond -typedef ::IceInternal::Handle< PluginManager> PluginManagerPtr; - -} - -namespace Ice -{ - -/** - * A communicator plug-in. A plug-in generally adds a feature to a communicator, such as support for a protocol. - * The communicator loads its plug-ins in two stages: the first stage creates the plug-ins, and the second stage - * invokes {@link Plugin#initialize} on each one. - * \headerfile Ice/Ice.h - */ -class ICE_API Plugin : public virtual LocalObject -{ -public: - - typedef PluginPtr PointerType; - - virtual ~Plugin(); - Plugin() = default; - Plugin(const Plugin&) = default; - Plugin& operator=(const Plugin&) = default; - - /** - * Perform any necessary initialization steps. - */ - virtual void initialize() = 0; - - /** - * Called when the communicator is being destroyed. - */ - virtual void destroy() = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Plugin& lhs, const Plugin& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Plugin& lhs, const Plugin& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * Each communicator has a plug-in manager to administer the set of plug-ins. - * \headerfile Ice/Ice.h - */ -class ICE_API PluginManager : public virtual LocalObject -{ -public: - - typedef PluginManagerPtr PointerType; - - virtual ~PluginManager(); - PluginManager() = default; - PluginManager(const PluginManager&) = default; - PluginManager& operator=(const PluginManager&) = default; - - /** - * Initialize the configured plug-ins. The communicator automatically initializes the plug-ins by default, but an - * application may need to interact directly with a plug-in prior to initialization. In this case, the application - * must set Ice.InitPlugins=0 and then invoke {@link #initializePlugins} manually. The plug-ins are - * initialized in the order in which they are loaded. If a plug-in raises an exception during initialization, the - * communicator invokes destroy on the plug-ins that have already been initialized. - * @throws InitializationException Raised if the plug-ins have already been initialized. - */ - virtual void initializePlugins() = 0; - - /** - * Get a list of plugins installed. - * @return The names of the plugins installed. - * @see #getPlugin - */ - virtual StringSeq getPlugins() noexcept = 0; - - /** - * Obtain a plug-in by name. - * @param name The plug-in's name. - * @return The plug-in. - * @throws NotRegisteredException Raised if no plug-in is found with the given name. - */ - virtual PluginPtr getPlugin(const ::std::string& name) = 0; - - /** - * Install a new plug-in. - * @param name The plug-in's name. - * @param pi The plug-in. - * @throws AlreadyRegisteredException Raised if a plug-in already exists with the given name. - */ - virtual void addPlugin(const ::std::string& name, const PluginPtr& pi) = 0; - - /** - * Called when the communicator is being destroyed. - */ - virtual void destroy() noexcept = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const PluginManager& lhs, const PluginManager& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const PluginManager& lhs, const PluginManager& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/PluginF.h b/cpp/include/Ice/PluginF.h index 54262aece7f..ff907b65938 100644 --- a/cpp/include/Ice/PluginF.h +++ b/cpp/include/Ice/PluginF.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -27,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -55,33 +52,5 @@ using PluginManagerPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Plugin; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Plugin*); -/// \endcond -typedef ::IceInternal::Handle< Plugin> PluginPtr; - -class PluginManager; -/// \cond INTERNAL -ICE_API LocalObject* upCast(PluginManager*); -/// \endcond -typedef ::IceInternal::Handle< PluginManager> PluginManagerPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/Properties.h b/cpp/include/Ice/Properties.h index e77b08ead66..6e8e5616f48 100644 --- a/cpp/include/Ice/Properties.h +++ b/cpp/include/Ice/Properties.h @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -33,8 +32,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -171,12 +168,6 @@ class ICE_CLASS(ICE_API) Properties virtual ::std::shared_ptr<::Ice::Properties> clone() noexcept = 0; }; -} - -/// \cond STREAM -namespace Ice -{ - } /// \endcond @@ -189,185 +180,5 @@ using PropertiesPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceProxy -{ - -} - -namespace Ice -{ - -class Properties; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Properties*); -/// \endcond -typedef ::IceInternal::Handle< Properties> PropertiesPtr; - -} - -namespace IceProxy -{ - -} - -namespace Ice -{ - -/** - * A property set used to configure Ice and Ice applications. Properties are key/value pairs, with both keys and - * values being strings. By convention, property keys should have the form - * application-name[.category[.sub-category]].name. - * \headerfile Ice/Ice.h - */ -class ICE_API Properties : public virtual LocalObject -{ -public: - - typedef PropertiesPtr PointerType; - - virtual ~Properties(); - Properties() = default; - Properties(const Properties&) = default; - Properties& operator=(const Properties&) = default; - - /** - * Get a property by key. If the property is not set, an empty string is returned. - * @param key The property key. - * @return The property value. - * @see #setProperty - */ - virtual ::std::string getProperty(const ::std::string& key) noexcept = 0; - - /** - * Get a property by key. If the property is not set, the given default value is returned. - * @param key The property key. - * @param value The default value to use if the property does not exist. - * @return The property value or the default value. - * @see #setProperty - */ - virtual ::std::string getPropertyWithDefault(const ::std::string& key, const ::std::string& value) noexcept = 0; - - /** - * Get a property as an integer. If the property is not set, 0 is returned. - * @param key The property key. - * @return The property value interpreted as an integer. - * @see #setProperty - */ - virtual Int getPropertyAsInt(const ::std::string& key) noexcept = 0; - - /** - * Get a property as an integer. If the property is not set, the given default value is returned. - * @param key The property key. - * @param value The default value to use if the property does not exist. - * @return The property value interpreted as an integer, or the default value. - * @see #setProperty - */ - virtual Int getPropertyAsIntWithDefault(const ::std::string& key, Int value) noexcept = 0; - - /** - * Get a property as a list of strings. The strings must be separated by whitespace or comma. If the property is - * not set, an empty list is returned. The strings in the list can contain whitespace and commas if they are - * enclosed in single or double quotes. If quotes are mismatched, an empty list is returned. Within single quotes - * or double quotes, you can escape the quote in question with a backslash, e.g. O'Reilly can be written as - * O'Reilly, "O'Reilly" or 'O\'Reilly'. - * @param key The property key. - * @return The property value interpreted as a list of strings. - * @see #setProperty - */ - virtual StringSeq getPropertyAsList(const ::std::string& key) noexcept = 0; - - /** - * Get a property as a list of strings. The strings must be separated by whitespace or comma. If the property is - * not set, the default list is returned. The strings in the list can contain whitespace and commas if they are - * enclosed in single or double quotes. If quotes are mismatched, the default list is returned. Within single - * quotes or double quotes, you can escape the quote in question with a backslash, e.g. O'Reilly can be written as - * O'Reilly, "O'Reilly" or 'O\'Reilly'. - * @param key The property key. - * @param value The default value to use if the property is not set. - * @return The property value interpreted as list of strings, or the default value. - * @see #setProperty - */ - virtual StringSeq getPropertyAsListWithDefault(const ::std::string& key, const StringSeq& value) noexcept = 0; - - /** - * Get all properties whose keys begins with prefix. If prefix is an empty string, then all - * properties are returned. - * @param prefix The prefix to search for (empty string if none). - * @return The matching property set. - */ - virtual PropertyDict getPropertiesForPrefix(const ::std::string& prefix) noexcept = 0; - - /** - * Set a property. To unset a property, set it to the empty string. - * @param key The property key. - * @param value The property value. - * @see #getProperty - */ - virtual void setProperty(const ::std::string& key, const ::std::string& value) = 0; - - /** - * Get a sequence of command-line options that is equivalent to this property set. Each element of the returned - * sequence is a command-line option of the form --key=value. - * @return The command line options for this property set. - */ - virtual StringSeq getCommandLineOptions() noexcept = 0; - - /** - * Convert a sequence of command-line options into properties. All options that begin with - * --prefix. are converted into properties. If the prefix is empty, all options that begin with - * -- are converted to properties. - * @param prefix The property prefix, or an empty string to convert all options starting with --. - * @param options The command-line options. - * @return The command-line options that do not start with the specified prefix, in their original order. - */ - virtual StringSeq parseCommandLineOptions(const ::std::string& prefix, const StringSeq& options) = 0; - - /** - * Convert a sequence of command-line options into properties. All options that begin with one of the following - * prefixes are converted into properties: --Ice, --IceBox, --IceGrid, - * --IcePatch2, --IceSSL, --IceStorm, --Freeze, and --Glacier2. - * @param options The command-line options. - * @return The command-line options that do not start with one of the listed prefixes, in their original order. - */ - virtual StringSeq parseIceCommandLineOptions(const StringSeq& options) = 0; - - /** - * Load properties from a file. - * @param file The property file. - */ - virtual void load(const ::std::string& file) = 0; - - /** - * Create a copy of this property set. - * @return A copy of this property set. - */ - virtual PropertiesPtr clone() noexcept = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Properties& lhs, const Properties& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Properties& lhs, const Properties& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/Ice/PropertiesF.h b/cpp/include/Ice/PropertiesF.h index e439f5ed903..89b28385ea7 100644 --- a/cpp/include/Ice/PropertiesF.h +++ b/cpp/include/Ice/PropertiesF.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -28,8 +27,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace Ice { @@ -55,20 +52,5 @@ using PropertiesPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace Ice -{ - -class Properties; -/// \cond INTERNAL -ICE_API LocalObject* upCast(Properties*); -/// \endcond -typedef ::IceInternal::Handle< Properties> PropertiesPtr; - -} - -#endif - #include #endif diff --git a/cpp/include/Ice/Proxy.h b/cpp/include/Ice/Proxy.h index 83fea4ae13b..624c16cea2f 100644 --- a/cpp/include/Ice/Proxy.h +++ b/cpp/include/Ice/Proxy.h @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -77,8 +76,6 @@ typedef IceUtil::Handle ProxyGetConnectionPtr; } -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceInternal { @@ -1585,3476 +1582,4 @@ checkedCast(const ::std::shared_ptr& b, const std::string& f, const ::Ice::Co } -#else // C++98 mapping - -namespace Ice -{ - -class LocalException; -class OutputStream; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_isA. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_isA. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_isA_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_isA_Base> Callback_Object_ice_isAPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_ping. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ping. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_ping_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_ping_Base> Callback_Object_ice_pingPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_ids. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ids. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_ids_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_ids_Base> Callback_Object_ice_idsPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_id. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_id. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_id_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_id_Base> Callback_Object_ice_idPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_invoke. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_invoke. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_invoke_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_invoke_Base> Callback_Object_ice_invokePtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_flushBatchRequests_Base> Callback_Object_ice_flushBatchRequestsPtr; - -/** - * Base class for asynchronous callback wrapper classes used for calls to - * IceProxy::Ice::Object::begin_ice_getConnection. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_getConnection. - * \headerfile Ice/Ice.h - */ -class Callback_Object_ice_getConnection_Base : public virtual ::IceInternal::CallbackBase { }; -typedef ::IceUtil::Handle< Callback_Object_ice_getConnection_Base> Callback_Object_ice_getConnectionPtr; - -} - -namespace IceProxy { namespace Ice -{ - -/** - * Base class of all object proxies. - * \headerfile Ice/Ice.h - */ -class ICE_API Object : public ::IceUtil::Shared -{ -public: - - bool operator==(const Object&) const; - bool operator<(const Object&) const; - - /** - * Obtains the communicator that created this proxy. - * @return The communicator that created this proxy. - */ - ::Ice::CommunicatorPtr ice_getCommunicator() const; - - /** - * Obtains a stringified version of this proxy. - * @return A stringified proxy. - */ - ::std::string ice_toString() const; - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param context The context map for the invocation. - * @return True if the target object has the interface - * specified by id or derives from the interface specified by id. - */ - bool ice_isA(const ::std::string& typeId, const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return end_ice_isA(_iceI_begin_ice_isA(typeId, context, ::IceInternal::dummyCallback, 0, true)); - } - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param context The context map for the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId, - const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return _iceI_begin_ice_isA(typeId, context, ::IceInternal::dummyCallback, 0); - } - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_isA(typeId, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId, - const ::Ice::Context& context, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_isA(typeId, context, cb, cookie); - } - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId, - const ::Ice::Callback_Object_ice_isAPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_isA(typeId, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Tests whether this object supports a specific Slice interface. - * @param typeId The type ID of the Slice interface to test against. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId, - const ::Ice::Context& context, - const ::Ice::Callback_Object_ice_isAPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_isA(typeId, context, cb, cookie); - } - - /** - * Completes an invocation of begin_ice_isA. - * @param result The asynchronous result object for the invocation. - * @return True if the target object has the interface - * specified by id or derives from the interface specified by id. - */ - bool end_ice_isA(const ::Ice::AsyncResultPtr& result); - - /** - * Tests whether the target object of this proxy can be reached. - * @param context The context map for the invocation. - */ - void ice_ping(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - end_ice_ping(_iceI_begin_ice_ping(context, ::IceInternal::dummyCallback, 0, true)); - } - - /** - * Tests whether the target object of this proxy can be reached. - * @param context The context map for the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return _iceI_begin_ice_ping(context, ::IceInternal::dummyCallback, 0); - } - - /** - * Tests whether the target object of this proxy can be reached. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::CallbackPtr& cb, const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ping(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Tests whether the target object of this proxy can be reached. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context& context, const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ping(context, cb, cookie); - } - - /** - * Tests whether the target object of this proxy can be reached. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Callback_Object_ice_pingPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ping(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Tests whether the target object of this proxy can be reached. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context& context, const ::Ice::Callback_Object_ice_pingPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ping(context, cb, cookie); - } - - /** - * Completes an invocation of begin_ice_ping. - * @param result The asynchronous result object for the invocation. - */ - void end_ice_ping(const ::Ice::AsyncResultPtr& result); - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param context The context map for the invocation. - * @return The Slice type IDs of the interfaces supported by the target object, in alphabetical order. - */ - ::std::vector< ::std::string> ice_ids(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return end_ice_ids(_iceI_begin_ice_ids(context, ::IceInternal::dummyCallback, 0, true)); - } - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param context The context map for the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return _iceI_begin_ice_ids(context, ::IceInternal::dummyCallback, 0); - } - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ids(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context& context, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ids(context, cb, cookie); - } - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Callback_Object_ice_idsPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ids(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Returns the Slice type IDs of the interfaces supported by the target object of this proxy. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context& context, - const ::Ice::Callback_Object_ice_idsPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_ids(context, cb, cookie); - } - - /** - * Completes an invocation of begin_ice_ids. - * @param result The asynchronous result object for the invocation. - * @return The Slice type IDs of the interfaces supported by the target object, in alphabetical order. - */ - ::std::vector< ::std::string> end_ice_ids(const ::Ice::AsyncResultPtr& result); - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param context The context map for the invocation. - * @return The Slice type ID of the most-derived interface. - */ - ::std::string ice_id(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return end_ice_id(_iceI_begin_ice_id(context, ::IceInternal::dummyCallback, 0, true)); - } - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param context The context map for the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return _iceI_begin_ice_id(context, ::IceInternal::dummyCallback, 0); - } - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_id(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context& context, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_id(context, cb, cookie); - } - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Callback_Object_ice_idPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_id(::Ice::noExplicitContext, cb, cookie); - } - - /** - * Returns the Slice type ID of the most-derived interface supported by the target object of this proxy. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context& context, - const ::Ice::Callback_Object_ice_idPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_id(context, cb, cookie); - } - - /** - * Completes an invocation of begin_ice_id. - * @param result The asynchronous result object for the invocation. - * @return The Slice type ID of the most-derived interface. - */ - ::std::string end_ice_id(const ::Ice::AsyncResultPtr& result); - - /** - * Returns the Slice type ID associated with this type. - * @return The Slice type ID. - */ - static const ::std::string& ice_staticId() - { - return ::Ice::Object::ice_staticId(); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param outParams An encapsulation containing the encoded results. - * @param context The context map for the invocation. - * @return True if the operation completed successfully, in which case outParams contains - * the encoded out parameters. False if the operation raised a user exception, in which - * case outParams contains the encoded user exception. If the operation raises a run-time - * exception, it throws it directly. - */ - bool ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - ::std::vector< ::Ice::Byte>& outParams, - const ::Ice::Context& context = ::Ice::noExplicitContext); - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, - ::IceInternal::dummyCallback, 0); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - const ::Ice::Context& context) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, ::IceInternal::dummyCallback, 0); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - const ::Ice::Context& context, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - const ::Ice::Callback_Object_ice_invokePtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::vector< ::Ice::Byte>& inParams, - const ::Ice::Context& context, - const ::Ice::Callback_Object_ice_invokePtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param outParams An encapsulation containing the encoded results. - * @param result The asynchronous result object for the invocation. - * @return True if the operation completed successfully, in which case outParams contains - * the encoded out parameters. False if the operation raised a user exception, in which - * case outParams contains the encoded user exception. If the operation raises a run-time - * exception, it throws it directly. - */ - bool end_ice_invoke(::std::vector< ::Ice::Byte>& outParams, const ::Ice::AsyncResultPtr& result); - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param outParams An encapsulation containing the encoded results. - * @param context The context map for the invocation. - * @return True if the operation completed successfully, in which case outParams contains - * the encoded out parameters. False if the operation raised a user exception, in which - * case outParams contains the encoded user exception. If the operation raises a run-time - * exception, it throws it directly. - */ - bool ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - ::std::vector< ::Ice::Byte>& outParams, - const ::Ice::Context& context = ::Ice::noExplicitContext) - { - return end_ice_invoke(outParams, _iceI_begin_ice_invoke(operation, mode, inParams, context, - ::IceInternal::dummyCallback, 0, true)); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, - ::IceInternal::dummyCallback, 0); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - const ::Ice::Context& context, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, ::IceInternal::dummyCallback, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - const ::Ice::Context& context, - const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - const ::Ice::Callback_Object_ice_invokePtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie); - } - - /** - * Invokes an operation dynamically. - * @param operation The name of the operation to invoke. - * @param mode The operation mode (normal or idempotent). - * @param inParams An encapsulation containing the encoded in-parameters for the operation. - * @param context The context map for the invocation. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation, - ::Ice::OperationMode mode, - const ::std::pair& inParams, - const ::Ice::Context& context, - const ::Ice::Callback_Object_ice_invokePtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie); - } - - /// \cond INTERNAL - bool _iceI_end_ice_invoke(::std::pair&, const ::Ice::AsyncResultPtr&); - /// \endcond - - /** - * Obtains the identity embedded in this proxy. - * @return The identity of the target object. - */ - ::Ice::Identity ice_getIdentity() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the identity. - * @param id The identity for the new proxy. - * @return A proxy with the new identity. - */ - ::Ice::ObjectPrx ice_identity(const ::Ice::Identity& id) const; - - /** - * Obtains the per-proxy context for this proxy. - * @return The per-proxy context. - */ - ::Ice::Context ice_getContext() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the per-proxy context. - * @param context The context for the new proxy. - * @return A proxy with the new per-proxy context. - */ - ::Ice::ObjectPrx ice_context(const ::Ice::Context& context) const; - - /** - * Obtains the facet for this proxy. - * @return The facet for this proxy. If the proxy uses the default facet, the return value is the empty string. - */ - const ::std::string& ice_getFacet() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the facet. - * @param facet The facet for the new proxy. - * @return A proxy with the new facet. - */ - ::Ice::ObjectPrx ice_facet(const ::std::string& facet) const; - - /** - * Obtains the adapter ID for this proxy. - * @return The adapter ID. If the proxy does not have an adapter ID, the return value is the empty string. - */ - ::std::string ice_getAdapterId() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the adapter ID. - * @param id The adapter ID for the new proxy. - * @return A proxy with the new adapter ID. - */ - ::Ice::ObjectPrx ice_adapterId(const ::std::string& id) const; - - /** - * Obtains the endpoints used by this proxy. - * @return The endpoints used by this proxy. - */ - ::Ice::EndpointSeq ice_getEndpoints() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the endpoints. - * @param endpoints The endpoints for the new proxy. - * @return A proxy with the new endpoints. - */ - ::Ice::ObjectPrx ice_endpoints(const ::Ice::EndpointSeq& endpoints) const; - - /** - * Obtains the locator cache timeout of this proxy. - * @return The locator cache timeout value (in seconds). - */ - ::Ice::Int ice_getLocatorCacheTimeout() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the locator cache timeout. - * @param timeout The new locator cache timeout (in seconds). - * @return A proxy with the new timeout. - */ - ::Ice::ObjectPrx ice_locatorCacheTimeout(::Ice::Int timeout) const; - - /** - * Determines whether this proxy caches connections. - * @return True if this proxy caches connections, false otherwise. - */ - bool ice_isConnectionCached() const; - - /** - * Obtains a proxy that is identical to this proxy, except for connection caching. - * @param b True if the new proxy should cache connections, false otherwise. - * @return A proxy with the specified caching policy. - */ - ::Ice::ObjectPrx ice_connectionCached(bool b) const; - - /** - * Obtains the endpoint selection policy for this proxy (randomly or ordered). - * @return The endpoint selection policy. - */ - ::Ice::EndpointSelectionType ice_getEndpointSelection() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the endpoint selection policy. - * @param type The new endpoint selection policy. - * @return A proxy with the specified endpoint selection policy. - */ - ::Ice::ObjectPrx ice_endpointSelection(::Ice::EndpointSelectionType type) const; - - /** - * Determines whether this proxy uses only secure endpoints. - * @return True if this proxy communicates only via secure endpoints, false otherwise. - */ - bool ice_isSecure() const; - - /** - * Obtains a proxy that is identical to this proxy, except for how it selects endpoints. - * @param b If true, only endpoints that use a secure transport are used by the new proxy. - * If false, the returned proxy uses both secure and insecure endpoints. - * @return A proxy with the specified security policy. - */ - ::Ice::ObjectPrx ice_secure(bool b) const; - - /** - * Obtains the encoding version used to marshal request parameters. - * @return The encoding version. - */ - ::Ice::EncodingVersion ice_getEncodingVersion() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the encoding used to marshal - * parameters. - * @param version The encoding version to use to marshal request parameters. - * @return A proxy with the specified encoding version. - */ - ::Ice::ObjectPrx ice_encodingVersion(const ::Ice::EncodingVersion& version) const; - - /** - * Determines whether this proxy prefers secure endpoints. - * @return True if the proxy always attempts to invoke via secure endpoints before it - * attempts to use insecure endpoints, false otherwise. - */ - bool ice_isPreferSecure() const; - - /** - * Obtains a proxy that is identical to this proxy, except for its endpoint selection policy. - * @param b If true, the new proxy will use secure endpoints for invocations and only use - * insecure endpoints if an invocation cannot be made via secure endpoints. If false, the - * proxy prefers insecure endpoints to secure ones. - * @return A proxy with the specified selection policy. - */ - ::Ice::ObjectPrx ice_preferSecure(bool b) const; - - /** - * Obtains the router for this proxy. - * @return The router for the proxy. If no router is configured for the proxy, the return value - * is nil. - */ - ::Ice::RouterPrx ice_getRouter() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the router. - * @param router The router for the new proxy. - * @return A proxy with the specified router. - */ - ::Ice::ObjectPrx ice_router(const ::Ice::RouterPrx& router) const; - - /** - * Obtains the locator for this proxy. - * @return The locator for this proxy. If no locator is configured, the return value is nil. - */ - ::Ice::LocatorPrx ice_getLocator() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the locator. - * @param locator The locator for the new proxy. - * @return A proxy with the specified locator. - */ - ::Ice::ObjectPrx ice_locator(const ::Ice::LocatorPrx& locator) const; - - /** - * Determines whether this proxy uses collocation optimization. - * @return True if the proxy uses collocation optimization, false otherwise. - */ - bool ice_isCollocationOptimized() const; - - /** - * Obtains a proxy that is identical to this proxy, except for collocation optimization. - * @param b True if the new proxy enables collocation optimization, false otherwise. - * @return A proxy with the specified collocation optimization. - */ - ::Ice::ObjectPrx ice_collocationOptimized(bool b) const; - - /** - * Obtains the invocation timeout of this proxy. - * @return The invocation timeout value (in milliseconds). - */ - ::Ice::Int ice_getInvocationTimeout() const; - - /** - * Obtains a proxy that is identical to this proxy, except for the invocation timeout. - * @param timeout The new invocation timeout (in milliseconds). - * @return A proxy with the new timeout. - */ - ::Ice::ObjectPrx ice_invocationTimeout(::Ice::Int timeout) const; - - /** - * Obtains a proxy that is identical to this proxy, but uses twoway invocations. - * @return A proxy that uses twoway invocations. - */ - ::Ice::ObjectPrx ice_twoway() const; - - /** - * Determines whether this proxy uses twoway invocations. - * @return True if this proxy uses twoway invocations, false otherwise. - */ - bool ice_isTwoway() const; - - /** - * Obtains a proxy that is identical to this proxy, but uses oneway invocations. - * @return A proxy that uses oneway invocations. - */ - ::Ice::ObjectPrx ice_oneway() const; - - /** - * Determines whether this proxy uses oneway invocations. - * @return True if this proxy uses oneway invocations, false otherwise. - */ - bool ice_isOneway() const; - - /** - * Obtains a proxy that is identical to this proxy, but uses batch oneway invocations. - * @return A proxy that uses batch oneway invocations. - */ - ::Ice::ObjectPrx ice_batchOneway() const; - - /** - * Determines whether this proxy uses batch oneway invocations. - * @return True if this proxy uses batch oneway invocations, false otherwise. - */ - bool ice_isBatchOneway() const; - - /** - * Obtains a proxy that is identical to this proxy, but uses datagram invocations. - * @return A proxy that uses datagram invocations. - */ - ::Ice::ObjectPrx ice_datagram() const; - - /** - * Determines whether this proxy uses datagram invocations. - * @return True if this proxy uses datagram invocations, false otherwise. - */ - bool ice_isDatagram() const; - - /** - * Obtains a proxy that is identical to this proxy, but uses batch datagram invocations. - * @return A proxy that uses batch datagram invocations. - */ - ::Ice::ObjectPrx ice_batchDatagram() const; - - /** - * Determines whether this proxy uses batch datagram invocations. - * @return True if this proxy uses batch datagram invocations, false otherwise. - */ - bool ice_isBatchDatagram() const; - - /** - * Obtains a proxy that is identical to this proxy, except for its compression setting which - * overrides the compression setting from the proxy endpoints. - * @param b True enables compression for the new proxy, false disables compression. - * @return A proxy with the specified compression override setting. - */ - ::Ice::ObjectPrx ice_compress(bool b) const; - - /** - * Obtains the compression override setting of this proxy. - * @return The compression override setting. If nullopt is returned, no override is set. Otherwise, true - * if compression is enabled, false otherwise. - */ - ::IceUtil::Optional ice_getCompress() const; - - /** - * Obtains a proxy that is identical to this proxy, except for its connection timeout setting - * which overrides the timeot setting from the proxy endpoints. - * @param timeout The connection timeout override for the proxy (in milliseconds). - * @return A proxy with the specified timeout override. - */ - ::Ice::ObjectPrx ice_timeout(int timeout) const; - - /** - * Obtains the timeout override of this proxy. - * @return The timeout override. If nullopt is returned, no override is set. Otherwise, returns - * the timeout override value. - */ - ::IceUtil::Optional ice_getTimeout() const; - - /** - * Obtains a proxy that is identical to this proxy, except for its connection ID. - * @param id The connection ID for the new proxy. An empty string removes the - * connection ID. - * @return A proxy with the specified connection ID. - */ - ::Ice::ObjectPrx ice_connectionId(const ::std::string& id) const; - - /** - * Obtains the connection ID of this proxy. - * @return The connection ID. - */ - ::std::string ice_getConnectionId() const; - - /** - * Obtains a proxy that is identical to this proxy, except it's a fixed proxy bound - * the given connection. - * @param connection The fixed proxy connection. - * @return A fixed proxy bound to the given connection. - */ - ::Ice::ObjectPrx ice_fixed(const ::Ice::ConnectionPtr& connection) const; - - /** - * Determines whether this proxy is a fixed proxy. - * @return True if this proxy is a fixed proxy, false otherwise. - */ - bool ice_isFixed() const; - - /** - * Obtains the Connection for this proxy. If the proxy does not yet have an established connection, - * it first attempts to create a connection. - * @return The connection for this proxy. - */ - ::Ice::ConnectionPtr ice_getConnection() - { - return end_ice_getConnection(begin_ice_getConnection()); - } - - /** - * Obtains the Connection for this proxy. If the proxy does not yet have an established connection, - * it first attempts to create a connection. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_getConnection() - { - return _iceI_begin_ice_getConnection(::IceInternal::dummyCallback, 0); - } - - /** - * Obtains the Connection for this proxy. If the proxy does not yet have an established connection, - * it first attempts to create a connection. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_getConnection(const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_getConnection(cb, cookie); - } - - /** - * Obtains the Connection for this proxy. If the proxy does not yet have an established connection, - * it first attempts to create a connection. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_getConnection(const ::Ice::Callback_Object_ice_getConnectionPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_getConnection(cb, cookie); - } - - /** - * Completes an invocation of begin_ice_getConnection. - * @param result The asynchronous result object for the invocation. - * @return The connection for this proxy. - */ - ::Ice::ConnectionPtr end_ice_getConnection(const ::Ice::AsyncResultPtr& result); - - /** - * Returns the cached connection for this proxy. If the proxy does not yet have an established - * connection, it does not attempt to create a connection. - * - * @return The cached connection for this proxy, or nil if the proxy does not have - * an established connection. - */ - ::Ice::ConnectionPtr ice_getCachedConnection() const; - - /** - * Flushes any pending batched requests for this proxy. The call blocks until the flush is complete. - */ - void ice_flushBatchRequests() - { - return end_ice_flushBatchRequests(begin_ice_flushBatchRequests()); - } - - /** - * Flushes asynchronously any pending batched requests for this proxy. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_flushBatchRequests() - { - return _iceI_begin_ice_flushBatchRequests(::IceInternal::dummyCallback, 0); - } - - /** - * Flushes asynchronously any pending batched requests for this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_flushBatchRequests(const ::Ice::CallbackPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_flushBatchRequests(cb, cookie); - } - - /** - * Flushes asynchronously any pending batched requests for this proxy. - * @param cb Asynchronous callback object. - * @param cookie User-defined data to associate with the invocation. - * @return The asynchronous result object for the invocation. - */ - ::Ice::AsyncResultPtr begin_ice_flushBatchRequests(const ::Ice::Callback_Object_ice_flushBatchRequestsPtr& cb, - const ::Ice::LocalObjectPtr& cookie = 0) - { - return _iceI_begin_ice_flushBatchRequests(cb, cookie); - } - - /** - * Completes an invocation of begin_ice_flushBatchRequests. - * @param result The asynchronous result object for the invocation. - */ - void end_ice_flushBatchRequests(const ::Ice::AsyncResultPtr& result); - - /// \cond INTERNAL - const ::IceInternal::ReferencePtr& _getReference() const { return _reference; } - - ::Ice::Int _hash() const; - - void _copyFrom(const ::Ice::ObjectPrx&); - - int _handleException(const ::Ice::Exception&, const ::IceInternal::RequestHandlerPtr&, ::Ice::OperationMode, - bool, int&); - - void _checkTwowayOnly(const ::std::string&, bool) const; - - void _end(const ::Ice::AsyncResultPtr&, const std::string&) const; - - ::IceInternal::RequestHandlerPtr _getRequestHandler(); - ::IceInternal::BatchRequestQueuePtr _getBatchRequestQueue(); - ::IceInternal::RequestHandlerPtr _setRequestHandler(const ::IceInternal::RequestHandlerPtr&); - void _updateRequestHandler(const ::IceInternal::RequestHandlerPtr&, const ::IceInternal::RequestHandlerPtr&); - - void _write(::Ice::OutputStream&) const; - /// \endcond - -protected: - - /// \cond INTERNAL - virtual Object* _newInstance() const; - /// \endcond - -private: - - ::Ice::AsyncResultPtr _iceI_begin_ice_isA(const ::std::string&, - const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_ping(const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_ids(const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_id(const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_invoke(const ::std::string&, - ::Ice::OperationMode, - const ::std::vector< ::Ice::Byte>&, - const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_invoke(const ::std::string&, - ::Ice::OperationMode, - const ::std::pair&, - const ::Ice::Context&, - const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&, - bool = false); - - ::Ice::AsyncResultPtr _iceI_begin_ice_getConnection(const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&); - - ::Ice::AsyncResultPtr _iceI_begin_ice_flushBatchRequests(const ::IceInternal::CallbackBasePtr&, - const ::Ice::LocalObjectPtr&); - - void setup(const ::IceInternal::ReferencePtr&); - friend class ::IceInternal::ProxyFactory; - - ::IceInternal::ReferencePtr _reference; - ::IceInternal::RequestHandlerPtr _requestHandler; - ::IceInternal::BatchRequestQueuePtr _batchRequestQueue; - IceUtil::Mutex _mutex; -}; - -} } - -ICE_API ::std::ostream& operator<<(::std::ostream&, const ::IceProxy::Ice::Object&); - -namespace Ice -{ - -/** - * Helper template that supplies proxy factory functions. - * \headerfile Ice/Ice.h - */ -template -class Proxy : public virtual Base -{ -public: - - /** - * Obtains a proxy that is identical to this proxy, except for the per-proxy context. - * @param context The context for the new proxy. - * @return A proxy with the new per-proxy context. - */ - IceInternal::ProxyHandle ice_context(const ::Ice::Context& context) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_context(context).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the adapter ID. - * @param id The adapter ID for the new proxy. - * @return A proxy with the new adapter ID. - */ - IceInternal::ProxyHandle ice_adapterId(const ::std::string& id) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_adapterId(id).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the endpoints. - * @param endpoints The endpoints for the new proxy. - * @return A proxy with the new endpoints. - */ - IceInternal::ProxyHandle ice_endpoints(const ::Ice::EndpointSeq& endpoints) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_endpoints(endpoints).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the locator cache timeout. - * @param timeout The new locator cache timeout (in seconds). - * @return A proxy with the new timeout. - */ - IceInternal::ProxyHandle ice_locatorCacheTimeout(int timeout) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_locatorCacheTimeout(timeout).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for connection caching. - * @param b True if the new proxy should cache connections, false otherwise. - * @return A proxy with the specified caching policy. - */ - IceInternal::ProxyHandle ice_connectionCached(bool b) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_connectionCached(b).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the endpoint selection policy. - * @param type The new endpoint selection policy. - * @return A proxy with the specified endpoint selection policy. - */ - IceInternal::ProxyHandle ice_endpointSelection(::Ice::EndpointSelectionType type) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_endpointSelection(type).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for how it selects endpoints. - * @param b If true, only endpoints that use a secure transport are used by the new proxy. - * If false, the returned proxy uses both secure and insecure endpoints. - * @return A proxy with the specified security policy. - */ - IceInternal::ProxyHandle ice_secure(bool b) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_secure(b).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for its endpoint selection policy. - * @param b If true, the new proxy will use secure endpoints for invocations and only use - * insecure endpoints if an invocation cannot be made via secure endpoints. If false, the - * proxy prefers insecure endpoints to secure ones. - * @return A proxy with the specified selection policy. - */ - IceInternal::ProxyHandle ice_preferSecure(bool b) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_preferSecure(b).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the router. - * @param router The router for the new proxy. - * @return A proxy with the specified router. - */ - IceInternal::ProxyHandle ice_router(const ::Ice::RouterPrx& router) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_router(router).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the locator. - * @param locator The locator for the new proxy. - * @return A proxy with the specified locator. - */ - IceInternal::ProxyHandle ice_locator(const ::Ice::LocatorPrx& locator) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_locator(locator).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for collocation optimization. - * @param b True if the new proxy enables collocation optimization, false otherwise. - * @return A proxy with the specified collocation optimization. - */ - IceInternal::ProxyHandle ice_collocationOptimized(bool b) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_collocationOptimized(b).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the invocation timeout. - * @param timeout The new invocation timeout (in milliseconds). - * @return A proxy with the new timeout. - */ - IceInternal::ProxyHandle ice_invocationTimeout(int timeout) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_invocationTimeout(timeout).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, but uses twoway invocations. - * @return A proxy that uses twoway invocations. - */ - IceInternal::ProxyHandle ice_twoway() const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_twoway().get()); - } - - /** - * Obtains a proxy that is identical to this proxy, but uses oneway invocations. - * @return A proxy that uses oneway invocations. - */ - IceInternal::ProxyHandle ice_oneway() const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_oneway().get()); - } - - /** - * Obtains a proxy that is identical to this proxy, but uses batch oneway invocations. - * @return A proxy that uses batch oneway invocations. - */ - IceInternal::ProxyHandle ice_batchOneway() const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_batchOneway().get()); - } - - /** - * Obtains a proxy that is identical to this proxy, but uses datagram invocations. - * @return A proxy that uses datagram invocations. - */ - IceInternal::ProxyHandle ice_datagram() const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_datagram().get()); - } - - /** - * Obtains a proxy that is identical to this proxy, but uses batch datagram invocations. - * @return A proxy that uses batch datagram invocations. - */ - IceInternal::ProxyHandle ice_batchDatagram() const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_batchDatagram().get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for its compression setting which - * overrides the compression setting from the proxy endpoints. - * @param b True enables compression for the new proxy, false disables compression. - * @return A proxy with the specified compression override setting. - */ - IceInternal::ProxyHandle ice_compress(bool b) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_compress(b).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for its connection timeout setting - * which overrides the timeot setting from the proxy endpoints. - * @param timeout The connection timeout override for the proxy (in milliseconds). - * @return A proxy with the specified timeout override. - */ - IceInternal::ProxyHandle ice_timeout(int timeout) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_timeout(timeout).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for its connection ID. - * @param id The connection ID for the new proxy. An empty string removes the - * connection ID. - * @return A proxy with the specified connection ID. - */ - IceInternal::ProxyHandle ice_connectionId(const ::std::string& id) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_connectionId(id).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except it's a fixed proxy bound - * the given connection. - * @param connection The fixed proxy connection. - * @return A fixed proxy bound to the given connection. - */ - IceInternal::ProxyHandle ice_fixed(const ::Ice::ConnectionPtr& connection) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_fixed(connection).get()); - } - - /** - * Obtains a proxy that is identical to this proxy, except for the encoding used to marshal - * parameters. - * @param version The encoding version to use to marshal request parameters. - * @return A proxy with the specified encoding version. - */ - IceInternal::ProxyHandle ice_encodingVersion(const ::Ice::EncodingVersion& version) const - { - return dynamic_cast(::IceProxy::Ice::Object::ice_encodingVersion(version).get()); - } - -protected: - - /// \cond INTERNAL - virtual ::IceProxy::Ice::Object* _newInstance() const = 0; - /// \endcond -}; - -/** - * Compares the object identities of two proxies. - * @param lhs A proxy. - * @param rhs A proxy. - * @return True if the identity in lhs compares less than the identity in rhs, false otherwise. - */ -ICE_API bool proxyIdentityLess(const ObjectPrx& lhs, const ObjectPrx& rhs); - -/** - * Compares the object identities of two proxies. - * @param lhs A proxy. - * @param rhs A proxy. - * @return True if the identity in lhs compares equal to the identity in rhs, false otherwise. - */ -ICE_API bool proxyIdentityEqual(const ObjectPrx& lhs, const ObjectPrx& rhs); - -/** - * Compares the object identities and facets of two proxies. - * @param lhs A proxy. - * @param rhs A proxy. - * @return True if the identity and facet in lhs compare less than the identity and facet - * in rhs, false otherwise. - */ -ICE_API bool proxyIdentityAndFacetLess(const ObjectPrx& lhs, const ObjectPrx& rhs); - -/** - * Compares the object identities and facets of two proxies. - * @param lhs A proxy. - * @param rhs A proxy. - * @return True if the identity and facet in lhs compare equal to the identity and facet - * in rhs, false otherwise. - */ -ICE_API bool proxyIdentityAndFacetEqual(const ObjectPrx& lhs, const ObjectPrx& rhs); - -/** - * A functor that compares the object identities of two proxies. Evaluates true if the identity in lhs - * compares less than the identity in rhs, false otherwise. - * \headerfile Ice/Ice.h - */ -struct ProxyIdentityLess -{ - bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const - { - return proxyIdentityLess(lhs, rhs); - } -}; - -/** - * A functor that compares the object identities of two proxies. Evaluates true if the identity in lhs - * compares equal to the identity in rhs, false otherwise. - * \headerfile Ice/Ice.h - */ -struct ProxyIdentityEqual -{ - bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const - { - return proxyIdentityEqual(lhs, rhs); - } -}; - -/** - * A functor that compares the object identities and facets of two proxies. Evaluates true if the identity - * and facet in lhs compare less than the identity and facet in rhs, false otherwise. - * \headerfile Ice/Ice.h - */ -struct ProxyIdentityAndFacetLess -{ - bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const - { - return proxyIdentityAndFacetLess(lhs, rhs); - } -}; - -/** - * A functor that compares the object identities and facets of two proxies. Evaluates true if the identity - * and facet in lhs compare equal to the identity and facet in rhs, false otherwise. - * \headerfile Ice/Ice.h - */ -struct ProxyIdentityAndFacetEqual -{ - bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const - { - return proxyIdentityAndFacetEqual(lhs, rhs); - } -}; - -} - -namespace IceInternal -{ - -// -// Inline comparison functions for proxies -// -template -inline bool operator==(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - ::IceProxy::Ice::Object* l = lhs._upCast(); - ::IceProxy::Ice::Object* r = rhs._upCast(); - if(l && r) - { - return *l == *r; - } - else - { - return !l && !r; - } -} - -template -inline bool operator!=(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - return !operator==(lhs, rhs); -} - -template -inline bool operator<(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - ::IceProxy::Ice::Object* l = lhs._upCast(); - ::IceProxy::Ice::Object* r = rhs._upCast(); - if(l && r) - { - return *l < *r; - } - else - { - return !l && r; - } -} - -template -inline bool operator<=(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - return lhs < rhs || lhs == rhs; -} - -template -inline bool operator>(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - return !(lhs < rhs || lhs == rhs); -} - -template -inline bool operator>=(const ProxyHandle& lhs, const ProxyHandle& rhs) -{ - return !(lhs < rhs); -} - -// -// checkedCast and uncheckedCast functions without facet: -// -template P -checkedCastImpl(const ::Ice::ObjectPrx& b, const ::Ice::Context& context) -{ - P d = 0; - if(b.get()) - { - typedef typename P::element_type T; - - if(b->ice_isA(T::ice_staticId(), context)) - { - d = new T; - d->_copyFrom(b); - } - } - return d; -} - -template P -uncheckedCastImpl(const ::Ice::ObjectPrx& b) -{ - P d = 0; - if(b) - { - typedef typename P::element_type T; - - d = dynamic_cast(b.get()); - if(!d) - { - d = new T; - d->_copyFrom(b); - } - } - return d; -} - -// -// checkedCast and uncheckedCast with facet: -// - -// -// Helper with type ID. -// -ICE_API ::Ice::ObjectPrx checkedCastImpl(const ::Ice::ObjectPrx&, const std::string&, const std::string&, - const ::Ice::Context&); - -// -// Specializations for P = ::Ice::ObjectPrx -// We have to use inline functions for broken compilers such as VC7. -// - -template<> inline ::Ice::ObjectPrx -checkedCastImpl< ::Ice::ObjectPrx>(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context) -{ - return checkedCastImpl(b, f, "::Ice::Object", context); -} - -template<> inline ::Ice::ObjectPrx -uncheckedCastImpl< ::Ice::ObjectPrx>(const ::Ice::ObjectPrx& b, const std::string& f) -{ - ::Ice::ObjectPrx d = 0; - if(b) - { - d = b->ice_facet(f); - } - return d; -} - -template P -checkedCastImpl(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context) -{ - P d = 0; - - typedef typename P::element_type T; - ::Ice::ObjectPrx bb = checkedCastImpl(b, f, T::ice_staticId(), context); - - if(bb) - { - d = new T; - d->_copyFrom(bb); - } - return d; -} - -template P -uncheckedCastImpl(const ::Ice::ObjectPrx& b, const std::string& f) -{ - P d = 0; - if(b) - { - typedef typename P::element_type T; - - ::Ice::ObjectPrx bb = b->ice_facet(f); - d = new T; - d->_copyFrom(bb); - } - return d; -} -} - -// -// checkedCast and uncheckedCast functions provided in the Ice namespace -// -namespace Ice -{ - -/** - * Downcasts a proxy after confirming the target object's type via a remote invocation. - * @param b The target proxy. - * @param context The context map for the invocation. - * @return A proxy with the requested type, or nil if the target proxy is nil or the target - * object does not support the requested type. - */ -template inline P -checkedCast(const ::IceInternal::ProxyHandle& b, const ::Ice::Context& context = ::Ice::noExplicitContext) -{ - Y* tag = 0; - return ::IceInternal::checkedCastHelper(b, tag, context); -} - -/** - * Downcasts a proxy without confirming the target object's type via a remote invocation. - * @param b The target proxy. - * @return A proxy with the requested type. - */ -template inline P -uncheckedCast(const ::IceInternal::ProxyHandle& b) -{ - Y* tag = 0; - return ::IceInternal::uncheckedCastHelper(b, tag); -} - -/** - * Downcasts a proxy after confirming the target object's type via a remote invocation. - * @param b The target proxy. - * @param f A facet name. - * @param context The context map for the invocation. - * @return A proxy with the requested type and facet, or nil if the target proxy is nil or the target - * object does not support the requested type. - */ -template inline P -checkedCast(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context = ::Ice::noExplicitContext) -{ - return ::IceInternal::checkedCastImpl

(b, f, context); -} - -/** - * Downcasts a proxy without confirming the target object's type via a remote invocation. - * @param b The target proxy. - * @param f A facet name. - * @return A proxy with the requested type and facet. - */ -template inline P -uncheckedCast(const ::Ice::ObjectPrx& b, const std::string& f) -{ - return ::IceInternal::uncheckedCastImpl

(b, f); -} - -} - -namespace IceInternal -{ - -// -// Base template for operation callbacks. -// -template -class CallbackNC : public virtual CallbackBase -{ -public: - - typedef T callback_type; - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC(const TPtr& instance, Exception excb, Sent sentcb) : _callback(instance), _exception(excb), _sent(sentcb) - { - } - - virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr& cookie) - { - if(cookie != 0) // Makes sure begin_ was called without a cookie - { - throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "cookie specified for callback without cookie"); - } - return this; - } - - virtual void sent(const ::Ice::AsyncResultPtr& result) const - { - if(_sent) - { - (_callback.get()->*_sent)(result->sentSynchronously()); - } - } - - virtual bool hasSentCallback() const - { - return _sent != 0; - } - -protected: - - void exception(const ::Ice::AsyncResultPtr&, const ::Ice::Exception& ex) const - { - if(_exception) - { - (_callback.get()->*_exception)(ex); - } - } - - TPtr _callback; - -private: - - Exception _exception; - Sent _sent; -}; - -template -class Callback : public virtual CallbackBase -{ -public: - - typedef T callback_type; - typedef CT cookie_type; - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - - Callback(const TPtr& instance, Exception excb, Sent sentcb) : _callback(instance), _exception(excb), _sent(sentcb) - { - } - - virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr& cookie) - { - if(cookie && !CT::dynamicCast(cookie)) - { - throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "unexpected cookie type"); - } - return this; - } - - virtual void sent(const ::Ice::AsyncResultPtr& result) const - { - if(_sent) - { - (_callback.get()->*_sent)(result->sentSynchronously(), CT::dynamicCast(result->getCookie())); - } - } - - virtual bool hasSentCallback() const - { - return _sent != 0; - } - -protected: - - void exception(const ::Ice::AsyncResultPtr& result, const ::Ice::Exception& ex) const - { - if(_exception) - { - (_callback.get()->*_exception)(ex, CT::dynamicCast(result->getCookie())); - } - } - - TPtr _callback; - -private: - - Exception _exception; - Sent _sent; -}; - -// -// Base class for twoway operation callbacks. -// -template -class TwowayCallbackNC : public CallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : CallbackNC(instance, excb, sentcb) - { - CallbackBase::checkCallback(instance, cb || excb != 0); - } -}; - -template -class TwowayCallback : public Callback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - - TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : Callback(instance, excb, sentcb) - { - CallbackBase::checkCallback(instance, cb || excb != 0); - } -}; - -// -// Base template class for oneway operations callbacks. -// -template -class OnewayCallbackNC : public CallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(); - - OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - CallbackNC(instance, excb, sentcb), _response(cb) - { - CallbackBase::checkCallback(instance, cb != 0 || excb != 0); - } - - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - try - { - result->getProxy()->_end(result, result->getOperation()); - } - catch(const ::Ice::Exception& ex) - { - CallbackNC::exception(result, ex); - return; - } - if(_response) - { - (CallbackNC::_callback.get()->*_response)(); - } - } - -private: - - Response _response; -}; - -template -class OnewayCallback : public Callback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(const CT&); - - OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - Callback(instance, excb, sentcb), _response(cb) - { - CallbackBase::checkCallback(instance, cb != 0 || excb != 0); - } - - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - try - { - result->getProxy()->_end(result, result->getOperation()); - } - catch(const ::Ice::Exception& ex) - { - Callback::exception(result, ex); - return; - } - if(_response) - { - (Callback::_callback.get()->*_response)(CT::dynamicCast(result->getCookie())); - } - } - -private: - - Response _response; -}; - -} - -namespace Ice -{ - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_isA. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_isA. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_isA : public Callback_Object_ice_isA_Base, public ::IceInternal::TwowayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(bool); - - CallbackNC_Object_ice_isA(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallbackNC(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - bool ret; - try - { - ret = result->getProxy()->end_ice_isA(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::CallbackNC::_callback.get()->*_response)(ret); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_isA. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_isA. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_isA : public Callback_Object_ice_isA_Base, public ::IceInternal::TwowayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(bool, const CT&); - - Callback_Object_ice_isA(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallback(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - bool ret; - try - { - ret = result->getProxy()->end_ice_isA(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::Callback::_callback.get()->*_response)(ret, - CT::dynamicCast(result->getCookie())); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_ping. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ping. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_ping : public Callback_Object_ice_ping_Base, public ::IceInternal::OnewayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(); - - CallbackNC_Object_ice_ping(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::OnewayCallbackNC(instance, cb, excb, sentcb) - { - } -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_ping. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ping. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_ping : public Callback_Object_ice_ping_Base, public ::IceInternal::OnewayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(const CT&); - - Callback_Object_ice_ping(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::OnewayCallback(instance, cb, excb, sentcb) - { - } -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_ids. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ids. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_ids : public Callback_Object_ice_ids_Base, public ::IceInternal::TwowayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(const ::std::vector< ::std::string>&); - - CallbackNC_Object_ice_ids(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallbackNC(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::std::vector< ::std::string> ret; - try - { - ret = result->getProxy()->end_ice_ids(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::CallbackNC::_callback.get()->*_response)(ret); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_ids. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_ids. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_ids : public Callback_Object_ice_ids_Base, public ::IceInternal::TwowayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(const ::std::vector< ::std::string>&, const CT&); - - Callback_Object_ice_ids(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallback(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::std::vector< ::std::string> ret; - try - { - ret = result->getProxy()->end_ice_ids(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::Callback::_callback.get()->*_response)(ret, - CT::dynamicCast(result->getCookie())); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_id. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_id. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_id : public Callback_Object_ice_id_Base, public ::IceInternal::TwowayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(const ::std::string&); - - CallbackNC_Object_ice_id(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallbackNC(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::std::string ret; - try - { - ret = result->getProxy()->end_ice_id(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::CallbackNC::_callback.get()->*_response)(ret); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_id. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_id. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_id : public Callback_Object_ice_id_Base, public ::IceInternal::TwowayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(const ::std::string&, const CT&); - - Callback_Object_ice_id(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallback(instance, cb != 0, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::std::string ret; - try - { - ret = result->getProxy()->end_ice_id(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::Callback::_callback.get()->*_response)(ret, - CT::dynamicCast(result->getCookie())); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_invoke. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_invoke. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_invoke : public Callback_Object_ice_invoke_Base, public ::IceInternal::TwowayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - typedef void (T::*Response)(bool, const std::vector< ::Ice::Byte>&); - typedef void (T::*ResponseArray)(bool, const std::pair&); - - CallbackNC_Object_ice_invoke(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallbackNC(instance, cb != 0, excb, sentcb), _response(cb), _responseArray(0) - { - } - - CallbackNC_Object_ice_invoke(const TPtr& instance, ResponseArray cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallbackNC(instance, cb != 0, excb, sentcb), _response(0), _responseArray(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - if(_response) - { - bool ok; - std::vector< ::Ice::Byte> outParams; - try - { - ok = result->getProxy()->end_ice_invoke(outParams, result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - (::IceInternal::CallbackNC::_callback.get()->*_response)(ok, outParams); - } - else - { - bool ok; - std::pair outParams; - try - { - ok = result->getProxy()->_iceI_end_ice_invoke(outParams, result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - if(_responseArray) - { - (::IceInternal::CallbackNC::_callback.get()->*_responseArray)(ok, outParams); - } - } - } - /// \endcond - -private: - - Response _response; - ResponseArray _responseArray; -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_invoke. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_invoke. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_invoke : public Callback_Object_ice_invoke_Base, public ::IceInternal::TwowayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - typedef void (T::*Response)(bool, const std::vector< ::Ice::Byte>&, const CT&); - typedef void (T::*ResponseArray)(bool, const std::pair&, const CT&); - - Callback_Object_ice_invoke(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallback(instance, cb != 0, excb, sentcb), _response(cb), _responseArray(0) - { - } - - Callback_Object_ice_invoke(const TPtr& instance, ResponseArray cb, Exception excb, Sent sentcb) : - ::IceInternal::TwowayCallback(instance, cb != 0, excb, sentcb), _response(0), _responseArray(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - if(_response) - { - bool ok; - std::vector< ::Ice::Byte> outParams; - try - { - ok = result->getProxy()->end_ice_invoke(outParams, result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - (::IceInternal::Callback::_callback.get()->*_response)(ok, - outParams, - CT::dynamicCast(result->getCookie())); - } - else - { - bool ok; - std::pair outParams; - try - { - ok = result->getProxy()->_iceI_end_ice_invoke(outParams, result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - if(_responseArray) - { - (::IceInternal::Callback::_callback.get()->*_responseArray)(ok, - outParams, - CT::dynamicCast( - result->getCookie())); - } - } - } - /// \endcond - -private: - - Response _response; - ResponseArray _responseArray; -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_getConnection. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_getConnection. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_getConnection : public Callback_Object_ice_getConnection_Base, - public ::IceInternal::CallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Response)(const ::Ice::ConnectionPtr&); - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC_Object_ice_getConnection(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::CallbackNC(instance, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::ConnectionPtr ret; - try - { - ret = result->getProxy()->end_ice_getConnection(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::CallbackNC::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::CallbackNC::_callback.get()->*_response)(ret); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_getConnection. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_getConnection. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_getConnection : public Callback_Object_ice_getConnection_Base, - public ::IceInternal::Callback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Response)(const ::Ice::ConnectionPtr&, const CT&); - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - - Callback_Object_ice_getConnection(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : - ::IceInternal::Callback(instance, excb, sentcb), _response(cb) - { - } - - /// \cond INTERNAL - virtual void completed(const ::Ice::AsyncResultPtr& result) const - { - ::Ice::ConnectionPtr ret; - try - { - ret = result->getProxy()->end_ice_getConnection(result); - } - catch(const ::Ice::Exception& ex) - { - ::IceInternal::Callback::exception(result, ex); - return; - } - if(_response) - { - (::IceInternal::Callback::_callback.get()->*_response)(ret, - CT::dynamicCast(result->getCookie())); - } - } - /// \endcond - -private: - - Response _response; -}; - -/** - * Type-safe asynchronous callback wrapper class used for calls to - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class CallbackNC_Object_ice_flushBatchRequests : public Callback_Object_ice_flushBatchRequests_Base, - public ::IceInternal::OnewayCallbackNC -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&); - typedef void (T::*Sent)(bool); - - CallbackNC_Object_ice_flushBatchRequests(const TPtr& instance, Exception excb, Sent sentcb) : - ::IceInternal::OnewayCallbackNC(instance, 0, excb, sentcb) - { - } -}; - -/** - * Type-safe asynchronous callback wrapper class with cookie support used for calls to - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - * Create a wrapper instance by calling ::Ice::newCallback_Object_ice_flushBatchRequests. - * \headerfile Ice/Ice.h - */ -template -class Callback_Object_ice_flushBatchRequests : public Callback_Object_ice_flushBatchRequests_Base, - public ::IceInternal::OnewayCallback -{ -public: - - typedef IceUtil::Handle TPtr; - - typedef void (T::*Exception)(const ::Ice::Exception&, const CT&); - typedef void (T::*Sent)(bool, const CT&); - - Callback_Object_ice_flushBatchRequests(const TPtr& instance, Exception excb, Sent sentcb) : - ::IceInternal::OnewayCallback(instance, 0, excb, sentcb) - { - } -}; - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(const IceUtil::Handle& instance, - void (T::*cb)(bool), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_isA(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(const IceUtil::Handle& instance, - void (T::*cb)(bool, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_isA(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_isA(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_isA(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(T* instance, - void (T::*cb)(bool), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_isA(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(T* instance, - void (T::*cb)(bool, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_isA(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_isA(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_isA. - */ -template Callback_Object_ice_isAPtr -newCallback_Object_ice_isA(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_isA(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(const IceUtil::Handle& instance, - void (T::*cb)(), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ping(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(const IceUtil::Handle& instance, - void (T::*cb)(const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ping(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ping(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ping(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(T* instance, - void (T::*cb)(), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ping(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(T* instance, - void (T::*cb)(const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ping(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ping(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ping. - */ -template Callback_Object_ice_pingPtr -newCallback_Object_ice_ping(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ping(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(const IceUtil::Handle& instance, - void (T::*cb)(const ::std::vector< ::std::string>&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ids(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(const IceUtil::Handle& instance, - void (T::*cb)(const ::std::vector< ::std::string>&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ids(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ids(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ids(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(T* instance, - void (T::*cb)(const ::std::vector< ::std::string>&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ids(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(T* instance, - void (T::*cb)(const ::std::vector< ::std::string>&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ids(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_ids(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_ids. - */ -template Callback_Object_ice_idsPtr -newCallback_Object_ice_ids(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_ids(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(const IceUtil::Handle& instance, - void (T::*cb)(const ::std::string&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_id(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(const IceUtil::Handle& instance, - void (T::*cb)(const ::std::string&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_id(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_id(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_id(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(T* instance, - void (T::*cb)(const ::std::string&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_id(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(T* instance, - void (T::*cb)(const ::std::string&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_id(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_id(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_id. - */ -template Callback_Object_ice_idPtr -newCallback_Object_ice_id(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_id(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*cb)(bool, const std::vector&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*cb)(bool, const std::pair&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*cb)(bool, const std::vector&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*cb)(bool, const std::pair&, - const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke(instance, 0, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*cb)(bool, const std::vector&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*cb)(bool, const std::pair&), - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*cb)(bool, const std::vector&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*cb)(bool, const std::pair&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke(instance, cb, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_invoke( - instance, static_cast&)>(0), excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_invoke. - */ -template Callback_Object_ice_invokePtr -newCallback_Object_ice_invoke(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_invoke( - instance, static_cast&, const CT&)>(0), excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_getConnection. - */ -template Callback_Object_ice_getConnectionPtr -newCallback_Object_ice_getConnection(const IceUtil::Handle& instance, - void (T::*cb)(const ::Ice::ConnectionPtr&), - void (T::*excb)(const ::Ice::Exception&)) -{ - return new CallbackNC_Object_ice_getConnection(instance, cb, excb, 0); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_getConnection. - */ -template Callback_Object_ice_getConnectionPtr -newCallback_Object_ice_getConnection(const IceUtil::Handle& instance, - void (T::*cb)(const ::Ice::ConnectionPtr&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&)) -{ - return new Callback_Object_ice_getConnection(instance, cb, excb, 0); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_getConnection. - */ -template Callback_Object_ice_getConnectionPtr -newCallback_Object_ice_getConnection(T* instance, - void (T::*cb)(const ::Ice::ConnectionPtr&), - void (T::*excb)(const ::Ice::Exception&)) -{ - return new CallbackNC_Object_ice_getConnection(instance, cb, excb, 0); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param cb The success method of the callback object. - * @param excb The exception method of the callback object. - * @return An object that can be passed to an asynchronous invocation of IceProxy::Ice::Object::begin_ice_getConnection. - */ -template Callback_Object_ice_getConnectionPtr -newCallback_Object_ice_getConnection(T* instance, - void (T::*cb)(const ::Ice::ConnectionPtr&, const CT&), - void (T::*excb)(const ::Ice::Exception&, const CT&)) -{ - return new Callback_Object_ice_getConnection(instance, cb, excb, 0); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - */ -template Callback_Object_ice_flushBatchRequestsPtr -newCallback_Object_ice_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - */ -template Callback_Object_ice_flushBatchRequestsPtr -newCallback_Object_ice_flushBatchRequests(const IceUtil::Handle& instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - */ -template Callback_Object_ice_flushBatchRequestsPtr -newCallback_Object_ice_flushBatchRequests(T* instance, - void (T::*excb)(const ::Ice::Exception&), - void (T::*sentcb)(bool) = 0) -{ - return new CallbackNC_Object_ice_flushBatchRequests(instance, excb, sentcb); -} - -/** - * Creates a callback wrapper instance that delegates to your object. - * @param instance The callback object. - * @param excb The exception method of the callback object. - * @param sentcb The sent method of the callback object. - * @return An object that can be passed to an asynchronous invocation of - * IceProxy::Ice::Object::begin_ice_flushBatchRequests. - */ -template Callback_Object_ice_flushBatchRequestsPtr -newCallback_Object_ice_flushBatchRequests(T* instance, - void (T::*excb)(const ::Ice::Exception&, const CT&), - void (T::*sentcb)(bool, const CT&) = 0) -{ - return new Callback_Object_ice_flushBatchRequests(instance, excb, sentcb); -} - -} -#endif - #endif diff --git a/cpp/include/Ice/ProxyF.h b/cpp/include/Ice/ProxyF.h index 63bcebbe57b..db5bb92e288 100644 --- a/cpp/include/Ice/ProxyF.h +++ b/cpp/include/Ice/ProxyF.h @@ -5,10 +5,9 @@ #ifndef ICE_PROXY_F_H #define ICE_PROXY_F_H -#include -#include +#include "Config.h" +#include -#ifdef ICE_CPP11_MAPPING namespace Ice { @@ -26,28 +25,4 @@ template ::std::shared_ptr

createProxy(); } - -#else // C++98 mapping -namespace IceProxy -{ - -namespace Ice -{ - -class Object; -inline Object* upCast(Object* o) { return o; } - -} - -} - -namespace Ice -{ - -typedef IceInternal::ProxyHandle< ::IceProxy::Ice::Object> ObjectPrx; -typedef ObjectPrx ObjectPrxPtr; - -} - -#endif #endif diff --git a/cpp/include/Ice/ProxyHandle.h b/cpp/include/Ice/ProxyHandle.h deleted file mode 100644 index 42377a5272f..00000000000 --- a/cpp/include/Ice/ProxyHandle.h +++ /dev/null @@ -1,287 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_PROXY_HANDLE_H -#define ICE_PROXY_HANDLE_H - -#ifndef ICE_CPP11_MAPPING // C++98 mapping - -#include -#include -#include - -#include - -namespace IceInternal -{ - -template class ProxyHandle; -template class Handle; - -} - -namespace IceProxy -{ -namespace Ice -{ - -class Object; - -} -} - -namespace Ice -{ - -/** Smart pointer for an object proxy. */ -typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Object> ObjectPrx; - -class ObjectAdapter; -using ObjectAdapterPtr = ::std::shared_ptr; - -/** - * A request context. Context is used to transmit metadata about a - * request from the server to the client, such as Quality-of-Service - * (QoS) parameters. Each remote operation on a proxy optionally - * accepts a Context parameter. - **/ -typedef ::std::map< ::std::string, ::std::string> Context; - -/** Sentinel value indicating that no explicit context argument was passed to a remote invocation. */ -ICE_API extern const Context noExplicitContext; - -} - -namespace IceInternal -{ - -template P -checkedCastImpl(const ::Ice::ObjectPrx&, const ::Ice::Context&); - -template P -checkedCastImpl(const ::Ice::ObjectPrx&, const std::string&, const ::Ice::Context&); - -template P -uncheckedCastImpl(const ::Ice::ObjectPrx&); - -template P -uncheckedCastImpl(const ::Ice::ObjectPrx&, const std::string&); - -// -// Upcast -// -template inline ProxyHandle -checkedCastHelper(const ::IceInternal::ProxyHandle& b, T*, const ::Ice::Context&) -{ - return b; -} - -template inline ProxyHandle -uncheckedCastHelper(const ::IceInternal::ProxyHandle& b, T*) -{ - return b; -} - -// -// Downcast -// -template inline ProxyHandle -checkedCastHelper(const ::IceInternal::ProxyHandle& b, void*, const ::Ice::Context& ctx) -{ - return checkedCastImpl >(b, ctx); -} - -template inline ProxyHandle -uncheckedCastHelper(const ::IceInternal::ProxyHandle& b, void*) -{ - return uncheckedCastImpl >(b); -} - -// -// Like IceInternal::Handle, but specifically for proxies, with -// support for checkedCast() and uncheckedCast() instead of -// dynamicCast(). -// -template -class ProxyHandle : public ::IceUtil::HandleBase -{ -public: - - ProxyHandle(T* p = 0) - { - this->_ptr = p; - - if(this->_ptr) - { - upCast(this->_ptr)->__incRef(); - } - } - - template - ProxyHandle(const ProxyHandle& r) - { - this->_ptr = r._ptr; - - if(this->_ptr) - { - upCast(this->_ptr)->__incRef(); - } - } - - template - ProxyHandle(const ::IceUtil::Handle& r) - { - this->_ptr = r._ptr; - - if(this->_ptr) - { - upCast(this->_ptr)->__incRef(); - } - } - - ProxyHandle(const ProxyHandle& r) - { - this->_ptr = r._ptr; - - if(this->_ptr) - { - upCast(this->_ptr)->__incRef(); - } - } - - ~ProxyHandle() - { - if(this->_ptr) - { - upCast(this->_ptr)->__decRef(); - } - } - - ProxyHandle& operator=(T* p) - { - if(this->_ptr != p) - { - if(p) - { - upCast(p)->__incRef(); - } - - if(this->_ptr) - { - upCast(this->_ptr)->__decRef(); - } - - this->_ptr = p; - } - return *this; - } - - template - ProxyHandle& operator=(const ProxyHandle& r) - { - if(this->_ptr != r._ptr) - { - if(r._ptr) - { - upCast(r._ptr)->__incRef(); - } - - if(this->_ptr) - { - upCast(this->_ptr)->__decRef(); - } - - this->_ptr = r._ptr; - } - return *this; - } - - template - ProxyHandle& operator=(const ::IceUtil::Handle& r) - { - if(this->_ptr != r._ptr) - { - if(r._ptr) - { - upCast(r._ptr)->__incRef(); - } - - if(this->_ptr) - { - upCast(this->_ptr)->__decRef(); - } - - this->_ptr = r._ptr; - } - return *this; - } - - ProxyHandle& operator=(const ProxyHandle& r) - { - if(this->_ptr != r._ptr) - { - if(r._ptr) - { - upCast(r._ptr)->__incRef(); - } - - if(this->_ptr) - { - upCast(this->_ptr)->__decRef(); - } - - this->_ptr = r._ptr; - } - return *this; - } - - ::IceProxy::Ice::Object* _upCast() const - { - return upCast(this->_ptr); - } - - template - static ProxyHandle checkedCast(const ProxyHandle& r, const ::Ice::Context& ctx = ::Ice::noExplicitContext) - { - Y* tag = 0; - return ::IceInternal::checkedCastHelper(r, tag, ctx); - } - - template - static ProxyHandle checkedCast(const ProxyHandle& r, const std::string& f, - const ::Ice::Context& ctx = ::Ice::noExplicitContext) - { - return ::IceInternal::checkedCastImpl(r, f, ctx); - } - - template - static ProxyHandle uncheckedCast(const ProxyHandle& r) - { - Y* tag = 0; - return::IceInternal::uncheckedCastHelper(r, tag); - } - - template - static ProxyHandle uncheckedCast(const ProxyHandle& r, const std::string& f) - { - return ::IceInternal::uncheckedCastImpl(r, f); - } - - static const std::string& ice_staticId() - { - return T::ice_staticId(); - } -}; - -template -std::ostream& operator<<(std::ostream& os, ::IceInternal::ProxyHandle p) -{ - return os << (p ? p->ice_toString() : std::string("")); -} - -} - -#endif - -#endif diff --git a/cpp/include/Ice/RequestHandlerF.h b/cpp/include/Ice/RequestHandlerF.h index 325f304ab83..770014d3bd1 100644 --- a/cpp/include/Ice/RequestHandlerF.h +++ b/cpp/include/Ice/RequestHandlerF.h @@ -5,25 +5,16 @@ #ifndef ICE_REQUEST_HANDLER_F_H #define ICE_REQUEST_HANDLER_F_H -#include -#include +#include "Config.h" +#include namespace IceInternal { class CancellationHandler; class RequestHandler; - -#ifdef ICE_CPP11_MAPPING using CancellationHandlerPtr = ::std::shared_ptr; using RequestHandlerPtr = ::std::shared_ptr; -#else -ICE_API IceUtil::Shared* upCast(CancellationHandler*); -typedef IceInternal::Handle CancellationHandlerPtr; - -ICE_API IceUtil::Shared* upCast(RequestHandler*); -typedef IceInternal::Handle RequestHandlerPtr; -#endif } diff --git a/cpp/include/Ice/ResponseHandlerF.h b/cpp/include/Ice/ResponseHandlerF.h index 53e86505b35..85f4cc433d7 100644 --- a/cpp/include/Ice/ResponseHandlerF.h +++ b/cpp/include/Ice/ResponseHandlerF.h @@ -5,20 +5,14 @@ #ifndef ICE_RESPONSE_HANDLER_F_H #define ICE_RESPONSE_HANDLER_F_H -#include -#include +#include "Config.h" +#include namespace IceInternal { class ResponseHandler; - -#ifdef ICE_CPP11_MAPPING using ResponseHandlerPtr = ::std::shared_ptr; -#else -ICE_API IceUtil::Shared* upCast(ResponseHandler*); -typedef IceInternal::Handle ResponseHandlerPtr; -#endif } diff --git a/cpp/include/Ice/RouterF.h b/cpp/include/Ice/RouterF.h index aeeb7ab1759..67b540837de 100644 --- a/cpp/include/Ice/RouterF.h +++ b/cpp/include/Ice/RouterF.h @@ -5,15 +5,9 @@ #ifndef ICE_ROUTER_F_H #define ICE_ROUTER_F_H -// TODO: remove this include when we remove the C++98 mapping. -#include - #include "Config.h" #include #include "ProxyF.h" -#include "SharedPtr.h" - -#ifdef ICE_CPP11_MAPPING // C++11 mapping namespace Ice { @@ -26,36 +20,4 @@ using RouterPrxPtr = ::std::shared_ptr; } -#else // C++98 mapping - -namespace Ice -{ - class InputStream; -} - -namespace IceProxy::Ice -{ - -class Router; -/// \cond INTERNAL -ICE_API void _readProxy(::Ice::InputStream*, ::IceInternal::ProxyHandle< Router>&); -ICE_API ::IceProxy::Ice::Object* upCast(Router*); -/// \endcond - -} - -namespace Ice -{ -typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Router> RouterPrx; -typedef RouterPrx RouterPrxPtr; - -class Router; -using RouterPtr = ::Ice::SharedPtr< Router>; - -} - -#endif - -// TODO: remove this include when we remove the C++98 mapping. -#include #endif diff --git a/cpp/include/Ice/SHA1.h b/cpp/include/Ice/SHA1.h index 9b4fe5394dc..11e902e2f56 100644 --- a/cpp/include/Ice/SHA1.h +++ b/cpp/include/Ice/SHA1.h @@ -5,9 +5,9 @@ #ifndef ICE_SHA1_H #define ICE_SHA1_H -#include -#include +#include "Config.h" +#include #include namespace IceInternal @@ -33,7 +33,7 @@ class ICE_API SHA1 SHA1 operator=(const SHA1&); class Hasher; - UniquePtr _hasher; + std::unique_ptr _hasher; }; } diff --git a/cpp/include/Ice/SharedPtr.h b/cpp/include/Ice/SharedPtr.h deleted file mode 100644 index 0fcc8689a0b..00000000000 --- a/cpp/include/Ice/SharedPtr.h +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_SHARED_PTR_H -#define ICE_SHARED_PTR_H - -#include - -namespace Ice -{ - -/** - * A smart pointer that wraps a std::shared_ptr and provides an API similar to the IceUtil::Handle API. - * It's the primary smart pointer for the Original Mapping. - * \headerfile Ice/Ice.h - */ -template -class SharedPtr -{ -public: - - typedef T element_type; - - SharedPtr(T* p = nullptr) noexcept : _ptr(p) - { - } - - SharedPtr(const SharedPtr&) noexcept = default; - - template - SharedPtr(const SharedPtr& r) noexcept : _ptr(r.underlying()) - { - } - - SharedPtr(std::shared_ptr&& r) noexcept : _ptr(std::move(r)) - { - } - - SharedPtr(const std::shared_ptr& r) noexcept : _ptr(r) - { - } - - ~SharedPtr() = default; - - SharedPtr& operator=(T* p) noexcept - { - if(_ptr.get() != p) - { - _ptr = std::shared_ptr(p); - } - return *this; - } - - template - SharedPtr& operator=(const SharedPtr& r) noexcept - { - if(_ptr != r.underlying()) - { - _ptr = r.underlying(); - } - return *this; - } - - SharedPtr& operator=(const SharedPtr& r) noexcept - { - if(_ptr != r._ptr) - { - _ptr = r._ptr; - } - return *this; - } - - T* get() const noexcept { return _ptr.get(); } - - T* operator->() const noexcept { return _ptr.get(); } - - T& operator*() const noexcept { return *_ptr; } - - operator bool() const noexcept { return _ptr.operator bool(); } - - void swap(SharedPtr& other) noexcept { _ptr.swap(other._ptr); } - - std::shared_ptr& underlying() noexcept { return _ptr; } - const std::shared_ptr& underlying() const noexcept { return _ptr; } - - template - static SharedPtr dynamicCast(const SharedPtr& r) noexcept - { - return dynamicCast(r.underlying()); - } - - template - static SharedPtr dynamicCast(const std::shared_ptr& r) noexcept - { - return SharedPtr(std::dynamic_pointer_cast(r)); - } - -private: - - std::shared_ptr _ptr; -}; - -// The semantics of these comparison operators is _not_ the same as with IceUtil::Handle. IceUtil::Handle compares the -// pointed-to objects, after dereferencing the pointers. SharedPtr compares the pointers like shared_ptr. -// This does not make a significant difference for Ice::Value and Ice::Object since their default comparison operators -// in Ice 3.7 and before compares "this". - -template -inline bool operator==(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() == rhs.underlying(); } - -#if __cplusplus >= 202002L - -template -inline std::strong_ordering operator<=>(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() <=> rhs.underlying(); } - -#else - -template -inline bool operator!=(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() != rhs.underlying(); } - -template -inline bool operator<(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() < rhs.underlying();} - -template -inline bool operator<=(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() <= rhs.underlying(); } - -template -inline bool operator>(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() > rhs.underlying(); } - -template -inline bool operator>=(const SharedPtr& lhs, const SharedPtr& rhs) noexcept { return lhs.underlying() >= rhs.underlying(); } - -#endif - -} - -#endif diff --git a/cpp/include/Ice/SlicedData.h b/cpp/include/Ice/SlicedData.h index c847ef1464f..4b6c2d5133e 100644 --- a/cpp/include/Ice/SlicedData.h +++ b/cpp/include/Ice/SlicedData.h @@ -100,11 +100,7 @@ class ICE_API UnknownSlicedValue : public Value */ inline UnknownSlicedValuePtr ice_clone() const { -#ifdef ICE_CPP11_MAPPING return std::static_pointer_cast(_iceCloneImpl()); -#else - return UnknownSlicedValuePtr(std::static_pointer_cast(_iceCloneImpl())); -#endif } /// \cond STREAM diff --git a/cpp/include/Ice/SlicedDataF.h b/cpp/include/Ice/SlicedDataF.h index 6b3d3815a82..48d12706a2d 100644 --- a/cpp/include/Ice/SlicedDataF.h +++ b/cpp/include/Ice/SlicedDataF.h @@ -5,9 +5,10 @@ #ifndef ICE_SLICED_DATA_F_H #define ICE_SLICED_DATA_F_H -#include -#include -#include +#include + +#include +#include namespace Ice { @@ -19,13 +20,9 @@ class UnknownSlicedValue; using SliceInfoPtr = ::std::shared_ptr; using SlicedDataPtr = ::std::shared_ptr; -#ifdef ICE_CPP11_MAPPING /// \cond INTERNAL using UnknownSlicedValuePtr = ::std::shared_ptr; /// \endcond -#else -using UnknownSlicedValuePtr = SharedPtr; -#endif /** The slices of unknown types. */ typedef ::std::vector SliceInfoSeq; diff --git a/cpp/include/Ice/StreamHelpers.h b/cpp/include/Ice/StreamHelpers.h index 9fc0910330d..51ad63522f8 100644 --- a/cpp/include/Ice/StreamHelpers.h +++ b/cpp/include/Ice/StreamHelpers.h @@ -10,10 +10,6 @@ #include #include -#ifndef ICE_CPP11_MAPPING -# include -#endif - #include namespace Ice @@ -55,7 +51,6 @@ const StreamHelperCategory StreamHelperCategoryUserException = 9; * and how it can be skipped by the unmarshaling code if the optional ID * isn't known to the receiver. */ -#ifdef ICE_CPP11_MAPPING enum class OptionalFormat : unsigned char { /** Fixed 1-byte encoding. */ @@ -78,30 +73,6 @@ enum class OptionalFormat : unsigned char /** Class instance. */ Class = 7 }; -#else -enum OptionalFormat -{ - /** Fixed 1-byte encoding. */ - OptionalFormatF1 = 0, - /** Fixed 2-byte encoding. */ - OptionalFormatF2 = 1, - /** Fixed 4-byte encoding. */ - OptionalFormatF4 = 2, - /** Fixed 8-byte encoding. */ - OptionalFormatF8 = 3, - /** "Size encoding" using 1 to 5 bytes, e.g., enum, class identifier. */ - OptionalFormatSize = 4, - /** - * "Size encoding" using 1 to 5 bytes followed by data, e.g., string, fixed size - * struct, or containers whose size can be computed prior to marshaling. - */ - OptionalFormatVSize = 5, - /** Fixed size using 4 bytes followed by data, e.g., variable-size struct, container. */ - OptionalFormatFSize = 6, - /** Class instance. */ - OptionalFormatClass = 7 -}; -#endif /** * Determines whether the provided type is a container. For now, the implementation only checks @@ -137,8 +108,6 @@ struct IsMap static const bool value = IsContainer::value && sizeof(test(0)) == sizeof(char); }; -#ifdef ICE_CPP11_MAPPING - /** * Base traits template. Types with no specialized trait use this trait. * \headerfile Ice/Ice.h @@ -201,62 +170,6 @@ struct StreamableTraits> static const bool fixedLength = false; }; -#else - -/** - * Base traits template. Types with no specialized trait use this trait, including sequence and - * dictionary types. - * \headerfile Ice/Ice.h - */ -template -struct StreamableTraits -{ - static const StreamHelperCategory helper = IsMap::value ? StreamHelperCategoryDictionary : - (IsContainer::value ? StreamHelperCategorySequence : StreamHelperCategoryUnknown); - - /** - * When extracting a sequence from a stream, we can ensure the - * stream has at least StreamableTraits::minWireSize * size bytes. - * For containers, the minWireSize is 1 (just 1 byte for an empty container). - */ - static const int minWireSize = 1; - - /** - * Is this type encoded on a fixed number of bytes? - * Used only for marshaling/unmarshaling optional data members and parameters. - */ - static const bool fixedLength = false; -}; - -/** - * Specialization for exceptions. - * \headerfile Ice/Ice.h - */ -template<> -struct StreamableTraits -{ - static const StreamHelperCategory helper = StreamHelperCategoryUserException; - - // - // There is no sequence/dictionary of UserException (so no need for minWireSize) - // and no optional UserException (so no need for fixedLength) - // -}; - -/** - * Specialization for array / range mapped sequences. The type can be a std::pair or a - * std::pair, std::pair >. - * \headerfile Ice/Ice.h - */ -template -struct StreamableTraits< ::std::pair > -{ - static const StreamHelperCategory helper = StreamHelperCategorySequence; - static const int minWireSize = 1; - static const bool fixedLength = false; -}; -#endif - /** * Specialization for built-in type (this is needed for sequence * marshaling to figure out the minWireSize of each type). @@ -390,7 +303,6 @@ struct StreamableTraits< ::std::vector > * Specialization for proxy types. * \headerfile Ice/Ice.h */ -#ifdef ICE_CPP11_MAPPING template struct StreamableTraits<::std::shared_ptr, typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, T>::value>::type> { @@ -398,21 +310,11 @@ struct StreamableTraits<::std::shared_ptr, typename ::std::enable_if<::std::i static const int minWireSize = 2; static const bool fixedLength = false; }; -#else -template -struct StreamableTraits< ::IceInternal::ProxyHandle > -{ - static const StreamHelperCategory helper = StreamHelperCategoryProxy; - static const int minWireSize = 2; - static const bool fixedLength = false; -}; -#endif /** * Specialization for class types. * \headerfile Ice/Ice.h */ -#ifdef ICE_CPP11_MAPPING template struct StreamableTraits<::std::shared_ptr, typename ::std::enable_if<::std::is_base_of<::Ice::Value, T>::value>::type> { @@ -420,15 +322,6 @@ struct StreamableTraits<::std::shared_ptr, typename ::std::enable_if<::std::i static const int minWireSize = 1; static const bool fixedLength = false; }; -#else -template -struct StreamableTraits> -{ - static const StreamHelperCategory helper = StreamHelperCategoryClass; - static const int minWireSize = 1; - static const bool fixedLength = false; -}; -#endif // // StreamHelper templates used by streams to read and write data. @@ -470,17 +363,10 @@ struct StreamHelper template struct StreamWriter { -#ifdef ICE_CPP11_MAPPING static inline void write(S* stream, const T& v) { stream->writeAll(v.ice_tuple()); } -#else - static inline void write(S*, const T&) - { - // Default is to write nothing for C++98 - } -#endif }; /** @@ -615,69 +501,6 @@ struct StreamHelper, StreamHelperCategorySequence> } }; -#ifndef ICE_CPP11_MAPPING - -/** - * Helper for range custom sequence parameters. - * \headerfile Ice/Ice.h - */ -template -struct StreamHelper, StreamHelperCategorySequence> -{ - template static inline void - write(S* stream, const std::pair& v) - { - stream->writeSize(static_cast(std::distance(v.first, v.second))); - for(T p = v.first; p != v.second; ++p) - { - stream->write(*p); - } - } - - template static inline void - read(S* stream, std::pair& v) - { - stream->read(v); - } -}; - -/** - * Specialization for sequence. - * \headerfile Ice/Ice.h - */ -template<> -struct StreamHelper::const_iterator, - ::std::vector::const_iterator>, StreamHelperCategorySequence> -{ - template static inline void - write(S* stream, const std::pair< ::std::vector::const_iterator, - ::std::vector::const_iterator>& v) - { - stream->writeSize(static_cast(std::distance(v.first, v.second))); - for(::std::vector::const_iterator p = v.first; p != v.second; ++p) - { - stream->write(static_cast(*p)); - } - } -}; - -/** - * Helper for zero-copy array sequence parameters. - * \headerfile Ice/Ice.h - */ -template -struct StreamHelper, std::pair >, StreamHelperCategorySequence> -{ - template static inline void - read(S* stream, std::pair, std::pair >& v) - { - stream->read(v.second, v.first); - } - - // no write: only used for unmarshaling -}; -#endif - /** * Helper for dictionaries. * \headerfile Ice/Ice.h @@ -1097,65 +920,6 @@ struct StreamOptionalHelper, StreamHelperCategoryS } }; -#ifndef ICE_CPP11_MAPPING - -/** - * Helper to write sequences, delegates to the optional container - * helper template partial specializations. - * \headerfile Ice/Ice.h - */ -template -struct StreamOptionalHelper, StreamHelperCategorySequence, false> -{ - typedef std::pair P; - static const int size = StreamableTraits::minWireSize; - static const bool fixedLength = StreamableTraits::fixedLength; - - // The optional type of a sequence depends on whether or not elements are fixed - // or variable size elements and their size. - static const OptionalFormat optionalFormat = StreamOptionalContainerHelper::optionalFormat; - - template static inline void - write(S* stream, const P& v) - { - Int n = static_cast(v.second - v.first); - StreamOptionalContainerHelper::write(stream, v, n); - } - - template static inline void - read(S* stream, P& v) - { - StreamOptionalContainerHelper::read(stream, v); - } -}; - -/** - * Helper to write sequences, delegates to the optional container - * helper template partial specializations. - * \headerfile Ice/Ice.h - */ -template -struct StreamOptionalHelper, std::pair >, - StreamHelperCategorySequence, false> -{ - typedef std::pair, std::pair > P; - static const int size = StreamableTraits::minWireSize; - static const bool fixedLength = StreamableTraits::fixedLength; - - // The optional type of a sequence depends on whether or not elements are fixed - // or variable size elements and their size. - static const OptionalFormat optionalFormat = StreamOptionalContainerHelper::optionalFormat; - - template static inline void - read(S* stream, P& v) - { - StreamOptionalContainerHelper::read(stream, v); - } - - // no write: only used for unmarshaling -}; -#endif - /** * Helper to write dictionaries, delegates to the optional container * helper template partial specializations. diff --git a/cpp/include/Ice/StringConverter.h b/cpp/include/Ice/StringConverter.h index 025063c845f..9a5ab294eb8 100644 --- a/cpp/include/Ice/StringConverter.h +++ b/cpp/include/Ice/StringConverter.h @@ -26,11 +26,9 @@ typedef IceUtil::WstringConverterPtr WstringConverterPtr; /** Indicates an error occurred during string conversion. */ typedef IceUtil::IllegalConversionException IllegalConversionException; -#ifdef ICE_CPP11_MAPPING /** Base class for a string converter. */ template using BasicStringConverter = IceUtil::BasicStringConverter; -#endif #ifdef _WIN32 /** diff --git a/cpp/include/Ice/UniquePtr.h b/cpp/include/Ice/UniquePtr.h deleted file mode 100644 index c1ba3e5ee73..00000000000 --- a/cpp/include/Ice/UniquePtr.h +++ /dev/null @@ -1,95 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_UNIQUE_PTR_H -#define ICE_UNIQUE_PTR_H - -#include - -namespace IceInternal -{ - -#ifdef ICE_CPP11_MAPPING - -template -using UniquePtr = std::unique_ptr; - -#else - -template -class UniquePtr -{ -public: - - explicit UniquePtr(T* ptr = 0) : - _ptr(ptr) - { - } - - ~UniquePtr() - { - if(_ptr != 0) - { - delete _ptr; - } - } - - T* release() - { - T* r = _ptr; - _ptr = 0; - return r; - } - - void reset(T* ptr = 0) - { - assert(ptr == 0 || ptr != _ptr); - - if(_ptr != 0) - { - delete _ptr; - } - _ptr = ptr; - } - - T& operator*() const - { - return *_ptr; - } - - T* operator->() const - { - return _ptr; - } - - T* get() const - { - return _ptr; - } - - operator bool() const - { - return _ptr != 0; - } - - void swap(UniquePtr& a) - { - T* tmp = a._ptr; - a._ptr = _ptr; - _ptr = tmp; - } - -private: - - UniquePtr(UniquePtr&); - UniquePtr& operator=(UniquePtr&); - - T* _ptr; -}; - -#endif - -} - -#endif diff --git a/cpp/include/Ice/UserExceptionFactory.h b/cpp/include/Ice/UserExceptionFactory.h index 61feafb42a9..7c371dd13ab 100644 --- a/cpp/include/Ice/UserExceptionFactory.h +++ b/cpp/include/Ice/UserExceptionFactory.h @@ -9,8 +9,6 @@ #include #include -#ifdef ICE_CPP11_MAPPING - namespace Ice { @@ -35,54 +33,5 @@ defaultUserExceptionFactory(const std::string& typeId) } } -#else - -namespace Ice -{ - -/** - * Creates and throws a user exception. - * \headerfile Ice/Ice.h - */ -class ICE_API UserExceptionFactory : public IceUtil::Shared -{ -public: - - virtual void createAndThrow(const ::std::string&) = 0; - virtual ~UserExceptionFactory(); -}; -typedef ::IceUtil::Handle UserExceptionFactoryPtr; - -} - -namespace IceInternal -{ -template -class DefaultUserExceptionFactory : public Ice::UserExceptionFactory -{ -public: - - DefaultUserExceptionFactory(const ::std::string& typeId) : - _typeId(typeId) - { - } - -#ifdef NDEBUG - virtual void createAndThrow(const ::std::string&) -#else - virtual void createAndThrow(const ::std::string& typeId) -#endif - { - assert(typeId == _typeId); - throw E(); - } - -private: - const ::std::string _typeId; -}; - -} - -#endif #endif diff --git a/cpp/include/Ice/Value.h b/cpp/include/Ice/Value.h index b7c7f7110c3..9148ebb7af8 100644 --- a/cpp/include/Ice/Value.h +++ b/cpp/include/Ice/Value.h @@ -64,17 +64,10 @@ class ICE_API Value * Returns a shallow copy of the object. * @return The cloned value. */ -#if defined ICE_CPP11_MAPPING inline std::shared_ptr ice_clone() const { return _iceCloneImpl(); } -#else - inline SharedPtr ice_clone() const - { - return SharedPtr(_iceCloneImpl()); - } -#endif /** * Obtains the sliced data associated with this instance. @@ -109,17 +102,10 @@ template class ValueHelper : public Base ValueHelper() = default; -#if defined ICE_CPP11_MAPPING std::shared_ptr ice_clone() const { return std::static_pointer_cast(_iceCloneImpl()); } -#else - SharedPtr ice_clone() const - { - return SharedPtr(std::static_pointer_cast(_iceCloneImpl())); - } -#endif virtual std::string ice_id() const override { diff --git a/cpp/include/Ice/ValueF.h b/cpp/include/Ice/ValueF.h index 192e5841cc9..fe7974fd065 100644 --- a/cpp/include/Ice/ValueF.h +++ b/cpp/include/Ice/ValueF.h @@ -6,24 +6,14 @@ #define ICE_VALUE_F_H #include -#include - namespace Ice { class Value; -#ifdef ICE_CPP11_MAPPING - /// \cond INTERNAL using ValuePtr = ::std::shared_ptr; /// \endcond -#else - -using ValuePtr = SharedPtr; - -#endif - } #endif diff --git a/cpp/include/IceBT/ConnectionInfo.h b/cpp/include/IceBT/ConnectionInfo.h index ca5360ce68b..328f5536eb3 100644 --- a/cpp/include/IceBT/ConnectionInfo.h +++ b/cpp/include/IceBT/ConnectionInfo.h @@ -5,7 +5,6 @@ #ifndef __IceBT_ConnectionInfo_h__ #define __IceBT_ConnectionInfo_h__ -#include #include #include #include @@ -14,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -29,8 +27,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceBT { @@ -125,13 +121,6 @@ class ICE_CLASS(ICEBT_API) ConnectionInfo : public ::Ice::ConnectionInfo } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace IceBT { @@ -141,127 +130,4 @@ using ConnectionInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceBT -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICEBT_API ::Ice::LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -} - -namespace IceBT -{ - -/** - * Provides access to the details of a Bluetooth connection. - * \headerfile IceBT/IceBT.h - */ -class ICEBT_API ConnectionInfo : public ::Ice::ConnectionInfo -{ -public: - - typedef ConnectionInfoPtr PointerType; - - virtual ~ConnectionInfo(); - - /** Default constructor that assigns default values to members as specified in the Slice definition. */ - ConnectionInfo() : - localAddress(""), - localChannel(-1), - remoteAddress(""), - remoteChannel(-1), - uuid(""), - rcvSize(0), - sndSize(0) - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param localAddress The local Bluetooth address. - * @param localChannel The local RFCOMM channel. - * @param remoteAddress The remote Bluetooth address. - * @param remoteChannel The remote RFCOMM channel. - * @param uuid The UUID of the service being offered (in a server) or targeted (in a client). - * @param rcvSize The connection buffer receive size. - * @param sndSize The connection buffer send size. - */ - ConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localChannel, const ::std::string& remoteAddress, ::Ice::Int remoteChannel, const ::std::string& uuid, ::Ice::Int rcvSize, ::Ice::Int sndSize) : - ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId), - localAddress(localAddress), - localChannel(localChannel), - remoteAddress(remoteAddress), - remoteChannel(remoteChannel), - uuid(uuid), - rcvSize(rcvSize), - sndSize(sndSize) - { - } - - ConnectionInfo(const ConnectionInfo&) = default; - ConnectionInfo& operator=(const ConnectionInfo&) = default; - - /** - * The local Bluetooth address. - */ - ::std::string localAddress; - /** - * The local RFCOMM channel. - */ - ::Ice::Int localChannel; - /** - * The remote Bluetooth address. - */ - ::std::string remoteAddress; - /** - * The remote RFCOMM channel. - */ - ::Ice::Int remoteChannel; - /** - * The UUID of the service being offered (in a server) or targeted (in a client). - */ - ::std::string uuid; - /** - * The connection buffer receive size. - */ - ::Ice::Int rcvSize; - /** - * The connection buffer send size. - */ - ::Ice::Int sndSize; -}; - -/// \cond INTERNAL -inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceBT/EndpointInfo.h b/cpp/include/IceBT/EndpointInfo.h index 365410cf832..8ee188629d4 100644 --- a/cpp/include/IceBT/EndpointInfo.h +++ b/cpp/include/IceBT/EndpointInfo.h @@ -5,7 +5,6 @@ #ifndef __IceBT_EndpointInfo_h__ #define __IceBT_EndpointInfo_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -28,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceBT { @@ -84,13 +80,6 @@ class ICE_CLASS(ICEBT_API) EndpointInfo : public ::Ice::EndpointInfo } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace IceBT { @@ -100,88 +89,4 @@ using EndpointInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceBT -{ - -class EndpointInfo; -/// \cond INTERNAL -ICEBT_API ::Ice::LocalObject* upCast(EndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< EndpointInfo> EndpointInfoPtr; - -} - -namespace IceBT -{ - -/** - * Provides access to Bluetooth endpoint information. - * \headerfile IceBT/IceBT.h - */ -class ICEBT_API EndpointInfo : public ::Ice::EndpointInfo -{ -public: - - typedef EndpointInfoPtr PointerType; - - virtual ~EndpointInfo(); - - EndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param addr The address configured with the endpoint. - * @param uuid The UUID configured with the endpoint. - */ - EndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& addr, const ::std::string& uuid) : - ::Ice::EndpointInfo(underlying, timeout, compress), - addr(addr), - uuid(uuid) - { - } - - EndpointInfo(const EndpointInfo&) = default; - EndpointInfo& operator=(const EndpointInfo&) = default; - - /** - * The address configured with the endpoint. - */ - ::std::string addr; - /** - * The UUID configured with the endpoint. - */ - ::std::string uuid; -}; - -/// \cond INTERNAL -inline bool operator==(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceBT/Plugin.h b/cpp/include/IceBT/Plugin.h index eed2e876927..7204df290d1 100644 --- a/cpp/include/IceBT/Plugin.h +++ b/cpp/include/IceBT/Plugin.h @@ -26,25 +26,6 @@ typedef std::map PropertyMap; /** A collection of properties for each device. */ typedef std::map DeviceMap; -#ifndef ICE_CPP11_MAPPING -/** - * An application can receive discovery notifications by implementing the DiscoveryCallback interface. - * \headerfile IceBT/IceBT.h - */ -class ICEBT_API DiscoveryCallback : public IceUtil::Shared -{ -public: - - /** - * Called for each discovered device. The same device may be reported multiple times. - * @param addr The discovered device's Bluetooth address. - * @param props A map of device properties supplied by the system's Bluetooth stack. - */ - virtual void discovered(const std::string& addr, const PropertyMap& props) = 0; -}; -typedef IceUtil::Handle DiscoveryCallbackPtr; -#endif - /** * Represents the IceBT plug-in object. * \headerfile IceBT/IceBT.h @@ -61,12 +42,8 @@ class ICEBT_API Plugin : public Ice::Plugin * @param address The address associated with the Bluetooth adapter. * @param cb The callback to invoke when a device is discovered. */ -#ifdef ICE_CPP11_MAPPING virtual void startDiscovery(const std::string& address, std::function cb) = 0; -#else - virtual void startDiscovery(const std::string& address, const DiscoveryCallbackPtr& cb) = 0; -#endif /** * Stops Bluetooth device discovery on the adapter with the specified address. diff --git a/cpp/include/IceBT/Types.h b/cpp/include/IceBT/Types.h index 7a29d477820..e04c235050c 100644 --- a/cpp/include/IceBT/Types.h +++ b/cpp/include/IceBT/Types.h @@ -5,7 +5,6 @@ #ifndef __IceBT_Types_h__ #define __IceBT_Types_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -28,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceBT { @@ -94,80 +90,4 @@ class ICE_CLASS(ICEBT_API) BluetoothException : public ::Ice::LocalExceptionHelp } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#else // C++98 mapping - -namespace IceBT -{ - -/** - * Indicates a failure in the Bluetooth plug-in. - * \headerfile IceBT/IceBT.h - */ -class ICEBT_API BluetoothException : public ::Ice::LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - BluetoothException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason Provides more information about the failure. - */ - BluetoothException(const char* file, int line, const ::std::string& reason); - - BluetoothException(const BluetoothException&) = default; - virtual ~BluetoothException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual BluetoothException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * Provides more information about the failure. - */ - ::std::string reason; -}; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceBox/Service.h b/cpp/include/IceBox/Service.h index 724246df8cc..e5b1d580f58 100644 --- a/cpp/include/IceBox/Service.h +++ b/cpp/include/IceBox/Service.h @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -36,9 +35,6 @@ # define ICEBOX_API ICE_DECLSPEC_IMPORT # endif #endif - -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceBox { @@ -152,126 +148,5 @@ using ServicePtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceBox -{ - -class Service; -/// \cond INTERNAL -ICEBOX_API ::Ice::LocalObject* upCast(Service*); -/// \endcond -typedef ::IceInternal::Handle< Service> ServicePtr; - -} - -namespace IceBox -{ - -/** - * This exception is a general failure notification. It is thrown for errors such as a service encountering an error - * during initialization, or the service manager being unable to load a service executable. - * \headerfile IceBox/IceBox.h - */ -class ICEBOX_API FailureException : public ::Ice::LocalException -{ -public: - - /** - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - */ - FailureException(const char* file, int line); - /** - * One-shot constructor to initialize all data members. - * The file and line number are required for all local exceptions. - * @param file The file name in which the exception was raised, typically __FILE__. - * @param line The line number at which the exception was raised, typically __LINE__. - * @param reason The reason for the failure. - */ - FailureException(const char* file, int line, const ::std::string& reason); - FailureException(const FailureException&) = default; - virtual ~FailureException(); - - /** - * Obtains the Slice type ID of this exception. - * @return The fully-scoped type ID. - */ - virtual ::std::string ice_id() const; - /** - * Prints this exception to the given stream. - * @param stream The target stream. - */ - virtual void ice_print(::std::ostream& stream) const; - /** - * Polymorphically clones this exception. - * @return A shallow copy of this exception. - */ - virtual FailureException* ice_clone() const; - /** - * Throws this exception. - */ - virtual void ice_throw() const; - - /** - * The reason for the failure. - */ - ::std::string reason; -}; - -} - -namespace IceBox -{ - -/** - * An application service managed by a {@link ServiceManager}. - * \headerfile IceBox/IceBox.h - */ -class ICEBOX_API Service : public virtual ::Ice::LocalObject -{ -public: - - typedef ServicePtr PointerType; - - virtual ~Service(); - Service() = default; - Service(const Service&) = default; - Service& operator=(const Service&) = default; - - /** - * Start the service. The given communicator is created by the {@link ServiceManager} for use by the service. This - * communicator may also be used by other services, depending on the service configuration. - *

The {@link ServiceManager} owns this communicator, and is responsible for destroying it. - * @param name The service's name, as determined by the configuration. - * @param communicator A communicator for use by the service. - * @param args The service arguments that were not converted into properties. - * @throws IceBox::FailureException Raised if {@link #start} failed. - */ - virtual void start(const ::std::string& name, const ::Ice::CommunicatorPtr& communicator, const ::Ice::StringSeq& args) = 0; - - /** - * Stop the service. - */ - virtual void stop() = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const Service& lhs, const Service& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const Service& lhs, const Service& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -#endif - #include #endif diff --git a/cpp/include/IceGrid/PluginFacade.h b/cpp/include/IceGrid/PluginFacade.h index a197a38db74..56a93c3a507 100644 --- a/cpp/include/IceGrid/PluginFacade.h +++ b/cpp/include/IceGrid/PluginFacade.h @@ -5,7 +5,6 @@ #ifndef __IceGrid_PluginFacade_h__ #define __IceGrid_PluginFacade_h__ -#include #include #include #include @@ -19,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -39,8 +37,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceGrid { @@ -257,297 +253,4 @@ using RegistryPluginFacadePtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceProxy -{ - -} - -namespace IceGrid -{ - -class ReplicaGroupFilter; -/// \cond INTERNAL -ICEGRID_API ::Ice::LocalObject* upCast(ReplicaGroupFilter*); -/// \endcond -typedef ::IceInternal::Handle< ReplicaGroupFilter> ReplicaGroupFilterPtr; - -class TypeFilter; -/// \cond INTERNAL -ICEGRID_API ::Ice::LocalObject* upCast(TypeFilter*); -/// \endcond -typedef ::IceInternal::Handle< TypeFilter> TypeFilterPtr; - -class RegistryPluginFacade; -/// \cond INTERNAL -ICEGRID_API ::Ice::LocalObject* upCast(RegistryPluginFacade*); -/// \endcond -typedef ::IceInternal::Handle< RegistryPluginFacade> RegistryPluginFacadePtr; - -} - -/// \cond INTERNAL -namespace IceAsync -{ - -} -/// \endcond - -namespace IceProxy -{ - -} - -namespace IceGrid -{ - -/** - * The ReplicaGroupFilter is used by IceGrid to filter adapters returned to the client when it resolves a filtered - * replica group. - * IceGrid provides the list of available adapters. The implementationof this method can use the provided context and - * connection to filter and return the filtered set of adapters. - * \headerfile IceGrid/IceGrid.h - */ -class ICEGRID_API ReplicaGroupFilter : public virtual ::Ice::LocalObject -{ -public: - - typedef ReplicaGroupFilterPtr PointerType; - - virtual ~ReplicaGroupFilter(); - - ReplicaGroupFilter() = default; - ReplicaGroupFilter(const ReplicaGroupFilter&) = default; - ReplicaGroupFilter& operator=(const ReplicaGroupFilter&) = default; - - /** - * Filter the given set of adapters. - * @param replicaGroupId The replica group ID. - * @param adapterIds The adpater IDs to filter. - * @param con The connection from the Ice client which is resolving the replica group endpoints. - * @param ctx The context from the Ice client which is resolving the replica group endpoints. - * @return The filtered adapter IDs. - */ - virtual ::Ice::StringSeq filter(const ::std::string& replicaGroupId, const ::Ice::StringSeq& adapterIds, const ::Ice::ConnectionPtr& con, const ::Ice::Context& ctx) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const ReplicaGroupFilter& lhs, const ReplicaGroupFilter& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ReplicaGroupFilter& lhs, const ReplicaGroupFilter& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * The TypeFilter is used by IceGrid to filter well-known proxies returned to the client when it searches a well-known - * object by type. - * IceGrid provides the list of available proxies. The implementation of this method can use the provided context and - * connection to filter and return the filtered set of proxies. - * \headerfile IceGrid/IceGrid.h - */ -class ICEGRID_API TypeFilter : public virtual ::Ice::LocalObject -{ -public: - - typedef TypeFilterPtr PointerType; - - virtual ~TypeFilter(); - - TypeFilter() = default; - TypeFilter(const TypeFilter&) = default; - TypeFilter& operator=(const TypeFilter&) = default; - - /** - * Filter the given set of proxies. - * @param type The type. - * @param proxies The proxies to filter. - * @param con The connection from the Ice client which is looking up well-known objects by type. - * @param ctx The context from the Ice client which is looking up well-known objects by type. - * @return The filtered proxies. - */ - virtual ::Ice::ObjectProxySeq filter(const ::std::string& type, const ::Ice::ObjectProxySeq& proxies, const ::Ice::ConnectionPtr& con, const ::Ice::Context& ctx) = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const TypeFilter& lhs, const TypeFilter& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const TypeFilter& lhs, const TypeFilter& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -/** - * The RegistryPluginFacade is implemented by IceGrid and can be used by plugins and filter implementations to - * retrieve information from IceGrid about the well-known objects or adapters. It's also used to register/unregister - * replica group and type filters. - * \headerfile IceGrid/IceGrid.h - */ -class ICEGRID_API RegistryPluginFacade : public virtual ::Ice::LocalObject -{ -public: - - typedef RegistryPluginFacadePtr PointerType; - - virtual ~RegistryPluginFacade(); - - RegistryPluginFacade() = default; - RegistryPluginFacade(const RegistryPluginFacade&) = default; - RegistryPluginFacade& operator=(const RegistryPluginFacade&) = default; - - /** - * Get an application descriptor. - * @param name The application name. - * @return The application descriptor. - * @throws IceGrid::ApplicationNotExistException Raised if the application doesn't exist. - */ - virtual ApplicationInfo getApplicationInfo(const ::std::string& name) const = 0; - - /** - * Get the server information for the server with the given id. - * @param id The server id. - * @return The server information. - * @throws IceGrid::ServerNotExistException Raised if the server doesn't exist. - */ - virtual ServerInfo getServerInfo(const ::std::string& id) const = 0; - - /** - * Get the ID of the server to which the given adapter belongs. - * @param adapterId The adapter ID. - * @return The server ID or the empty string if the given identifier is not associated to an object adapter - * defined with an application descriptor. - * @throws IceGrid::AdapterNotExistException Raised if the adapter doesn't exist. - */ - virtual ::std::string getAdapterServer(const ::std::string& adapterId) const = 0; - - /** - * Get the name of the application to which the given adapter belongs. - * @param adapterId The adapter ID. - * @return The application name or the empty string if the given identifier is not associated to a replica group - * or object adapter defined with an application descriptor. - * @throws IceGrid::AdapterNotExistException Raised if the adapter doesn't exist. - */ - virtual ::std::string getAdapterApplication(const ::std::string& adapterId) const = 0; - - /** - * Get the name of the node to which the given adapter belongs. - * @param adapterId The adapter ID. - * @return The node name or the empty string if the given identifier is not associated to an object adapter - * defined with an application descriptor. - * @throws IceGrid::AdapterNotExistException Raised if the adapter doesn't exist. - */ - virtual ::std::string getAdapterNode(const ::std::string& adapterId) const = 0; - - /** - * Get the adapter information for the replica group or adapter with the given id. - * @param id The adapter id. - * @return A sequence of adapter information structures. If the given id refers to an adapter, this sequence will - * contain only one element. If the given id refers to a replica group, the sequence will contain the adapter - * information of each member of the replica group. - * @throws IceGrid::AdapterNotExistException Raised if the adapter or replica group doesn't exist. - */ - virtual AdapterInfoSeq getAdapterInfo(const ::std::string& id) const = 0; - - /** - * Get the object info for the object with the given identity. - * @param id The identity of the object. - * @return The object info. - * @throws IceGrid::ObjectNotRegisteredException Raised if the object isn't registered with the registry. - */ - virtual ObjectInfo getObjectInfo(const ::Ice::Identity& id) const = 0; - - /** - * Get the node information for the node with the given name. - * @param name The node name. - * @return The node information. - * @throws IceGrid::NodeNotExistException Raised if the node doesn't exist. - * @throws IceGrid::NodeUnreachableException Raised if the node could not be reached. - */ - virtual NodeInfo getNodeInfo(const ::std::string& name) const = 0; - - /** - * Get the load averages of the node. - * @param name The node name. - * @return The node load information. - * @throws IceGrid::NodeNotExistException Raised if the node doesn't exist. - * @throws IceGrid::NodeUnreachableException Raised if the node could not be reached. - */ - virtual LoadInfo getNodeLoad(const ::std::string& name) const = 0; - - /** - * Get the property value for the given property and adapter. The property is looked up in the server or service - * descriptor where the adapter is defined. - * @param adapterId The adapter ID - * @param name The name of the property. - * @return The property value. - * @throws IceGrid::AdapterNotExistException Raised if the adapter doesn't exist. - */ - virtual ::std::string getPropertyForAdapter(const ::std::string& adapterId, const ::std::string& name) const = 0; - - /** - * Add a replica group filter. - * @param id The identifier of the filter. This identifier must match the value of the "filter" attribute - * specified in the replica group descriptor. To filter dynamically registered replica groups, you should use the - * empty filter id. - * @param filter The filter implementation. - */ - virtual void addReplicaGroupFilter(const ::std::string& id, const ReplicaGroupFilterPtr& filter) noexcept = 0; - - /** - * Remove a replica group filter. - * @param id The identifier of the filter. - * @param filter The filter implementation. - * @return True of the filter was removed, false otherwise. - */ - virtual bool removeReplicaGroupFilter(const ::std::string& id, const ReplicaGroupFilterPtr& filter) noexcept = 0; - - /** - * Add a type filter. - * @param type The type to register this filter with. - * @param filter The filter implementation. - */ - virtual void addTypeFilter(const ::std::string& type, const TypeFilterPtr& filter) noexcept = 0; - - /** - * Remove a type filter. - * @param type The type to register this filter with. - * @param filter The filter implementation. - * @return True of the filter was removed, false otherwise. - */ - virtual bool removeTypeFilter(const ::std::string& type, const TypeFilterPtr& filter) noexcept = 0; -}; - -/// \cond INTERNAL -inline bool operator==(const RegistryPluginFacade& lhs, const RegistryPluginFacade& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const RegistryPluginFacade& lhs, const RegistryPluginFacade& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceIAP/ConnectionInfo.h b/cpp/include/IceIAP/ConnectionInfo.h index aae310246d2..8e0beff214a 100644 --- a/cpp/include/IceIAP/ConnectionInfo.h +++ b/cpp/include/IceIAP/ConnectionInfo.h @@ -5,7 +5,6 @@ #ifndef __IceIAP_ConnectionInfo_h__ #define __IceIAP_ConnectionInfo_h__ -#include #include #include #include @@ -14,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -29,8 +27,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceIAP { @@ -110,13 +106,6 @@ class ICE_CLASS(ICEIAP_API) ConnectionInfo : public ::Ice::ConnectionInfo } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace IceIAP { @@ -126,113 +115,4 @@ using ConnectionInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceIAP -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICEIAP_API ::Ice::LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -} - -namespace IceIAP -{ - -/** - * Provides access to the connection details of an IAP connection - * \headerfile IceIAP/IceIAP.h - */ -class ICEIAP_API ConnectionInfo : public ::Ice::ConnectionInfo -{ -public: - - typedef ConnectionInfoPtr PointerType; - - virtual ~ConnectionInfo(); - - ConnectionInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param name The accessory name. - * @param manufacturer The accessory manufacturer. - * @param modelNumber The accessory model number. - * @param firmwareRevision The accessory firmare revision. - * @param hardwareRevision The accessory hardware revision. - * @param protocol The protocol used by the accessory. - */ - ConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& name, const ::std::string& manufacturer, const ::std::string& modelNumber, const ::std::string& firmwareRevision, const ::std::string& hardwareRevision, const ::std::string& protocol) : - ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId), - name(name), - manufacturer(manufacturer), - modelNumber(modelNumber), - firmwareRevision(firmwareRevision), - hardwareRevision(hardwareRevision), - protocol(protocol) - { - } - - ConnectionInfo(const ConnectionInfo&) = default; - ConnectionInfo& operator=(const ConnectionInfo&) = default; - - /** - * The accessory name. - */ - ::std::string name; - /** - * The accessory manufacturer. - */ - ::std::string manufacturer; - /** - * The accessory model number. - */ - ::std::string modelNumber; - /** - * The accessory firmare revision. - */ - ::std::string firmwareRevision; - /** - * The accessory hardware revision. - */ - ::std::string hardwareRevision; - /** - * The protocol used by the accessory. - */ - ::std::string protocol; -}; - -/// \cond INTERNAL -inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceIAP/EndpointInfo.h b/cpp/include/IceIAP/EndpointInfo.h index ec146eb658e..68badd0241a 100644 --- a/cpp/include/IceIAP/EndpointInfo.h +++ b/cpp/include/IceIAP/EndpointInfo.h @@ -5,7 +5,6 @@ #ifndef __IceIAP_EndpointInfo_h__ #define __IceIAP_EndpointInfo_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -28,8 +26,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceIAP { @@ -99,13 +95,6 @@ class ICE_CLASS(ICEIAP_API) EndpointInfo : public ::Ice::EndpointInfo } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace IceIAP { @@ -115,103 +104,4 @@ using EndpointInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceIAP -{ - -class EndpointInfo; -/// \cond INTERNAL -ICEIAP_API ::Ice::LocalObject* upCast(EndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< EndpointInfo> EndpointInfoPtr; - -} - -namespace IceIAP -{ - -/** - * Provides access to an IAP endpoint information. - * \headerfile IceIAP/IceIAP.h - */ -class ICEIAP_API EndpointInfo : public ::Ice::EndpointInfo -{ -public: - - typedef EndpointInfoPtr PointerType; - - virtual ~EndpointInfo(); - - EndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint of null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - * @param manufacturer The accessory manufacturer or empty to not match against a manufacturer. - * @param modelNumber The accessory model number or empty to not match against a model number. - * @param name The accessory name or empty to not match against the accessory name. - * @param protocol The protocol supported by the accessory. - */ - EndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress, const ::std::string& manufacturer, const ::std::string& modelNumber, const ::std::string& name, const ::std::string& protocol) : - ::Ice::EndpointInfo(underlying, timeout, compress), - manufacturer(manufacturer), - modelNumber(modelNumber), - name(name), - protocol(protocol) - { - } - - EndpointInfo(const EndpointInfo&) = default; - EndpointInfo& operator=(const EndpointInfo&) = default; - - /** - * The accessory manufacturer or empty to not match against - * a manufacturer. - */ - ::std::string manufacturer; - /** - * The accessory model number or empty to not match against - * a model number. - */ - ::std::string modelNumber; - /** - * The accessory name or empty to not match against - * the accessory name. - */ - ::std::string name; - /** - * The protocol supported by the accessory. - */ - ::std::string protocol; -}; - -/// \cond INTERNAL -inline bool operator==(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IcePatch2/ClientUtil.h b/cpp/include/IcePatch2/ClientUtil.h index 10be3e3c7fa..e5b3d6d8a18 100644 --- a/cpp/include/IcePatch2/ClientUtil.h +++ b/cpp/include/IcePatch2/ClientUtil.h @@ -20,9 +20,6 @@ namespace IcePatch2 // on the patching. // class ICEPATCH2_API PatcherFeedback -#ifndef ICE_CPP11_MAPPING - : public IceUtil::Shared -#endif // !ICE_CPP11_MAPPING { public: @@ -68,19 +65,13 @@ class ICEPATCH2_API PatcherFeedback virtual bool patchProgress(Ice::Long, Ice::Long, Ice::Long, Ice::Long) = 0; virtual bool patchEnd() = 0; }; -#ifdef ICE_CPP11_MAPPING typedef std::shared_ptr PatcherFeedbackPtr; -#else -typedef IceUtil::Handle PatcherFeedbackPtr; -#endif + // // IcePatch2 clients instantiate the IcePatch2::Patcher class to patch // a given local data directory. // class ICEPATCH2_API Patcher -#ifndef ICE_CPP11_MAPPING - : public IceUtil::Shared -#endif { public: @@ -115,21 +106,13 @@ class ICEPATCH2_API Patcher // virtual void finish() = 0; }; - -#ifdef ICE_CPP11_MAPPING typedef std::shared_ptr PatcherPtr; -#else -typedef IceUtil::Handle PatcherPtr; -#endif // ICE_CPP11_MAPPING // // IcePatch2 clients instantiate the IcePatch2::Patcher class // using the patcher factory. // class ICEPATCH2_API PatcherFactory -#ifndef ICE_CPP11_MAPPING - : public IceUtil::noncopyable -#endif // !ICE_CPP11_MAPPING { public: diff --git a/cpp/include/IceSSL/ConnectionInfo.h b/cpp/include/IceSSL/ConnectionInfo.h index d7d3c209e72..f3516d946bd 100644 --- a/cpp/include/IceSSL/ConnectionInfo.h +++ b/cpp/include/IceSSL/ConnectionInfo.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -30,8 +29,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceSSL { @@ -109,95 +106,5 @@ using ConnectionInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceSSL -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICESSL_API ::Ice::LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -} - -namespace IceSSL -{ - -/** - * Provides access to the connection details of an SSL connection - * \headerfile IceSSL/IceSSL.h - */ -class ICESSL_API ConnectionInfo : public ::Ice::ConnectionInfo -{ -public: - - typedef ConnectionInfoPtr PointerType; - - virtual ~ConnectionInfo(); - - ConnectionInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling transport or null if there's no underlying transport. - * @param incoming Whether or not the connection is an incoming or outgoing connection. - * @param adapterName The name of the adapter associated with the connection. - * @param connectionId The connection id. - * @param cipher The negotiated cipher suite. - * @param certs The certificate chain. - * @param verified The certificate chain verification status. - */ - ConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& cipher, const std::vector& certs, bool verified) : - ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId), - cipher(cipher), - certs(certs), - verified(verified) - { - } - - ConnectionInfo(const ConnectionInfo&) = default; - ConnectionInfo& operator=(const ConnectionInfo&) = default; - - /** - * The negotiated cipher suite. - */ - ::std::string cipher; - /** - * The certificate chain. - */ - std::vector certs; - /** - * The certificate chain verification status. - */ - bool verified; -}; - -/// \cond INTERNAL -inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/IceSSL/ConnectionInfoF.h b/cpp/include/IceSSL/ConnectionInfoF.h index 995ddad3144..7c8beecb8af 100644 --- a/cpp/include/IceSSL/ConnectionInfoF.h +++ b/cpp/include/IceSSL/ConnectionInfoF.h @@ -5,7 +5,6 @@ #ifndef __IceSSL_ConnectionInfoF_h__ #define __IceSSL_ConnectionInfoF_h__ -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include #include #include @@ -27,8 +25,6 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceSSL { @@ -52,27 +48,4 @@ using ConnectionInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceSSL -{ - -class ConnectionInfo; -/// \cond INTERNAL -ICESSL_API ::Ice::LocalObject* upCast(ConnectionInfo*); -/// \endcond -typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr; - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - -#include #endif diff --git a/cpp/include/IceSSL/EndpointInfo.h b/cpp/include/IceSSL/EndpointInfo.h index 1ec16043d15..c767bcadd68 100644 --- a/cpp/include/IceSSL/EndpointInfo.h +++ b/cpp/include/IceSSL/EndpointInfo.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -28,18 +27,10 @@ # endif #endif -#ifdef ICE_CPP11_MAPPING // C++11 mapping - namespace IceSSL { class EndpointInfo; - -} - -namespace IceSSL -{ - /** * Provides access to an SSL endpoint information. * \headerfile IceSSL/IceSSL.h @@ -71,13 +62,6 @@ class ICE_CLASS(ICESSL_API) EndpointInfo : public ::Ice::EndpointInfo } -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - /// \cond INTERNAL namespace IceSSL { @@ -87,75 +71,5 @@ using EndpointInfoPtr = ::std::shared_ptr; } /// \endcond -#else // C++98 mapping - -namespace IceSSL -{ - -class EndpointInfo; -/// \cond INTERNAL -ICESSL_API ::Ice::LocalObject* upCast(EndpointInfo*); -/// \endcond -typedef ::IceInternal::Handle< EndpointInfo> EndpointInfoPtr; - -} - -namespace IceSSL -{ - -/** - * Provides access to an SSL endpoint information. - * \headerfile IceSSL/IceSSL.h - */ -class ICESSL_API EndpointInfo : public ::Ice::EndpointInfo -{ -public: - - typedef EndpointInfoPtr PointerType; - - virtual ~EndpointInfo(); - - EndpointInfo() - { - } - - /** - * One-shot constructor to initialize all data members. - * @param underlying The information of the underyling endpoint or null if there's no underlying endpoint. - * @param timeout The timeout for the endpoint in milliseconds. - * @param compress Specifies whether or not compression should be used if available when using this endpoint. - */ - EndpointInfo(const ::Ice::EndpointInfoPtr& underlying, ::Ice::Int timeout, bool compress) : - ::Ice::EndpointInfo(underlying, timeout, compress) - { - } - - EndpointInfo(const EndpointInfo&) = default; - EndpointInfo& operator=(const EndpointInfo&) = default; -}; - -/// \cond INTERNAL -inline bool operator==(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) == static_cast(rhs); -} - -inline bool operator<(const EndpointInfo& lhs, const EndpointInfo& rhs) -{ - return static_cast(lhs) < static_cast(rhs); -} -/// \endcond - -} - -/// \cond STREAM -namespace Ice -{ - -} -/// \endcond - -#endif - #include #endif diff --git a/cpp/include/IceSSL/Plugin.h b/cpp/include/IceSSL/Plugin.h index 953d14f2aea..500a8b725ed 100644 --- a/cpp/include/IceSSL/Plugin.h +++ b/cpp/include/IceSSL/Plugin.h @@ -9,12 +9,7 @@ #include #include -#ifdef ICE_CPP11_MAPPING -# include -#else -# include -#endif - +#include #include #include @@ -34,11 +29,7 @@ namespace IceSSL /** * The reason for an IceSSL certificate verification failure. */ -#ifdef ICE_CPP11_MAPPING enum class TrustError : unsigned char -#else -enum TrustError -#endif { /** The certification verification succeed */ NoError = 0, @@ -167,14 +158,6 @@ class ICESSL_API CertificateReadException : public IceUtil::ExceptionHelper -#else - public virtual IceUtil::Shared -#endif +class ICESSL_API Certificate : public std::enable_shared_from_this { public: @@ -449,11 +408,7 @@ class ICESSL_API Certificate : * @param t The target time. * @return True if the certificate is valid, false otherwise. */ -#ifdef ICE_CPP11_MAPPING virtual bool checkValidity(const std::chrono::system_clock::time_point& t) const = 0; -#else - virtual bool checkValidity(const IceUtil::Time& t) const = 0; -#endif /** * Returns the value of the key usage extension. The flags KEY_USAGE_DIGITAL_SIGNATURE, @@ -477,21 +432,13 @@ class ICESSL_API Certificate : * Obtains the not-after validity time. * @return The time after which this certificate is invalid. */ -#ifdef ICE_CPP11_MAPPING virtual std::chrono::system_clock::time_point getNotAfter() const = 0; -#else - virtual IceUtil::Time getNotAfter() const = 0; -#endif /** * Obtains the not-before validity time. * @return The time at which this certificate is valid. */ -#ifdef ICE_CPP11_MAPPING virtual std::chrono::system_clock::time_point getNotBefore() const = 0; -#else - virtual IceUtil::Time getNotBefore() const = 0; -#endif /** * Obtains the serial number. This is an arbitrarily large number. @@ -590,61 +537,6 @@ class ICESSL_API Certificate : static CertificatePtr decode(const std::string& str); }; -#ifndef ICE_CPP11_MAPPING // C++98 mapping - -/** - * An application can customize the certificate verification process - * by implementing the CertificateVerifier interface. - * \headerfile IceSSL/IceSSL.h - */ -class ICESSL_API CertificateVerifier : public IceUtil::Shared -{ -public: - - virtual ~CertificateVerifier(); - - /** - * Determines whether to accept a certificate. - * @param info Information about the connection. - * @return False if the connection should be rejected, or true to allow it. - */ - virtual bool verify(const ConnectionInfoPtr& info) = 0; -}; -typedef IceUtil::Handle CertificateVerifierPtr; - -/** - * In order to read an encrypted file, such as one containing a - * private key, OpenSSL requests a password from IceSSL. The password - * can be defined using an IceSSL configuration property, but a - * plain-text password is a security risk. If a password is not - * supplied via configuration, IceSSL allows OpenSSL to prompt the - * user interactively. This may not be desirable (or even possible), - * so the application can supply an implementation of PasswordPrompt - * to take responsibility for obtaining the password. - * - * Note that the password is needed during plug-in initialization, so - * in general you will need to delay initialization (by defining - * IceSSL.DelayInit=1), configure the PasswordPrompt, then manually - * initialize the plug-in. - * \headerfile IceSSL/IceSSL.h - */ -class ICESSL_API PasswordPrompt : public IceUtil::Shared -{ -public: - - virtual ~PasswordPrompt(); - - /** - * Obtains the password. This method may be invoked repeatedly, such as when - * several encrypted files are opened, or when multiple password - * attempts are allowed. - * @return The clear-text password. - */ - virtual std::string getPassword() = 0; -}; -typedef IceUtil::Handle PasswordPromptPtr; -#endif - /** * Represents the IceSSL plug-in object. * \headerfile IceSSL/IceSSL.h @@ -660,22 +552,14 @@ class ICESSL_API Plugin : public Ice::Plugin * before any connections are established. * @param v The verifier. */ -#ifdef ICE_CPP11_MAPPING virtual void setCertificateVerifier(std::function&)> v) = 0; -#else - virtual void setCertificateVerifier(const CertificateVerifierPtr& v) = 0; -#endif /** * Establish the password prompt object. This must be done before * the plug-in is initialized. * @param p The password prompt. */ -#ifdef ICE_CPP11_MAPPING virtual void setPasswordPrompt(std::function p) = 0; -#else - virtual void setPasswordPrompt(const PasswordPromptPtr& p) = 0; -#endif /** * Load the certificate from a file. The certificate must use the diff --git a/cpp/include/IceUtil/Config.h b/cpp/include/IceUtil/Config.h index 5334db4300f..ed45a4f5cc4 100644 --- a/cpp/include/IceUtil/Config.h +++ b/cpp/include/IceUtil/Config.h @@ -217,23 +217,14 @@ # if !defined(ICE_STATIC_LIBS) && (!defined(_DLL) || !defined(_MT)) # error "Only multi-threaded DLL libraries can be used with Ice!" # endif - -# ifdef ICE_CPP11_MAPPING -# if defined(_DEBUG) -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "++11D.lib" -# else -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "++11.lib" -# endif +# if defined(_DEBUG) +# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "D.lib" # else -# if defined(_DEBUG) -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "D.lib" -# else -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION ".lib" -# endif +# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION ".lib" # endif // -// Automatically link with Ice[D|++11|++11D].lib +// Automatically link with Ice[D].lib // # if !defined(ICE_BUILDING_ICE) && !defined(ICE_BUILDING_SLICE_COMPILERS) # pragma comment(lib, ICE_LIBNAME("Ice")) @@ -283,10 +274,7 @@ typedef long long Int64; } -// -// Macros to facilitate C++98 -> C++11 transition -// -#ifdef ICE_CPP11_MAPPING // C++11 mapping +// TODO remove the helper macros # include # include # define ICE_HANDLE ::std::shared_ptr @@ -308,26 +296,5 @@ typedef long long Int64; # define ICE_DELEGATE(T) T # define ICE_IN(...) __VA_ARGS__ # define ICE_SET_EXCEPTION_FROM_CLONE(T, V) T = V -#else // C++98 mapping -# define ICE_HANDLE ::IceUtil::Handle -# define ICE_INTERNAL_HANDLE ::IceInternal::Handle -# define ICE_SHARED_PTR ::Ice::SharedPtr -# define ICE_PROXY_HANDLE ::IceInternal::ProxyHandle -# define ICE_MAKE_SHARED(T, ...) new T(__VA_ARGS__) -# define ICE_DEFINE_PTR(TPtr, T) typedef ::IceUtil::Handle TPtr -# define ICE_DEFINE_SHARED_PTR(TPtr, T) using TPtr = ::Ice::SharedPtr -# define ICE_ENUM(CLASS,ENUMERATOR) ENUMERATOR -# define ICE_SCOPED_ENUM(CLASS,ENUMERATOR) CLASS##ENUMERATOR -# define ICE_NULLPTR 0 -# define ICE_DYNAMIC_CAST(T,V) T##Ptr::dynamicCast(V) -# define ICE_SHARED_FROM_THIS this -# define ICE_SHARED_FROM_CONST_THIS(T) const_cast(this) -# define ICE_GET_SHARED_FROM_THIS(p) p -# define ICE_CHECKED_CAST(T, ...) T::checkedCast(__VA_ARGS__) -# define ICE_UNCHECKED_CAST(T, ...) T::uncheckedCast(__VA_ARGS__) -# define ICE_DELEGATE(T) T##Ptr -# define ICE_IN(...) const __VA_ARGS__& -# define ICE_SET_EXCEPTION_FROM_CLONE(T, V) T.reset(V) -#endif #endif diff --git a/cpp/include/IceUtil/ConsoleUtil.h b/cpp/include/IceUtil/ConsoleUtil.h index 3b5d9165aa3..c608a7bedb3 100644 --- a/cpp/include/IceUtil/ConsoleUtil.h +++ b/cpp/include/IceUtil/ConsoleUtil.h @@ -18,9 +18,6 @@ class ConsoleUtil; ICE_DEFINE_PTR(ConsoleUtilPtr, ConsoleUtil); class ICE_API ConsoleUtil -# ifndef ICE_CPP11_MAPPING - : public IceUtil::Shared -# endif { public: diff --git a/cpp/include/IceUtil/CtrlCHandler.h b/cpp/include/IceUtil/CtrlCHandler.h index 079306831a4..9c379c906f6 100644 --- a/cpp/include/IceUtil/CtrlCHandler.h +++ b/cpp/include/IceUtil/CtrlCHandler.h @@ -17,11 +17,7 @@ namespace IceUtil * functions that are not async-signal safe. * @param sig The signal number that occurred. */ -#ifdef ICE_CPP11_MAPPING using CtrlCHandlerCallback = std::function; -#else -typedef void (*CtrlCHandlerCallback)(int sig); -#endif /** * Provides a portable way to handle Ctrl-C and Ctrl-C like signals. @@ -81,10 +77,6 @@ class ICE_API CtrlCHandlerException : public ExceptionHelper ice_clone() const; -#else - /** - * Returns a shallow polymorphic copy of this exception. - * @return A pointer to the new shallow copy. The caller owns the returned object. - */ - virtual Exception* ice_clone() const = 0; - - ICE_DEPRECATED_API("ice_name() is deprecated, use ice_id() instead.") - std::string ice_name() const; -#endif /** * Throws this exception. @@ -96,11 +85,9 @@ class ICE_API Exception : public std::exception protected: -#ifdef ICE_CPP11_MAPPING /// \cond INTERNAL virtual Exception* ice_cloneImpl() const = 0; /// \endcond -#endif private: @@ -112,8 +99,6 @@ class ICE_API Exception : public std::exception ICE_API std::ostream& operator<<(std::ostream&, const Exception&); -#ifdef ICE_CPP11_MAPPING - /** * Helper template for the implementation of Ice::Exception. * It implements ice_clone and ice_throw. @@ -146,33 +131,6 @@ class ExceptionHelper : public B /// \endcond }; -#else // C++98 mapping - -/** - * Helper template for the implementation of Ice::Exception. It implements ice_throw. - * \headerfile Ice/Ice.h - */ -template -class ExceptionHelper : public Exception -{ -public: - - ExceptionHelper() - { - } - - ExceptionHelper(const char* file, int line) : Exception(file, line) - { - } - - virtual void ice_throw() const - { - throw static_cast(*this); - } -}; - -#endif - /** * This exception indicates an attempt to dereference a null IceUtil::Handle or * IceInternal::Handle. @@ -184,10 +142,6 @@ class ICE_API NullHandleException : public ExceptionHelper NullHandleException(const char*, int); virtual std::string ice_id() const; - -#ifndef ICE_CPP11_MAPPING - virtual NullHandleException* ice_clone() const; -#endif }; /** @@ -206,10 +160,6 @@ class ICE_API IllegalArgumentException : public ExceptionHelper virtual std::string ice_id() const; virtual void ice_print(std::ostream&) const; -#ifndef ICE_CPP11_MAPPING - virtual SyscallException* ice_clone() const; -#endif - /** * Provides the error number returned by the system call. * @return The error number. @@ -278,36 +220,9 @@ class ICE_API SyscallException : public ExceptionHelper const int _error; }; -#ifdef ICE_CPP11_MAPPING - template using SyscallExceptionHelper = ExceptionHelper; -#else // C++98 mapping - -/** -* Helper template for the implementation of SyscallException. It implements -* ice_throw. -* \headerfile Ice/Ice.h -*/ -template -class SyscallExceptionHelper : public SyscallException -{ -public: - - SyscallExceptionHelper(const char* file, int line, int errorCode) : - SyscallException(file, line, errorCode) - { - } - - virtual void ice_throw() const - { - throw static_cast(*this); - } -}; - -#endif - /** * This exception indicates the failure to lock a file. * \headerfile Ice/Ice.h @@ -321,10 +236,6 @@ class ICE_API FileLockException : public ExceptionHelper virtual std::string ice_id() const; virtual void ice_print(std::ostream&) const; -#ifndef ICE_CPP11_MAPPING - virtual FileLockException* ice_clone() const; -#endif - /** * Returns the path to the file. * @return The file path. @@ -354,10 +265,6 @@ class ICE_API OptionalNotSetException : public ExceptionHelper #include #include -#include #include #include #include diff --git a/cpp/include/IceUtil/Options.h b/cpp/include/IceUtil/Options.h index 0790e394f51..1f6ba3c59d7 100644 --- a/cpp/include/IceUtil/Options.h +++ b/cpp/include/IceUtil/Options.h @@ -24,10 +24,6 @@ class ICE_API APIException : public IceUtil::ExceptionHelper APIException(const char*, int, const ::std::string&); virtual ::std::string ice_id() const; virtual void ice_print(std::ostream&) const; -#ifndef ICE_CPP11_MAPPING - virtual APIException* ice_clone() const; -#endif - ::std::string reason; }; @@ -41,10 +37,6 @@ class ICE_API BadOptException : public IceUtil::ExceptionHelper virtual ::std::string ice_id() const; virtual void ice_print(std::ostream&) const; -#ifndef ICE_CPP11_MAPPING - virtual BadOptException* ice_clone() const; -#endif - ::std::string reason; }; diff --git a/cpp/include/IceUtil/ResourceConfig.h b/cpp/include/IceUtil/ResourceConfig.h index 47790d3b92d..61ba98722c1 100644 --- a/cpp/include/IceUtil/ResourceConfig.h +++ b/cpp/include/IceUtil/ResourceConfig.h @@ -14,18 +14,10 @@ #define ICE_COPYRIGHT "\251 ZeroC, Inc.\0" #define ICE_PRODUCT_NAME "Ice\0" -#ifdef ICE_CPP11_MAPPING -# if defined(_DEBUG) -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "++11D" -# else -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "++11" -# endif +#if defined(_DEBUG) +# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "D" #else -# if defined(_DEBUG) -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "D" -# else -# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "" -# endif +# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "" #endif #ifndef DEBUG diff --git a/cpp/include/IceUtil/ScopedArray.h b/cpp/include/IceUtil/ScopedArray.h deleted file mode 100644 index 9760134457d..00000000000 --- a/cpp/include/IceUtil/ScopedArray.h +++ /dev/null @@ -1,97 +0,0 @@ -// -// Copyright (c) ZeroC, Inc. All rights reserved. -// - -#ifndef ICE_UTIL_SCOPED_ARRAY_H -#define ICE_UTIL_SCOPED_ARRAY_H - -#include - -#ifndef ICE_CPP11_MAPPING - -// -// Only for the C++98 mapping -// - -namespace IceUtil -{ - -template -class ScopedArray -{ -public: - - explicit ScopedArray(T* ptr = 0) : - _ptr(ptr) - { - } - - ScopedArray(const ScopedArray& other) - { - _ptr = other._ptr; - const_cast(other)._ptr = 0; - } - - ~ScopedArray() - { - if(_ptr != 0) - { - delete[] _ptr; - } - } - - void reset(T* ptr = 0) - { - assert(ptr == 0 || ptr != _ptr); - if(_ptr != 0) - { - delete[] _ptr; - } - _ptr = ptr; - } - - ScopedArray& operator=(const ScopedArray& other) - { - if(_ptr != 0) - { - delete[] _ptr; - } - _ptr = other._ptr; - const_cast(other)._ptr = 0; - return *this; - } - - T& operator[](size_t i) const - { - assert(_ptr != 0); - return _ptr[i]; - } - - T* get() const - { - return _ptr; - } - - void swap(ScopedArray& a) - { - T* tmp = a._ptr; - a._ptr = _ptr; - _ptr = tmp; - } - - T* release() - { - T* tmp = _ptr; - _ptr = 0; - return tmp; - } - -private: - - T* _ptr; -}; - -} // End of namespace IceUtil - -#endif -#endif diff --git a/cpp/include/IceUtil/StringConverter.h b/cpp/include/IceUtil/StringConverter.h index ea233ed05f4..d485e7d746d 100644 --- a/cpp/include/IceUtil/StringConverter.h +++ b/cpp/include/IceUtil/StringConverter.h @@ -44,9 +44,6 @@ class ICE_API UTF8Buffer */ template class BasicStringConverter -#ifndef ICE_CPP11_MAPPING - : public IceUtil::Shared -#endif { public: diff --git a/cpp/include/IceUtil/StringUtil.h b/cpp/include/IceUtil/StringUtil.h index 0891f00fab4..3ec7cb1da7f 100644 --- a/cpp/include/IceUtil/StringUtil.h +++ b/cpp/include/IceUtil/StringUtil.h @@ -14,12 +14,7 @@ namespace IceUtilInternal // // Must be kept in sync with Ice::ToStringMode // -#ifdef ICE_CPP11_MAPPING -enum class ToStringMode : unsigned char -#else -enum ToStringMode -#endif -{ Unicode, ASCII, Compat }; +enum class ToStringMode : unsigned char{ Unicode, ASCII, Compat }; // // Add escape sequences (like "\n", or "\123") to the input string diff --git a/cpp/include/IceUtil/ThreadException.h b/cpp/include/IceUtil/ThreadException.h index 0b13fcffe6b..62fb2d085f8 100644 --- a/cpp/include/IceUtil/ThreadException.h +++ b/cpp/include/IceUtil/ThreadException.h @@ -17,10 +17,6 @@ class ICE_API ThreadSyscallException : public SyscallExceptionHelper @@ -29,10 +25,6 @@ class ICE_API ThreadLockedException : public ExceptionHelper @@ -41,11 +33,6 @@ class ICE_API ThreadStartedException : public ExceptionHelper @@ -54,10 +41,6 @@ class ICE_API ThreadNotStartedException : public ExceptionHelper @@ -66,10 +49,6 @@ class ICE_API BadThreadControlException : public ExceptionHelper @@ -80,10 +59,6 @@ class ICE_API InvalidTimeoutException : public ExceptionHelper TimerPtr; // code at a specific time or repeatedly. // class ICE_API TimerTask -#ifndef ICE_CPP11_MAPPING - : public virtual IceUtil::Shared -#endif { public: diff --git a/cpp/msbuild/ice.cpp.props b/cpp/msbuild/ice.cpp.props index 1b89fd52c3f..b5612063a25 100644 --- a/cpp/msbuild/ice.cpp.props +++ b/cpp/msbuild/ice.cpp.props @@ -1,5 +1,10 @@ + + + cpp + yes + - + Disabled _DEBUG;%(PreprocessorDefinitions) @@ -126,7 +131,7 @@ - + MaxSpeed NDEBUG;%(PreprocessorDefinitions) @@ -138,20 +143,6 @@ - - - - ICE_CPP11_MAPPING;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - - ICE_CPP11_MAPPING;%(PreprocessorDefinitions) - - - @@ -171,9 +162,9 @@ - + - $(IceHome)\cpp\lib\$(Platform)\$(IceConfiguration)\$(TargetName).lib + $(IceHome)\cpp\lib\$(Platform)\$(Configuration)\$(TargetName).lib @@ -195,37 +186,21 @@ - - - - - $(ProjectName.Replace("++11", "$(IceSoVersion)++11d")) - - - - $(ProjectName.Replace("++11", "$(IceSoVersion)++11")) - - - - - - - $(ProjectName)$(IceSoVersion)d - + + $(ProjectName)$(IceSoVersion)d + - - $(ProjectName)$(IceSoVersion) - + + $(ProjectName)$(IceSoVersion) + - - $(ProjectName)d - + + $(ProjectName)d + - - $(ProjectName) - - - + + $(ProjectName) + - + @@ -42,7 +36,7 @@ + Command="symchk /r $(MSBuildThisFileDirectory)packages\zeroc.ice.$(DefaultPlatformToolset).$(IceJSONVersion)\build\native\bin\$(Platform)\$(Configuration)\* /s $(SymbolServer)"> @@ -61,21 +55,21 @@ - + Configuration=Debug;Platform=Win32;VisualStudioVersion=$(VisualStudioVersion) - + Configuration=Debug;Platform=x64;VisualStudioVersion=$(VisualStudioVersion) - + Configuration=Release;Platform=Win32;VisualStudioVersion=$(VisualStudioVersion) - + Configuration=Release;Platform=x64;VisualStudioVersion=$(VisualStudioVersion) - + Configuration=Debug;Platform=Win32;VisualStudioVersion=$(VisualStudioVersion) @@ -91,23 +85,7 @@ - - - - Configuration=Cpp11-Debug;Platform=Win32 - - - Configuration=Cpp11-Debug;Platform=x64 - - - Configuration=Cpp11-Release;Platform=Win32 - - - Configuration=Cpp11-Release;Platform=x64 - - - - + Configuration=Debug;Platform=Win32 @@ -122,30 +100,14 @@ Configuration=Release;Platform=x64 - - - - - Configuration=Cpp11-Debug;Platform=Win32 - - - Configuration=Cpp11-Debug;Platform=x64 - - - Configuration=Cpp11-Release;Platform=Win32 - - - Configuration=Cpp11-Release;Platform=x64 - - $(Platform)|$(Configuration) - + - + Configuration=$(Configuration);Platform=$(Platform);VisualStudioVersion=$(VisualStudioVersion) @@ -154,25 +116,12 @@ - - - - Configuration=Cpp11-$(Configuration);Platform=$(Platform) - - - Configuration=$(Configuration);Platform=$(Platform) - - - - Configuration=Cpp11-$(Configuration);Platform=$(Platform) - - diff --git a/cpp/msbuild/ice.v143.sln b/cpp/msbuild/ice.sln similarity index 65% rename from cpp/msbuild/ice.v143.sln rename to cpp/msbuild/ice.sln index 49d054baa16..858b1fdb66a 100644 --- a/cpp/msbuild/ice.v143.sln +++ b/cpp/msbuild/ice.sln @@ -45,115 +45,78 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slice2py", "..\src\slice2py {57CD6AC2-0C9D-4648-9E9D-5DF60C90F18A} = {57CD6AC2-0C9D-4648-9E9D-5DF60C90F18A} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ice++11", "..\src\Ice\msbuild\ice++11\ice++11.vcxproj", "{3AB9772C-6113-4F1C-90FB-5368E7486C11}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ice", "..\src\Ice\msbuild\ice\ice.vcxproj", "{3AB9772C-6113-4F1C-90FB-5368E7486C11}" ProjectSection(ProjectDependencies) = postProject {763F88BB-37FD-4BCC-9D13-A7103596EA06} = {763F88BB-37FD-4BCC-9D13-A7103596EA06} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icexml++11", "..\src\IceXML\msbuild\icexml.vcxproj", "{90EC26E8-AFFA-4E44-B068-AB5849A96FDD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icexml", "..\src\IceXML\msbuild\icexml.vcxproj", "{90EC26E8-AFFA-4E44-B068-AB5849A96FDD}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ice", "..\src\Ice\msbuild\ice\ice.vcxproj", "{6485EC94-6B47-428D-B42D-AAA11F08DB59}" - ProjectSection(ProjectDependencies) = postProject - {4D1A5110-3176-44BA-8BBB-57BF56519B9F} = {4D1A5110-3176-44BA-8BBB-57BF56519B9F} - {763F88BB-37FD-4BCC-9D13-A7103596EA06} = {763F88BB-37FD-4BCC-9D13-A7103596EA06} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2++11", "..\src\Glacier2Lib\msbuild\glacier2++11\glacier2++11.vcxproj", "{2940A3C2-A9BA-44AA-AF65-00479C783407}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2", "..\src\Glacier2Lib\msbuild\glacier2\glacier2.vcxproj", "{2940A3C2-A9BA-44AA-AF65-00479C783407}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icedb++11", "..\src\IceDB\msbuild\icedb.vcxproj", "{E8ACC848-F7DA-4B29-B52F-81D66E7D397E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icedb", "..\src\IceDB\msbuild\icedb.vcxproj", "{E8ACC848-F7DA-4B29-B52F-81D66E7D397E}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestorm", "..\src\IceStormLib\msbuild\icestorm\icestorm.vcxproj", "{E6864F0D-B2ED-406A-B98C-F3668A680005}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestorm++11", "..\src\IceStormLib\msbuild\icestorm++11\icestorm++11.vcxproj", "{A28E5839-97F3-4874-BB77-E425787CF2ED}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestorm", "..\src\IceStormLib\msbuild\icestorm\icestorm.vcxproj", "{A28E5839-97F3-4874-BB77-E425787CF2ED}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2", "..\src\IcePatch2Lib\msbuild\icepatch2\icepatch2.vcxproj", "{994ADD25-20A0-4715-A3EC-9F86AFD481D0}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegrid", "..\src\IceGridLib\msbuild\icegrid\icegrid.vcxproj", "{18BF13D3-85D3-43A5-8C96-E52EB0672F72}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegrid++11", "..\src\IceGridLib\msbuild\icegrid++11\icegrid++11.vcxproj", "{142A9562-8DEC-4B1B-9B15-2CAD8304447B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegrid", "..\src\IceGridLib\msbuild\icegrid\icegrid.vcxproj", "{142A9562-8DEC-4B1B-9B15-2CAD8304447B}" ProjectSection(ProjectDependencies) = postProject {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icediscovery++11", "..\src\IceDiscovery\msbuild\icediscovery++11\icediscovery++11.vcxproj", "{270BB666-62FB-49ED-BFA2-8F279DC9ABDD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icediscovery", "..\src\IceDiscovery\msbuild\icediscovery\icediscovery.vcxproj", "{270BB666-62FB-49ED-BFA2-8F279DC9ABDD}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icelocatordiscovery", "..\src\IceLocatorDiscovery\msbuild\icelocatordiscovery\icelocatordiscovery.vcxproj", "{5A8CEAB6-9F57-495C-B554-F93F842A0A28}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icelocatordiscovery++11", "..\src\IceLocatorDiscovery\msbuild\icelocatordiscovery++11\icelocatordiscovery++11.vcxproj", "{C694B856-3393-41B4-B3DC-3A5AD9A92A3D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icelocatordiscovery", "..\src\IceLocatorDiscovery\msbuild\icelocatordiscovery\icelocatordiscovery.vcxproj", "{C694B856-3393-41B4-B3DC-3A5AD9A92A3D}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iceboxlib", "..\src\IceBox\msbuild\iceboxlib\iceboxlib.vcxproj", "{588F90CA-62AC-4101-83FC-19AB9DB6B509}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iceboxlib++11", "..\src\IceBox\msbuild\iceboxlib++11\iceboxlib++11.vcxproj", "{4F8DD63C-3359-42F2-A6A8-80F7D55593AC}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iceboxlib", "..\src\IceBox\msbuild\iceboxlib\iceboxlib.vcxproj", "{4F8DD63C-3359-42F2-A6A8-80F7D55593AC}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icebox", "..\src\IceBox\msbuild\icebox\icebox.vcxproj", "{81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}" - ProjectSection(ProjectDependencies) = postProject - {588F90CA-62AC-4101-83FC-19AB9DB6B509} = {588F90CA-62AC-4101-83FC-19AB9DB6B509} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icebox++11", "..\src\IceBox\msbuild\icebox++11\icebox++11.vcxproj", "{96161748-CE5E-4548-BC1D-AFD2F137A1DC}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icebox", "..\src\IceBox\msbuild\icebox\icebox.vcxproj", "{96161748-CE5E-4548-BC1D-AFD2F137A1DC}" ProjectSection(ProjectDependencies) = postProject {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} = {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iceboxadmin", "..\src\IceBox\msbuild\iceboxadmin\iceboxadmin.vcxproj", "{1B745EA3-C97A-41BB-8E6F-64AAE992BE55}" ProjectSection(ProjectDependencies) = postProject - {588F90CA-62AC-4101-83FC-19AB9DB6B509} = {588F90CA-62AC-4101-83FC-19AB9DB6B509} + {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} + {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} = {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iceserviceinstall", "..\src\iceserviceinstall\msbuild\iceserviceinstall.vcxproj", "{0E22B627-F1A6-4771-89DE-9E45FD51F124}" ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} + {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormdb++11", "..\src\IceStorm\msbuild\icestormdb\icestormdb.vcxproj", "{F0B74B00-F252-4D38-A352-ED379CB196E9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormdb", "..\src\IceStorm\msbuild\icestormdb\icestormdb.vcxproj", "{F0B74B00-F252-4D38-A352-ED379CB196E9}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} = {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} - {994ADD25-20A0-4715-A3EC-9F86AFD481D0} = {994ADD25-20A0-4715-A3EC-9F86AFD481D0} {A28E5839-97F3-4874-BB77-E425787CF2ED} = {A28E5839-97F3-4874-BB77-E425787CF2ED} {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormservice++11", "..\src\IceStorm\msbuild\icestormservice\icestormservice.vcxproj", "{9E13C4B5-5DA9-43C1-9304-AEAC035E854D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormservice", "..\src\IceStorm\msbuild\icestormservice\icestormservice.vcxproj", "{9E13C4B5-5DA9-43C1-9304-AEAC035E854D}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} @@ -162,7 +125,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormservice++11", "..\s {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormadmin++11", "..\src\IceStorm\msbuild\icestormadmin\icestormadmin.vcxproj", "{8F1A1F99-DBE0-408D-99F7-D59142BD008C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormadmin", "..\src\IceStorm\msbuild\icestormadmin\icestormadmin.vcxproj", "{8F1A1F99-DBE0-408D-99F7-D59142BD008C}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} @@ -171,16 +134,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icestormadmin++11", "..\src {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridadmin++11", "..\src\IceGrid\msbuild\icegridadmin\icegridadmin.vcxproj", "{1F4CA1BE-B405-400F-912E-F0CC7E369D59}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridadmin", "..\src\IceGrid\msbuild\icegridadmin\icegridadmin.vcxproj", "{1F4CA1BE-B405-400F-912E-F0CC7E369D59}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} + {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} {90EC26E8-AFFA-4E44-B068-AB5849A96FDD} = {90EC26E8-AFFA-4E44-B068-AB5849A96FDD} {96161748-CE5E-4548-BC1D-AFD2F137A1DC} = {96161748-CE5E-4548-BC1D-AFD2F137A1DC} {C694B856-3393-41B4-B3DC-3A5AD9A92A3D} = {C694B856-3393-41B4-B3DC-3A5AD9A92A3D} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridnode++11", "..\src\IceGrid\msbuild\icegridnode\icegridnode.vcxproj", "{48EF9416-336F-4FA5-A376-FDFB7726ADBA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridnode", "..\src\IceGrid\msbuild\icegridnode\icegridnode.vcxproj", "{48EF9416-336F-4FA5-A376-FDFB7726ADBA}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} @@ -193,12 +157,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridnode++11", "..\src\I {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icessl", "..\src\IceSSL\msbuild\icessl\icessl.vcxproj", "{72FA68A9-49B6-4AB6-94AE-34BB03770A51}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridregistry++11", "..\src\IceGrid\msbuild\icegridregistry\icegridregistry.vcxproj", "{64490115-464B-4DC3-B7C6-D0AF1B68B6F9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridregistry", "..\src\IceGrid\msbuild\icegridregistry\icegridregistry.vcxproj", "{64490115-464B-4DC3-B7C6-D0AF1B68B6F9}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} @@ -210,85 +169,60 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegridregistry++11", "..\s {A28E5839-97F3-4874-BB77-E425787CF2ED} = {A28E5839-97F3-4874-BB77-E425787CF2ED} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icessl++11", "..\src\IceSSL\msbuild\icessl++11\icessl++11.vcxproj", "{5923B17D-2873-4245-87A7-FB8F4BE12501}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icessl", "..\src\IceSSL\msbuild\icessl\icessl.vcxproj", "{5923B17D-2873-4245-87A7-FB8F4BE12501}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icediscovery", "..\src\IceDiscovery\msbuild\icediscovery\icediscovery.vcxproj", "{3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2", "..\src\Glacier2Lib\msbuild\glacier2\glacier2.vcxproj", "{C7223CC8-0AAA-470B-ACB3-12B9DE75525C}" - ProjectSection(ProjectDependencies) = postProject - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {6485EC94-6B47-428D-B42D-AAA11F08DB59} - {763F88BB-37FD-4BCC-9D13-A7103596EA06} = {763F88BB-37FD-4BCC-9D13-A7103596EA06} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "C++98", "C++98", "{2DC2B270-B7AE-48CF-8FB0-41A55A9747E9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "C++11", "C++11", "{F48CC091-6F26-4EC8-A2FB-485975E7C908}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2router++11", "..\src\Glacier2\msbuild\glacier2router.vcxproj", "{541CF1D6-95FD-4499-AB02-75CCCEE660B0}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2router", "..\src\Glacier2\msbuild\glacier2router.vcxproj", "{541CF1D6-95FD-4499-AB02-75CCCEE660B0}" ProjectSection(ProjectDependencies) = postProject {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} {5923B17D-2873-4245-87A7-FB8F4BE12501} = {5923B17D-2873-4245-87A7-FB8F4BE12501} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegriddb++11", "..\src\icegriddb\msbuild\icegriddb.vcxproj", "{369524F4-D374-44F4-BCFD-408934595701}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icegriddb", "..\src\icegriddb\msbuild\icegriddb.vcxproj", "{369524F4-D374-44F4-BCFD-408934595701}" ProjectSection(ProjectDependencies) = postProject {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {142A9562-8DEC-4B1B-9B15-2CAD8304447B} {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icebridge++11", "..\src\IceBridge\msbuild\icebridge.vcxproj", "{1D6E8807-7C28-421F-B49E-BCB482FCB21D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icebridge", "..\src\IceBridge\msbuild\icebridge.vcxproj", "{1D6E8807-7C28-421F-B49E-BCB482FCB21D}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slice2rb", "..\src\slice2rb\msbuild\slice2rb.vcxproj", "{A79E9EB0-878C-4EDB-9804-2D262D6008DB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icesslopenssl++11", "..\src\IceSSL\msbuild\icesslopenssl++11\icesslopenssl++11.vcxproj", "{D0DC2305-37FE-4D03-BE05-AC8912678DC8}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icesslopenssl", "..\src\IceSSL\msbuild\icesslopenssl\icesslopenssl.vcxproj", "{D0DC2305-37FE-4D03-BE05-AC8912678DC8}" ProjectSection(ProjectDependencies) = postProject {5923B17D-2873-4245-87A7-FB8F4BE12501} = {5923B17D-2873-4245-87A7-FB8F4BE12501} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icesslopenssl", "..\src\IceSSL\msbuild\icesslopenssl\icesslopenssl.vcxproj", "{0D08F6B8-39C0-413B-84CE-D73230BCC740}" - ProjectSection(ProjectDependencies) = postProject - {72FA68A9-49B6-4AB6-94AE-34BB03770A51} = {72FA68A9-49B6-4AB6-94AE-34BB03770A51} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ice2slice", "..\src\ice2slice\msbuild\ice2slice.vcxproj", "{773EA63E-40AE-45B8-82B4-82B54CF309F8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2cryptpermissionsverifier", "..\src\Glacier2CryptPermissionsVerifier\msbuild\glacier2cryptpermissionsverifier\glacier2cryptpermissionsverifier.vcxproj", "{519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}" - ProjectSection(ProjectDependencies) = postProject - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2++11", "..\src\IcePatch2Lib\msbuild\icepatch2++11\icepatch2++11.vcxproj", "{18F381D8-BA61-4E6A-B877-9F6BC28C07E5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2", "..\src\IcePatch2Lib\msbuild\icepatch2\icepatch2.vcxproj", "{18F381D8-BA61-4E6A-B877-9F6BC28C07E5}" ProjectSection(ProjectDependencies) = postProject {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {3AB9772C-6113-4F1C-90FB-5368E7486C11} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2cryptpermissionsverifier++11", "..\src\Glacier2CryptPermissionsVerifier\msbuild\glacier2cryptpermissionsverifier++11\glacier2cryptpermissionsverifier++11.vcxproj", "{BF2077E4-D837-486B-9356-24FA5F659808}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glacier2cryptpermissionsverifier", "..\src\Glacier2CryptPermissionsVerifier\msbuild\glacier2cryptpermissionsverifier\glacier2cryptpermissionsverifier.vcxproj", "{BF2077E4-D837-486B-9356-24FA5F659808}" ProjectSection(ProjectDependencies) = postProject {2940A3C2-A9BA-44AA-AF65-00479C783407} = {2940A3C2-A9BA-44AA-AF65-00479C783407} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2server++11", "..\src\IcePatch2\msbuild\icepatch2server++11\icepatch2server++11.vcxproj", "{7E1D6372-D417-4143-A7AF-BE3E77550238}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2server", "..\src\IcePatch2\msbuild\icepatch2server\icepatch2server.vcxproj", "{7E1D6372-D417-4143-A7AF-BE3E77550238}" ProjectSection(ProjectDependencies) = postProject {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2calc++11", "..\src\IcePatch2\msbuild\icepatch2calc++11\icepatch2calc++11.vcxproj", "{8BCB4793-C004-459D-9605-272470D53A40}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2calc", "..\src\IcePatch2\msbuild\icepatch2calc\icepatch2calc.vcxproj", "{8BCB4793-C004-459D-9605-272470D53A40}" ProjectSection(ProjectDependencies) = postProject {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2client++11", "..\src\IcePatch2\msbuild\icepatch2client++11\icepatch2client++11.vcxproj", "{43D54B43-526E-40CE-9945-81420C54A415}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icepatch2client", "..\src\IcePatch2\msbuild\icepatch2client\icepatch2client.vcxproj", "{43D54B43-526E-40CE-9945-81420C54A415}" ProjectSection(ProjectDependencies) = postProject {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} EndProjectSection @@ -389,14 +323,6 @@ Global {90EC26E8-AFFA-4E44-B068-AB5849A96FDD}.Release|Win32.Build.0 = Release|Win32 {90EC26E8-AFFA-4E44-B068-AB5849A96FDD}.Release|x64.ActiveCfg = Release|x64 {90EC26E8-AFFA-4E44-B068-AB5849A96FDD}.Release|x64.Build.0 = Release|x64 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Debug|Win32.ActiveCfg = Debug|Win32 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Debug|Win32.Build.0 = Debug|Win32 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Debug|x64.ActiveCfg = Debug|x64 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Debug|x64.Build.0 = Debug|x64 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Release|Win32.ActiveCfg = Release|Win32 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Release|Win32.Build.0 = Release|Win32 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Release|x64.ActiveCfg = Release|x64 - {6485EC94-6B47-428D-B42D-AAA11F08DB59}.Release|x64.Build.0 = Release|x64 {2940A3C2-A9BA-44AA-AF65-00479C783407}.Debug|Win32.ActiveCfg = Debug|Win32 {2940A3C2-A9BA-44AA-AF65-00479C783407}.Debug|Win32.Build.0 = Debug|Win32 {2940A3C2-A9BA-44AA-AF65-00479C783407}.Debug|x64.ActiveCfg = Debug|x64 @@ -413,14 +339,6 @@ Global {E8ACC848-F7DA-4B29-B52F-81D66E7D397E}.Release|Win32.Build.0 = Release|Win32 {E8ACC848-F7DA-4B29-B52F-81D66E7D397E}.Release|x64.ActiveCfg = Release|x64 {E8ACC848-F7DA-4B29-B52F-81D66E7D397E}.Release|x64.Build.0 = Release|x64 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Debug|Win32.ActiveCfg = Debug|Win32 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Debug|Win32.Build.0 = Debug|Win32 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Debug|x64.ActiveCfg = Debug|x64 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Debug|x64.Build.0 = Debug|x64 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Release|Win32.ActiveCfg = Release|Win32 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Release|Win32.Build.0 = Release|Win32 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Release|x64.ActiveCfg = Release|x64 - {E6864F0D-B2ED-406A-B98C-F3668A680005}.Release|x64.Build.0 = Release|x64 {A28E5839-97F3-4874-BB77-E425787CF2ED}.Debug|Win32.ActiveCfg = Debug|Win32 {A28E5839-97F3-4874-BB77-E425787CF2ED}.Debug|Win32.Build.0 = Debug|Win32 {A28E5839-97F3-4874-BB77-E425787CF2ED}.Debug|x64.ActiveCfg = Debug|x64 @@ -429,22 +347,6 @@ Global {A28E5839-97F3-4874-BB77-E425787CF2ED}.Release|Win32.Build.0 = Release|Win32 {A28E5839-97F3-4874-BB77-E425787CF2ED}.Release|x64.ActiveCfg = Release|x64 {A28E5839-97F3-4874-BB77-E425787CF2ED}.Release|x64.Build.0 = Release|x64 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Debug|Win32.ActiveCfg = Debug|Win32 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Debug|Win32.Build.0 = Debug|Win32 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Debug|x64.ActiveCfg = Debug|x64 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Debug|x64.Build.0 = Debug|x64 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Release|Win32.ActiveCfg = Release|Win32 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Release|Win32.Build.0 = Release|Win32 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Release|x64.ActiveCfg = Release|x64 - {994ADD25-20A0-4715-A3EC-9F86AFD481D0}.Release|x64.Build.0 = Release|x64 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Debug|Win32.ActiveCfg = Debug|Win32 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Debug|Win32.Build.0 = Debug|Win32 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Debug|x64.ActiveCfg = Debug|x64 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Debug|x64.Build.0 = Debug|x64 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Release|Win32.ActiveCfg = Release|Win32 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Release|Win32.Build.0 = Release|Win32 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Release|x64.ActiveCfg = Release|x64 - {18BF13D3-85D3-43A5-8C96-E52EB0672F72}.Release|x64.Build.0 = Release|x64 {142A9562-8DEC-4B1B-9B15-2CAD8304447B}.Debug|Win32.ActiveCfg = Debug|Win32 {142A9562-8DEC-4B1B-9B15-2CAD8304447B}.Debug|Win32.Build.0 = Debug|Win32 {142A9562-8DEC-4B1B-9B15-2CAD8304447B}.Debug|x64.ActiveCfg = Debug|x64 @@ -461,14 +363,6 @@ Global {270BB666-62FB-49ED-BFA2-8F279DC9ABDD}.Release|Win32.Build.0 = Release|Win32 {270BB666-62FB-49ED-BFA2-8F279DC9ABDD}.Release|x64.ActiveCfg = Release|x64 {270BB666-62FB-49ED-BFA2-8F279DC9ABDD}.Release|x64.Build.0 = Release|x64 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Debug|Win32.ActiveCfg = Debug|Win32 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Debug|Win32.Build.0 = Debug|Win32 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Debug|x64.ActiveCfg = Debug|x64 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Debug|x64.Build.0 = Debug|x64 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Release|Win32.ActiveCfg = Release|Win32 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Release|Win32.Build.0 = Release|Win32 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Release|x64.ActiveCfg = Release|x64 - {5A8CEAB6-9F57-495C-B554-F93F842A0A28}.Release|x64.Build.0 = Release|x64 {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Debug|Win32.ActiveCfg = Debug|Win32 {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Debug|Win32.Build.0 = Debug|Win32 {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Debug|x64.ActiveCfg = Debug|x64 @@ -477,14 +371,6 @@ Global {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Release|Win32.Build.0 = Release|Win32 {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Release|x64.ActiveCfg = Release|x64 {C694B856-3393-41B4-B3DC-3A5AD9A92A3D}.Release|x64.Build.0 = Release|x64 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Debug|Win32.ActiveCfg = Debug|Win32 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Debug|Win32.Build.0 = Debug|Win32 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Debug|x64.ActiveCfg = Debug|x64 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Debug|x64.Build.0 = Debug|x64 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Release|Win32.ActiveCfg = Release|Win32 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Release|Win32.Build.0 = Release|Win32 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Release|x64.ActiveCfg = Release|x64 - {588F90CA-62AC-4101-83FC-19AB9DB6B509}.Release|x64.Build.0 = Release|x64 {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Debug|Win32.ActiveCfg = Debug|Win32 {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Debug|Win32.Build.0 = Debug|Win32 {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Debug|x64.ActiveCfg = Debug|x64 @@ -493,14 +379,6 @@ Global {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Release|Win32.Build.0 = Release|Win32 {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Release|x64.ActiveCfg = Release|x64 {4F8DD63C-3359-42F2-A6A8-80F7D55593AC}.Release|x64.Build.0 = Release|x64 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Debug|Win32.Build.0 = Debug|Win32 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Debug|x64.ActiveCfg = Debug|x64 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Debug|x64.Build.0 = Debug|x64 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Release|Win32.ActiveCfg = Release|Win32 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Release|Win32.Build.0 = Release|Win32 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Release|x64.ActiveCfg = Release|x64 - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5}.Release|x64.Build.0 = Release|x64 {96161748-CE5E-4548-BC1D-AFD2F137A1DC}.Debug|Win32.ActiveCfg = Debug|Win32 {96161748-CE5E-4548-BC1D-AFD2F137A1DC}.Debug|Win32.Build.0 = Debug|Win32 {96161748-CE5E-4548-BC1D-AFD2F137A1DC}.Debug|x64.ActiveCfg = Debug|x64 @@ -565,14 +443,6 @@ Global {48EF9416-336F-4FA5-A376-FDFB7726ADBA}.Release|Win32.Build.0 = Release|Win32 {48EF9416-336F-4FA5-A376-FDFB7726ADBA}.Release|x64.ActiveCfg = Release|x64 {48EF9416-336F-4FA5-A376-FDFB7726ADBA}.Release|x64.Build.0 = Release|x64 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Debug|Win32.ActiveCfg = Debug|Win32 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Debug|Win32.Build.0 = Debug|Win32 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Debug|x64.ActiveCfg = Debug|x64 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Debug|x64.Build.0 = Debug|x64 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Release|Win32.ActiveCfg = Release|Win32 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Release|Win32.Build.0 = Release|Win32 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Release|x64.ActiveCfg = Release|x64 - {72FA68A9-49B6-4AB6-94AE-34BB03770A51}.Release|x64.Build.0 = Release|x64 {64490115-464B-4DC3-B7C6-D0AF1B68B6F9}.Debug|Win32.ActiveCfg = Debug|Win32 {64490115-464B-4DC3-B7C6-D0AF1B68B6F9}.Debug|Win32.Build.0 = Debug|Win32 {64490115-464B-4DC3-B7C6-D0AF1B68B6F9}.Debug|x64.ActiveCfg = Debug|x64 @@ -589,22 +459,6 @@ Global {5923B17D-2873-4245-87A7-FB8F4BE12501}.Release|Win32.Build.0 = Release|Win32 {5923B17D-2873-4245-87A7-FB8F4BE12501}.Release|x64.ActiveCfg = Release|x64 {5923B17D-2873-4245-87A7-FB8F4BE12501}.Release|x64.Build.0 = Release|x64 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Debug|Win32.ActiveCfg = Debug|Win32 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Debug|Win32.Build.0 = Debug|Win32 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Debug|x64.ActiveCfg = Debug|x64 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Debug|x64.Build.0 = Debug|x64 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Release|Win32.ActiveCfg = Release|Win32 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Release|Win32.Build.0 = Release|Win32 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Release|x64.ActiveCfg = Release|x64 - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81}.Release|x64.Build.0 = Release|x64 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Debug|Win32.ActiveCfg = Debug|Win32 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Debug|Win32.Build.0 = Debug|Win32 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Debug|x64.ActiveCfg = Debug|x64 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Debug|x64.Build.0 = Debug|x64 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Release|Win32.ActiveCfg = Release|Win32 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Release|Win32.Build.0 = Release|Win32 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Release|x64.ActiveCfg = Release|x64 - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}.Release|x64.Build.0 = Release|x64 {541CF1D6-95FD-4499-AB02-75CCCEE660B0}.Debug|Win32.ActiveCfg = Debug|Win32 {541CF1D6-95FD-4499-AB02-75CCCEE660B0}.Debug|Win32.Build.0 = Debug|Win32 {541CF1D6-95FD-4499-AB02-75CCCEE660B0}.Debug|x64.ActiveCfg = Debug|x64 @@ -645,14 +499,6 @@ Global {D0DC2305-37FE-4D03-BE05-AC8912678DC8}.Release|Win32.Build.0 = Release|Win32 {D0DC2305-37FE-4D03-BE05-AC8912678DC8}.Release|x64.ActiveCfg = Release|x64 {D0DC2305-37FE-4D03-BE05-AC8912678DC8}.Release|x64.Build.0 = Release|x64 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Debug|Win32.ActiveCfg = Debug|Win32 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Debug|Win32.Build.0 = Debug|Win32 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Debug|x64.ActiveCfg = Debug|x64 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Debug|x64.Build.0 = Debug|x64 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Release|Win32.ActiveCfg = Release|Win32 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Release|Win32.Build.0 = Release|Win32 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Release|x64.ActiveCfg = Release|x64 - {0D08F6B8-39C0-413B-84CE-D73230BCC740}.Release|x64.Build.0 = Release|x64 {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Debug|Win32.ActiveCfg = Debug|Win32 {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Debug|Win32.Build.0 = Debug|Win32 {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Debug|x64.ActiveCfg = Debug|x64 @@ -661,14 +507,6 @@ Global {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Release|Win32.Build.0 = Release|Win32 {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Release|x64.ActiveCfg = Release|x64 {773EA63E-40AE-45B8-82B4-82B54CF309F8}.Release|x64.Build.0 = Release|x64 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Debug|Win32.ActiveCfg = Debug|Win32 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Debug|Win32.Build.0 = Debug|Win32 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Debug|x64.ActiveCfg = Debug|x64 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Debug|x64.Build.0 = Debug|x64 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Release|Win32.ActiveCfg = Release|Win32 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Release|Win32.Build.0 = Release|Win32 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Release|x64.ActiveCfg = Release|x64 - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3}.Release|x64.Build.0 = Release|x64 {18F381D8-BA61-4E6A-B877-9F6BC28C07E5}.Debug|Win32.ActiveCfg = Debug|Win32 {18F381D8-BA61-4E6A-B877-9F6BC28C07E5}.Debug|Win32.Build.0 = Debug|Win32 {18F381D8-BA61-4E6A-B877-9F6BC28C07E5}.Debug|x64.ActiveCfg = Debug|x64 @@ -713,59 +551,6 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {4D1A5110-3176-44BA-8BBB-57BF56519B9F} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {57CD6AC2-0C9D-4648-9E9D-5DF60C90F18A} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {763F88BB-37FD-4BCC-9D13-A7103596EA06} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {7BF9F3E4-46CA-491B-A349-624C45212A19} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {A503D0D4-22BB-4BDB-B996-862D14DA3349} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {8DF85304-2A53-4C36-804F-5C6FA2F75ACF} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {FBDCD48E-57DB-4CC1-A9D6-7D9F1C97D0E1} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {55A6E595-EFE4-47B9-957C-E4CFF2E75FD6} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {ACAF39D3-B4BD-426B-98DE-D95944B0D3F6} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {3AB9772C-6113-4F1C-90FB-5368E7486C11} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {90EC26E8-AFFA-4E44-B068-AB5849A96FDD} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {6485EC94-6B47-428D-B42D-AAA11F08DB59} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {2940A3C2-A9BA-44AA-AF65-00479C783407} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {E8ACC848-F7DA-4B29-B52F-81D66E7D397E} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {E6864F0D-B2ED-406A-B98C-F3668A680005} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {A28E5839-97F3-4874-BB77-E425787CF2ED} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {994ADD25-20A0-4715-A3EC-9F86AFD481D0} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {18BF13D3-85D3-43A5-8C96-E52EB0672F72} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {142A9562-8DEC-4B1B-9B15-2CAD8304447B} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {270BB666-62FB-49ED-BFA2-8F279DC9ABDD} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {5A8CEAB6-9F57-495C-B554-F93F842A0A28} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {C694B856-3393-41B4-B3DC-3A5AD9A92A3D} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {588F90CA-62AC-4101-83FC-19AB9DB6B509} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {4F8DD63C-3359-42F2-A6A8-80F7D55593AC} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {81C8FC6A-CAC3-4B6D-AE4D-5DEAD29726C5} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {96161748-CE5E-4548-BC1D-AFD2F137A1DC} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {1B745EA3-C97A-41BB-8E6F-64AAE992BE55} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {0E22B627-F1A6-4771-89DE-9E45FD51F124} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {F0B74B00-F252-4D38-A352-ED379CB196E9} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {9E13C4B5-5DA9-43C1-9304-AEAC035E854D} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {8F1A1F99-DBE0-408D-99F7-D59142BD008C} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {1F4CA1BE-B405-400F-912E-F0CC7E369D59} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {48EF9416-336F-4FA5-A376-FDFB7726ADBA} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {72FA68A9-49B6-4AB6-94AE-34BB03770A51} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {64490115-464B-4DC3-B7C6-D0AF1B68B6F9} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {5923B17D-2873-4245-87A7-FB8F4BE12501} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {3850C9C9-BA92-4EE6-9E77-E5BAE2A9BC81} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {541CF1D6-95FD-4499-AB02-75CCCEE660B0} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {369524F4-D374-44F4-BCFD-408934595701} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {1D6E8807-7C28-421F-B49E-BCB482FCB21D} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {A79E9EB0-878C-4EDB-9804-2D262D6008DB} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {D0DC2305-37FE-4D03-BE05-AC8912678DC8} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {0D08F6B8-39C0-413B-84CE-D73230BCC740} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {773EA63E-40AE-45B8-82B4-82B54CF309F8} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {519CB7EF-8E49-4BC1-B3DB-181BEF5AC3B3} = {2DC2B270-B7AE-48CF-8FB0-41A55A9747E9} - {18F381D8-BA61-4E6A-B877-9F6BC28C07E5} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {BF2077E4-D837-486B-9356-24FA5F659808} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {7E1D6372-D417-4143-A7AF-BE3E77550238} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {8BCB4793-C004-459D-9605-272470D53A40} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - {43D54B43-526E-40CE-9945-81420C54A415} = {F48CC091-6F26-4EC8-A2FB-485975E7C908} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {AAB39BE9-A7ED-4C54-80FE-D63A173ABB06} EndGlobalSection diff --git a/cpp/msbuild/ice.test.props b/cpp/msbuild/ice.test.props index f856d524e36..29645f2b4fe 100644 --- a/cpp/msbuild/ice.test.props +++ b/cpp/msbuild/ice.test.props @@ -3,16 +3,12 @@ 38a0 - + no - + cpp11 - - cpp98 - -