// Copyright (c) ZeroC, Inc.

// slice2cpp version 3.8.1
// <auto-generated>Generated from Slice file 'Lookup.ice'.</auto-generated>
// clang-format off

#ifndef IceDiscovery_Lookup_h_
#define IceDiscovery_Lookup_h_

#include <Ice/PushDisableWarnings.h>
#include <Ice/Ice.h>
#include <Ice/Identity.h>

#ifndef ICE_DISABLE_VERSION
#   if ICE_INT_VERSION / 100 != 308
#       error Ice version mismatch!
#   endif
#   if ICE_INT_VERSION % 100 >= 50
#       error Beta header file detected
#   endif
#   if ICE_INT_VERSION % 100 < 1
#       error Ice patch level mismatch!
#   endif
#endif

// NOLINTBEGIN(modernize-concat-nested-namespaces)

namespace IceDiscovery
{
    class LookupReplyPrx;

    class LookupPrx;
}

namespace IceDiscovery
{
    /// Represents a callback object implemented by IceDiscovery clients. It allows IceDiscovery clients to receive
    /// replies to LookupPrx requests.
    /// @remarks The Slice compiler generated this proxy class from Slice interface `::IceDiscovery::LookupReply`.
    class LookupReplyPrx : public Ice::Proxy<LookupReplyPrx, Ice::ObjectPrx>
    {
    public:
        /// Constructs a proxy from a Communicator and a proxy string.
        /// @param communicator The communicator of the new proxy.
        /// @param proxyString The proxy string to parse.
        LookupReplyPrx(const Ice::CommunicatorPtr& communicator, std::string_view proxyString) : Ice::ObjectPrx{communicator, proxyString} {} // NOLINT(modernize-use-equals-default)

        /// Copy constructor. Constructs with a copy of the contents of @p other.
        /// @param other The proxy to copy from.
        LookupReplyPrx(const LookupReplyPrx& other) noexcept : Ice::ObjectPrx{other} {} // NOLINT(modernize-use-equals-default)

        /// Move constructor. Constructs a proxy with the contents of @p other using move semantics.
        /// @param other The proxy to move from.
        LookupReplyPrx(LookupReplyPrx&& other) noexcept : Ice::ObjectPrx{std::move(other)} {} // NOLINT(modernize-use-equals-default)

        ~LookupReplyPrx() override;

        /// Copy assignment operator. Replaces the contents of this proxy with a copy of the contents of @p rhs.
        /// @param rhs The proxy to copy from.
        /// @return A reference to this proxy.
        LookupReplyPrx& operator=(const LookupReplyPrx& rhs) noexcept
        {
            if (this != &rhs)
            {
                Ice::ObjectPrx::operator=(rhs);
            }
            return *this;
        }

        /// Move assignment operator. Replaces the contents of this proxy with the contents of @p rhs using move semantics.
        /// @param rhs The proxy to move from.
        LookupReplyPrx& operator=(LookupReplyPrx&& rhs) noexcept
        {
            if (this != &rhs)
            {
                Ice::ObjectPrx::operator=(std::move(rhs));
            }
            return *this;
        }

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findObjectById request.
        /// @param id The identity of the object.
        /// @param prx The proxy of the object. This proxy is never null.
        /// @param context The request context.
        void foundObjectById(const ::Ice::Identity& id, const std::optional<Ice::ObjectPrx>& prx, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findObjectById request.
        /// @param id The identity of the object.
        /// @param prx The proxy of the object. This proxy is never null.
        /// @param context The request context.
        /// @return A future that becomes available when the invocation completes.
        [[nodiscard]] std::future<void> foundObjectByIdAsync(const ::Ice::Identity& id, const std::optional<Ice::ObjectPrx>& prx, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findObjectById request.
        /// @param id The identity of the object.
        /// @param prx The proxy of the object. This proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param sent The sent callback.
        /// @param context The request context.
        /// @return A function that can be called to cancel the invocation locally.
        // NOLINTNEXTLINE(modernize-use-nodiscard)
        std::function<void()> foundObjectByIdAsync(const ::Ice::Identity& id, const std::optional<Ice::ObjectPrx>& prx, std::function<void()> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;

        /// @private
        void _iceI_foundObjectById(const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&, const ::Ice::Identity&, const std::optional<Ice::ObjectPrx>&, const Ice::Context&) const;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findAdapterById request.
        /// @param id The adapter ID.
        /// @param prx The adapter proxy (a dummy proxy created by the adapter). The proxy provides the adapter
        /// endpoints. This proxy is never null.
        /// @param isReplicaGroup Indicates whether the adapter is a member of a replica group.
        /// @param context The request context.
        void foundAdapterById(std::string_view id, const std::optional<Ice::ObjectPrx>& prx, bool isReplicaGroup, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findAdapterById request.
        /// @param id The adapter ID.
        /// @param prx The adapter proxy (a dummy proxy created by the adapter). The proxy provides the adapter
        /// endpoints. This proxy is never null.
        /// @param isReplicaGroup Indicates whether the adapter is a member of a replica group.
        /// @param context The request context.
        /// @return A future that becomes available when the invocation completes.
        [[nodiscard]] std::future<void> foundAdapterByIdAsync(std::string_view id, const std::optional<Ice::ObjectPrx>& prx, bool isReplicaGroup, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findAdapterById request.
        /// @param id The adapter ID.
        /// @param prx The adapter proxy (a dummy proxy created by the adapter). The proxy provides the adapter
        /// endpoints. This proxy is never null.
        /// @param isReplicaGroup Indicates whether the adapter is a member of a replica group.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param sent The sent callback.
        /// @param context The request context.
        /// @return A function that can be called to cancel the invocation locally.
        // NOLINTNEXTLINE(modernize-use-nodiscard)
        std::function<void()> foundAdapterByIdAsync(std::string_view id, const std::optional<Ice::ObjectPrx>& prx, bool isReplicaGroup, std::function<void()> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;

        /// @private
        void _iceI_foundAdapterById(const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&, std::string_view, const std::optional<Ice::ObjectPrx>&, bool, const Ice::Context&) const;

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::LookupReply"`.
        static const char* ice_staticId() noexcept;

        /// @private
        static LookupReplyPrx _fromReference(IceInternal::ReferencePtr ref) { return LookupReplyPrx{std::move(ref)}; }

    protected:
        /// @private
        LookupReplyPrx() = default;

        /// @private
        explicit LookupReplyPrx(IceInternal::ReferencePtr&& ref) : Ice::ObjectPrx{std::move(ref)}
        {
        }
    };

    /// Looks up objects and object adapters using UDP multicast.
    /// @remarks The Slice compiler generated this proxy class from Slice interface `::IceDiscovery::Lookup`.
    class LookupPrx : public Ice::Proxy<LookupPrx, Ice::ObjectPrx>
    {
    public:
        /// Constructs a proxy from a Communicator and a proxy string.
        /// @param communicator The communicator of the new proxy.
        /// @param proxyString The proxy string to parse.
        LookupPrx(const Ice::CommunicatorPtr& communicator, std::string_view proxyString) : Ice::ObjectPrx{communicator, proxyString} {} // NOLINT(modernize-use-equals-default)

        /// Copy constructor. Constructs with a copy of the contents of @p other.
        /// @param other The proxy to copy from.
        LookupPrx(const LookupPrx& other) noexcept : Ice::ObjectPrx{other} {} // NOLINT(modernize-use-equals-default)

        /// Move constructor. Constructs a proxy with the contents of @p other using move semantics.
        /// @param other The proxy to move from.
        LookupPrx(LookupPrx&& other) noexcept : Ice::ObjectPrx{std::move(other)} {} // NOLINT(modernize-use-equals-default)

        ~LookupPrx() override;

        /// Copy assignment operator. Replaces the contents of this proxy with a copy of the contents of @p rhs.
        /// @param rhs The proxy to copy from.
        /// @return A reference to this proxy.
        LookupPrx& operator=(const LookupPrx& rhs) noexcept
        {
            if (this != &rhs)
            {
                Ice::ObjectPrx::operator=(rhs);
            }
            return *this;
        }

        /// Move assignment operator. Replaces the contents of this proxy with the contents of @p rhs using move semantics.
        /// @param rhs The proxy to move from.
        LookupPrx& operator=(LookupPrx&& rhs) noexcept
        {
            if (this != &rhs)
            {
                Ice::ObjectPrx::operator=(std::move(rhs));
            }
            return *this;
        }

        /// Finds a well-known Ice object.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The well-known object identity.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching object is found. The reply proxy is never null.
        /// @param context The request context.
        void findObjectById(std::string_view domainId, const ::Ice::Identity& id, const std::optional<LookupReplyPrx>& reply, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Finds a well-known Ice object.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The well-known object identity.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching object is found. The reply proxy is never null.
        /// @param context The request context.
        /// @return A future that becomes available when the invocation completes.
        [[nodiscard]] std::future<void> findObjectByIdAsync(std::string_view domainId, const ::Ice::Identity& id, const std::optional<LookupReplyPrx>& reply, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Finds a well-known Ice object.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The well-known object identity.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching object is found. The reply proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param sent The sent callback.
        /// @param context The request context.
        /// @return A function that can be called to cancel the invocation locally.
        // NOLINTNEXTLINE(modernize-use-nodiscard)
        std::function<void()> findObjectByIdAsync(std::string_view domainId, const ::Ice::Identity& id, const std::optional<LookupReplyPrx>& reply, std::function<void()> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;

        /// @private
        void _iceI_findObjectById(const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&, std::string_view, const ::Ice::Identity&, const std::optional<LookupReplyPrx>&, const Ice::Context&) const;

        /// Finds an object adapter.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The adapter ID.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching adapter is found. The reply proxy is never null.
        /// @param context The request context.
        void findAdapterById(std::string_view domainId, std::string_view id, const std::optional<LookupReplyPrx>& reply, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Finds an object adapter.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The adapter ID.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching adapter is found. The reply proxy is never null.
        /// @param context The request context.
        /// @return A future that becomes available when the invocation completes.
        [[nodiscard]] std::future<void> findAdapterByIdAsync(std::string_view domainId, std::string_view id, const std::optional<LookupReplyPrx>& reply, const Ice::Context& context = Ice::noExplicitContext) const;

        /// Finds an object adapter.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The adapter ID.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching adapter is found. The reply proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param sent The sent callback.
        /// @param context The request context.
        /// @return A function that can be called to cancel the invocation locally.
        // NOLINTNEXTLINE(modernize-use-nodiscard)
        std::function<void()> findAdapterByIdAsync(std::string_view domainId, std::string_view id, const std::optional<LookupReplyPrx>& reply, std::function<void()> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;

        /// @private
        void _iceI_findAdapterById(const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&, std::string_view, std::string_view, const std::optional<LookupReplyPrx>&, const Ice::Context&) const;

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::Lookup"`.
        static const char* ice_staticId() noexcept;

        /// @private
        static LookupPrx _fromReference(IceInternal::ReferencePtr ref) { return LookupPrx{std::move(ref)}; }

    protected:
        /// @private
        LookupPrx() = default;

        /// @private
        explicit LookupPrx(IceInternal::ReferencePtr&& ref) : Ice::ObjectPrx{std::move(ref)}
        {
        }
    };
}

namespace IceDiscovery
{
    /// Represents a callback object implemented by IceDiscovery clients. It allows IceDiscovery clients to receive
    /// replies to LookupPrx requests.
    /// @remarks The Slice compiler generated this skeleton class from Slice interface `::IceDiscovery::LookupReply`.
    class LookupReply : public virtual Ice::Object
    {
    public:
        /// The associated proxy type.
        using ProxyType = LookupReplyPrx;

        /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
        /// @param request The incoming request.
        /// @param sendResponse The callback to send the response.
        void dispatch(Ice::IncomingRequest& request, std::function<void(Ice::OutgoingResponse)> sendResponse) override;

        [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;

        [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findObjectById request.
        /// @param id The identity of the object.
        /// @param prx The proxy of the object. This proxy is never null.
        /// @param current The Current object of the incoming request.
        virtual void foundObjectById(::Ice::Identity id, std::optional<Ice::ObjectPrx> prx, const Ice::Current& current) = 0;

        /// @private
        void _iceD_foundObjectById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findAdapterById request.
        /// @param id The adapter ID.
        /// @param prx The adapter proxy (a dummy proxy created by the adapter). The proxy provides the adapter
        /// endpoints. This proxy is never null.
        /// @param isReplicaGroup Indicates whether the adapter is a member of a replica group.
        /// @param current The Current object of the incoming request.
        virtual void foundAdapterById(std::string id, std::optional<Ice::ObjectPrx> prx, bool isReplicaGroup, const Ice::Current& current) = 0;

        /// @private
        void _iceD_foundAdapterById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::LookupReply"`.
        static const char* ice_staticId() noexcept;
    };

    /// A shared pointer to a LookupReply.
    using LookupReplyPtr = std::shared_ptr<LookupReply>;

    /// Looks up objects and object adapters using UDP multicast.
    /// @remarks The Slice compiler generated this skeleton class from Slice interface `::IceDiscovery::Lookup`.
    class Lookup : public virtual Ice::Object
    {
    public:
        /// The associated proxy type.
        using ProxyType = LookupPrx;

        /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
        /// @param request The incoming request.
        /// @param sendResponse The callback to send the response.
        void dispatch(Ice::IncomingRequest& request, std::function<void(Ice::OutgoingResponse)> sendResponse) override;

        [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;

        [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;

        /// Finds a well-known Ice object.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The well-known object identity.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching object is found. The reply proxy is never null.
        /// @param current The Current object of the incoming request.
        virtual void findObjectById(std::string domainId, ::Ice::Identity id, std::optional<LookupReplyPrx> reply, const Ice::Current& current) = 0;

        /// @private
        void _iceD_findObjectById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Finds an object adapter.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The adapter ID.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching adapter is found. The reply proxy is never null.
        /// @param current The Current object of the incoming request.
        virtual void findAdapterById(std::string domainId, std::string id, std::optional<LookupReplyPrx> reply, const Ice::Current& current) = 0;

        /// @private
        void _iceD_findAdapterById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::Lookup"`.
        static const char* ice_staticId() noexcept;
    };

    /// A shared pointer to a Lookup.
    using LookupPtr = std::shared_ptr<Lookup>;
}

namespace IceDiscovery
{
    /// Represents a callback object implemented by IceDiscovery clients. It allows IceDiscovery clients to receive
    /// replies to LookupPrx requests.
    /// @remarks The Slice compiler generated this skeleton class from Slice interface `::IceDiscovery::LookupReply`.
    class AsyncLookupReply : public virtual Ice::Object
    {
    public:
        /// The associated proxy type.
        using ProxyType = LookupReplyPrx;

        /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
        /// @param request The incoming request.
        /// @param sendResponse The callback to send the response.
        void dispatch(Ice::IncomingRequest& request, std::function<void(Ice::OutgoingResponse)> sendResponse) override;

        [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;

        [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findObjectById request.
        /// @param id The identity of the object.
        /// @param prx The proxy of the object. This proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param current The Current object of the incoming request.
        virtual void foundObjectByIdAsync(::Ice::Identity id, std::optional<Ice::ObjectPrx> prx, std::function<void()> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;

        /// @private
        void _iceD_foundObjectById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Provides a reply to a ::IceDiscovery::LookupPrx::findAdapterById request.
        /// @param id The adapter ID.
        /// @param prx The adapter proxy (a dummy proxy created by the adapter). The proxy provides the adapter
        /// endpoints. This proxy is never null.
        /// @param isReplicaGroup Indicates whether the adapter is a member of a replica group.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param current The Current object of the incoming request.
        virtual void foundAdapterByIdAsync(std::string id, std::optional<Ice::ObjectPrx> prx, bool isReplicaGroup, std::function<void()> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;

        /// @private
        void _iceD_foundAdapterById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::LookupReply"`.
        static const char* ice_staticId() noexcept;
    };

    /// A shared pointer to an AsyncLookupReply.
    using AsyncLookupReplyPtr = std::shared_ptr<AsyncLookupReply>;

    /// Looks up objects and object adapters using UDP multicast.
    /// @remarks The Slice compiler generated this skeleton class from Slice interface `::IceDiscovery::Lookup`.
    class AsyncLookup : public virtual Ice::Object
    {
    public:
        /// The associated proxy type.
        using ProxyType = LookupPrx;

        /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
        /// @param request The incoming request.
        /// @param sendResponse The callback to send the response.
        void dispatch(Ice::IncomingRequest& request, std::function<void(Ice::OutgoingResponse)> sendResponse) override;

        [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;

        [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;

        /// Finds a well-known Ice object.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The well-known object identity.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching object is found. The reply proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param current The Current object of the incoming request.
        virtual void findObjectByIdAsync(std::string domainId, ::Ice::Identity id, std::optional<LookupReplyPrx> reply, std::function<void()> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;

        /// @private
        void _iceD_findObjectById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Finds an object adapter.
        /// @param domainId The IceDiscovery domain identifier. An IceDiscovery client only replies to requests with a
        /// matching domain identifier.
        /// @param id The adapter ID.
        /// @param reply The proxy of the ::IceDiscovery::LookupReplyPrx interface that should be used to send the reply if a
        /// matching adapter is found. The reply proxy is never null.
        /// @param response The response callback.
        /// @param exception The exception callback.
        /// @param current The Current object of the incoming request.
        virtual void findAdapterByIdAsync(std::string domainId, std::string id, std::optional<LookupReplyPrx> reply, std::function<void()> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;

        /// @private
        void _iceD_findAdapterById(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);

        /// Gets the type ID of the associated Slice interface.
        /// @return The string `"::IceDiscovery::Lookup"`.
        static const char* ice_staticId() noexcept;
    };

    /// A shared pointer to an AsyncLookup.
    using AsyncLookupPtr = std::shared_ptr<AsyncLookup>;
}

// NOLINTEND(modernize-concat-nested-namespaces)

#include <Ice/PopDisableWarnings.h>
#endif
