3#ifndef ICE_PROXY_FUNCTIONS_H
4#define ICE_PROXY_FUNCTIONS_H
10 ICE_API
void throwNullProxyMarshalException(
const char* file,
int line,
const Ice::Current& current);
23 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
29 IceInternal::throwNullProxyMarshalException(file, line, current);
37 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
40 return Prx::_fromReference(proxy._getReference());
47 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
65 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
76 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
77 std::optional<Prx>
uncheckedCast(
const std::optional<ObjectPrx>& proxy, std::string facet)
94 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
97 if (proxy->
ice_isA(Prx::ice_staticId(), context))
112 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
124 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
137 template<
typename Prx, std::enable_if_t<std::is_base_of_v<ObjectPrx, Prx>,
bool> = true>
141 return proxy ?
checkedCast<Prx>(proxy->ice_facet(std::move(facet)), context) : std::nullopt;
184 ICE_API
bool proxyIdentityLess(
const std::optional<ObjectPrx>& lhs,
const std::optional<ObjectPrx>& rhs)
noexcept;
190 ICE_API
bool proxyIdentityEqual(
const std::optional<ObjectPrx>& lhs,
const std::optional<ObjectPrx>& rhs)
noexcept;
bool ice_isA(std::string_view typeId, const Ice::Context &context=Ice::noExplicitContext) const
Tests whether this object supports a specific Slice interface.
Prx ice_facet(std::string facet) const
Creates a proxy that is identical to this proxy, except for the facet.
The base class for all Ice proxies.
bool proxyIdentityAndFacetEqual(const std::optional< ObjectPrx > &lhs, const std::optional< ObjectPrx > &rhs) noexcept
Compares the object identities and facets of two proxies.
bool proxyIdentityAndFacetLess(const std::optional< ObjectPrx > &lhs, const std::optional< ObjectPrx > &rhs) noexcept
Compares the object identities and facets of two proxies.
const Context noExplicitContext
Marker value used to indicate that no explicit request context was passed to a proxy invocation.
std::optional< Prx > checkedCast(const ObjectPrx &proxy, const Context &context=noExplicitContext)
Creates a new proxy from an existing proxy after confirming the target object's type via a remote inv...
bool operator==(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator equal to.
Prx uncheckedCast(const ObjectPrx &proxy)
Creates a new proxy from an existing proxy.
void checkNotNull(const std::optional< Prx > &prx, const char *file, int line, const Current ¤t)
Verifies that a proxy received from the client is not null, and throws a MarshalException if it is.
bool operator>=(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator greater-than or equal to.
bool operator<(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator less-than.
bool proxyIdentityLess(const std::optional< ObjectPrx > &lhs, const std::optional< ObjectPrx > &rhs) noexcept
Compares the object identities of two proxies.
bool operator!=(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator not equal to.
bool operator<=(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator less-than or equal to.
bool proxyIdentityEqual(const std::optional< ObjectPrx > &lhs, const std::optional< ObjectPrx > &rhs) noexcept
Compares the object identities of two proxies.
bool operator>(const ObjectPrx &lhs, const ObjectPrx &rhs) noexcept
Operator greater-than.
std::map< std::string, std::string, std::less<> > Context
Represents additional information carried by an Ice request.
Provides information about an incoming request being dispatched.