16 #ifndef __Glacier2_PermissionsVerifier_h__
17 #define __Glacier2_PermissionsVerifier_h__
41 #ifndef ICE_IGNORE_VERSION
42 # if ICE_INT_VERSION / 100 != 307
43 # error Ice version mismatch!
45 # if ICE_INT_VERSION % 100 >= 50
46 # error Beta header file detected
48 # if ICE_INT_VERSION % 100 < 10
49 # error Ice patch level mismatch!
54 # if defined(ICE_STATIC_LIBS)
56 # elif defined(GLACIER2_API_EXPORTS)
57 # define GLACIER2_API ICE_DECLSPEC_EXPORT
59 # define GLACIER2_API ICE_DECLSPEC_IMPORT
63 #ifdef ICE_CPP11_MAPPING // C++11 mapping
108 return std::tie(reason);
134 ::std::shared_ptr<::Ice::SlicedData> _slicedData;
165 virtual bool ice_isA(::std::string
id, const ::Ice::Current& current)
const override;
172 virtual ::std::vector<::std::string>
ice_ids(const ::Ice::Current& current)
const override;
179 virtual ::std::string
ice_id(const ::Ice::Current& current)
const override;
209 virtual bool checkPermissions(::std::string userId, ::std::string password, ::std::string& reason, const ::Ice::Current& current)
const = 0;
211 bool _iceD_checkPermissions(::IceInternal::Incoming&, const ::Ice::Current&)
const;
215 virtual bool _iceDispatch(::IceInternal::Incoming&, const ::Ice::Current&)
override;
237 virtual bool ice_isA(::std::string
id, const ::Ice::Current& current)
const override;
244 virtual ::std::vector<::std::string>
ice_ids(const ::Ice::Current& current)
const override;
251 virtual ::std::string
ice_id(const ::Ice::Current& current)
const override;
281 virtual bool authorize(
SSLInfo info, ::std::string& reason, const ::Ice::Current& current)
const = 0;
283 bool _iceD_authorize(::IceInternal::Incoming&, const ::Ice::Current&)
const;
287 virtual bool _iceDispatch(::IceInternal::Incoming&, const ::Ice::Current&)
override;
319 auto _result = _makePromiseOutgoing<PermissionsVerifier::CheckPermissionsResult>(
true,
this, &PermissionsVerifierPrx::_iceI_checkPermissions, userId, password, context).get();
320 reason = ::std::move(_result.reason);
321 return _result.returnValue;
331 template<
template<
typename>
class P = ::std::promise>
333 -> decltype(::std::declval<P<PermissionsVerifier::CheckPermissionsResult>>().get_future())
335 return _makePromiseOutgoing<PermissionsVerifier::CheckPermissionsResult, P>(
false,
this, &PermissionsVerifierPrx::_iceI_checkPermissions, userId, password, context);
348 ::std::function<void()>
350 ::std::function<
void(
bool, ::std::string)> response,
351 ::std::function<
void(::std::exception_ptr)> ex =
nullptr,
352 ::std::function<
void(
bool)> sent =
nullptr,
357 response(_result.returnValue, ::std::move(_result.reason));
359 return _makeLamdaOutgoing<PermissionsVerifier::CheckPermissionsResult>(std::move(_responseCb), std::move(ex), std::move(sent),
this, &Glacier2::PermissionsVerifierPrx::_iceI_checkPermissions, userId, password, context);
363 ICE_MEMBER(
GLACIER2_API)
void _iceI_checkPermissions(const ::std::shared_ptr<::IceInternal::OutgoingAsyncT<PermissionsVerifier::CheckPermissionsResult>>&, const ::std::string&, const ::std::string&,
const ::Ice::Context&);
376 friend ::std::shared_ptr<PermissionsVerifierPrx> IceInternal::createProxy<PermissionsVerifierPrx>();
405 auto _result = _makePromiseOutgoing<SSLPermissionsVerifier::AuthorizeResult>(
true,
this, &SSLPermissionsVerifierPrx::_iceI_authorize, info, context).get();
406 reason = ::std::move(_result.reason);
407 return _result.returnValue;
417 template<
template<
typename>
class P = ::std::promise>
419 -> decltype(::std::declval<P<SSLPermissionsVerifier::AuthorizeResult>>().get_future())
421 return _makePromiseOutgoing<SSLPermissionsVerifier::AuthorizeResult, P>(
false,
this, &SSLPermissionsVerifierPrx::_iceI_authorize, info, context);
434 ::std::function<void()>
436 ::std::function<
void(
bool, ::std::string)> response,
437 ::std::function<
void(::std::exception_ptr)> ex =
nullptr,
438 ::std::function<
void(
bool)> sent =
nullptr,
443 response(_result.returnValue, ::std::move(_result.reason));
445 return _makeLamdaOutgoing<SSLPermissionsVerifier::AuthorizeResult>(std::move(_responseCb), std::move(ex), std::move(sent),
this, &Glacier2::SSLPermissionsVerifierPrx::_iceI_authorize, info, context);
462 friend ::std::shared_ptr<SSLPermissionsVerifierPrx> IceInternal::createProxy<SSLPermissionsVerifierPrx>();
490 using PermissionsVerifierPtr = ::std::shared_ptr<PermissionsVerifier>;
491 using PermissionsVerifierPrxPtr = ::std::shared_ptr<PermissionsVerifierPrx>;
493 using SSLPermissionsVerifierPtr = ::std::shared_ptr<SSLPermissionsVerifier>;
494 using SSLPermissionsVerifierPrxPtr = ::std::shared_ptr<SSLPermissionsVerifierPrx>;
499 #else // C++98 mapping
507 class PermissionsVerifier;
510 GLACIER2_API ::IceProxy::Ice::Object* upCast(PermissionsVerifier*);
513 class SSLPermissionsVerifier;
516 GLACIER2_API ::IceProxy::Ice::Object* upCast(SSLPermissionsVerifier*);
526 class PermissionsVerifier;
528 GLACIER2_API ::Ice::Object* upCast(PermissionsVerifier*);
530 typedef ::IceInternal::Handle< PermissionsVerifier> PermissionsVerifierPtr;
531 typedef ::IceInternal::ProxyHandle< ::IceProxy::Glacier2::PermissionsVerifier> PermissionsVerifierPrx;
532 typedef PermissionsVerifierPrx PermissionsVerifierPrxPtr;
534 GLACIER2_API void _icePatchObjectPtr(PermissionsVerifierPtr&, const ::Ice::ObjectPtr&);
537 class SSLPermissionsVerifier;
539 GLACIER2_API ::Ice::Object* upCast(SSLPermissionsVerifier*);
541 typedef ::IceInternal::Handle< SSLPermissionsVerifier> SSLPermissionsVerifierPtr;
542 typedef ::IceInternal::ProxyHandle< ::IceProxy::Glacier2::SSLPermissionsVerifier> SSLPermissionsVerifierPrx;
543 typedef SSLPermissionsVerifierPrx SSLPermissionsVerifierPrxPtr;
545 GLACIER2_API void _icePatchObjectPtr(SSLPermissionsVerifierPtr&, const ::Ice::ObjectPtr&);
562 PermissionDeniedException() {}
567 explicit PermissionDeniedException(const ::std::string& reason);
569 #ifdef ICE_CPP11_COMPILER
570 PermissionDeniedException(
const PermissionDeniedException&) =
default;
571 virtual ~PermissionDeniedException();
573 virtual ~PermissionDeniedException() throw();
580 virtual ::std::string ice_id()
const;
585 virtual PermissionDeniedException* ice_clone()
const;
589 virtual void ice_throw()
const;
594 ::std::string reason;
602 virtual ::Ice::SlicedDataPtr ice_getSlicedData()
const;
607 using ::Ice::UserException::_write;
608 using ::Ice::UserException::_read;
619 ::Ice::SlicedDataPtr _slicedData;
624 static PermissionDeniedException _iceS_PermissionDeniedException_init;
637 class Callback_PermissionsVerifier_checkPermissions_Base :
public virtual ::IceInternal::CallbackBase { };
638 typedef ::IceUtil::Handle< Callback_PermissionsVerifier_checkPermissions_Base> Callback_PermissionsVerifier_checkPermissionsPtr;
645 class Callback_SSLPermissionsVerifier_authorize_Base :
public virtual ::IceInternal::CallbackBase { };
646 typedef ::IceUtil::Handle< Callback_SSLPermissionsVerifier_authorize_Base> Callback_SSLPermissionsVerifier_authorizePtr;
656 class ICE_CLASS(GLACIER2_API) PermissionsVerifier :
public virtual ::Ice::Proxy<PermissionsVerifier, ::IceProxy::Ice::Object>
673 return end_checkPermissions(reason, _iceI_begin_checkPermissions(userId, password, context, ::IceInternal::dummyCallback, 0,
true));
685 return _iceI_begin_checkPermissions(userId, password, context, ::IceInternal::dummyCallback, 0);
696 ::Ice::AsyncResultPtr begin_checkPermissions(const ::std::string& userId, const ::std::string& password, const ::Ice::CallbackPtr& cb,
const ::Ice::LocalObjectPtr& cookie = 0)
712 return _iceI_begin_checkPermissions(userId, password, context, cb, cookie);
723 ::Ice::AsyncResultPtr begin_checkPermissions(const ::std::string& userId, const ::std::string& password, const ::Glacier2::Callback_PermissionsVerifier_checkPermissionsPtr& cb,
const ::Ice::LocalObjectPtr& cookie = 0)
737 ::Ice::AsyncResultPtr begin_checkPermissions(const ::std::string& userId, const ::std::string& password,
const ::Ice::Context& context, const ::Glacier2::Callback_PermissionsVerifier_checkPermissionsPtr& cb,
const ::Ice::LocalObjectPtr& cookie = 0)
739 return _iceI_begin_checkPermissions(userId, password, context, cb, cookie);
751 ICE_MEMBER(
GLACIER2_API)
bool end_checkPermissions(::std::string& reason, const ::Ice::AsyncResultPtr& result);
754 ICE_MEMBER(
GLACIER2_API)
void _iceI_end_checkPermissions(::std::string& iceP_reason,
bool& ret, const ::Ice::AsyncResultPtr&);
776 class ICE_CLASS(GLACIER2_API) SSLPermissionsVerifier :
public virtual ::Ice::Proxy<SSLPermissionsVerifier, ::IceProxy::Ice::Object>
793 return end_authorize(reason, _iceI_begin_authorize(info, context, ::IceInternal::dummyCallback, 0,
true));
805 return _iceI_begin_authorize(info, context, ::IceInternal::dummyCallback, 0);
816 ::Ice::AsyncResultPtr begin_authorize(const ::Glacier2::SSLInfo& info, const ::Ice::CallbackPtr& cb,
const ::Ice::LocalObjectPtr& cookie = 0)
832 return _iceI_begin_authorize(info, context, cb, cookie);
843 ::Ice::AsyncResultPtr begin_authorize(const ::Glacier2::SSLInfo& info, const ::Glacier2::Callback_SSLPermissionsVerifier_authorizePtr& cb,
const ::Ice::LocalObjectPtr& cookie = 0)
859 return _iceI_begin_authorize(info, context, cb, cookie);
874 ICE_MEMBER(
GLACIER2_API)
void _iceI_end_authorize(::std::string& iceP_reason,
bool& ret, const ::Ice::AsyncResultPtr&);
913 typedef PermissionsVerifierPrx ProxyType;
914 typedef PermissionsVerifierPtr PointerType;
916 virtual ~PermissionsVerifier();
918 #ifdef ICE_CPP11_COMPILER
919 PermissionsVerifier() =
default;
920 PermissionsVerifier(
const PermissionsVerifier&) =
default;
921 PermissionsVerifier& operator=(
const PermissionsVerifier&) =
default;
930 virtual bool ice_isA(const ::std::string&
id, const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
937 virtual ::std::vector< ::std::string> ice_ids(const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
944 virtual const ::std::string& ice_id(const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
950 static const ::std::string& ice_staticId();
963 virtual bool checkPermissions(const ::std::string& userId, const ::std::string& password, ::std::string& reason, const ::Ice::Current& current = ::
Ice::emptyCurrent)
const = 0;
965 bool _iceD_checkPermissions(::IceInternal::Incoming&, const ::Ice::Current&)
const;
969 virtual bool _iceDispatch(::IceInternal::Incoming&, const ::Ice::Current&);
981 inline bool operator==(
const PermissionsVerifier& lhs,
const PermissionsVerifier& rhs)
986 inline bool operator<(
const PermissionsVerifier& lhs,
const PermissionsVerifier& rhs)
1002 typedef SSLPermissionsVerifierPrx ProxyType;
1003 typedef SSLPermissionsVerifierPtr PointerType;
1005 virtual ~SSLPermissionsVerifier();
1007 #ifdef ICE_CPP11_COMPILER
1008 SSLPermissionsVerifier() =
default;
1009 SSLPermissionsVerifier(
const SSLPermissionsVerifier&) =
default;
1010 SSLPermissionsVerifier& operator=(
const SSLPermissionsVerifier&) =
default;
1019 virtual bool ice_isA(const ::std::string&
id, const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
1026 virtual ::std::vector< ::std::string> ice_ids(const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
1033 virtual const ::std::string& ice_id(const ::Ice::Current& current = ::
Ice::emptyCurrent)
const;
1039 static const ::std::string& ice_staticId();
1052 virtual bool authorize(
const SSLInfo& info, ::std::string& reason, const ::Ice::Current& current = ::
Ice::emptyCurrent)
const = 0;
1054 bool _iceD_authorize(::IceInternal::Incoming&, const ::Ice::Current&)
const;
1058 virtual bool _iceDispatch(::IceInternal::Incoming&, const ::Ice::Current&);
1070 inline bool operator==(
const SSLPermissionsVerifier& lhs,
const SSLPermissionsVerifier& rhs)
1075 inline bool operator<(
const SSLPermissionsVerifier& lhs,
const SSLPermissionsVerifier& rhs)
1090 static const StreamHelperCategory helper = StreamHelperCategoryUserException;
1093 template<
typename S>
1096 static void write(S* ostr, const ::Glacier2::PermissionDeniedException& v)
1098 ostr->write(v.reason);
1102 template<
typename S>
1123 class CallbackNC_PermissionsVerifier_checkPermissions :
public Callback_PermissionsVerifier_checkPermissions_Base,
public ::IceInternal::TwowayCallbackNC<T>
1130 typedef void (T::*Sent)(bool);
1131 typedef void (T::*Response)(bool, const ::std::string&);
1133 CallbackNC_PermissionsVerifier_checkPermissions(
const TPtr& obj, Response cb,
Exception excb, Sent sentcb)
1134 : ::IceInternal::TwowayCallbackNC<T>(obj, cb != 0, excb, sentcb), _response(cb)
1139 virtual void completed(const ::Ice::AsyncResultPtr& result)
const
1142 ::std::string iceP_reason;
1146 ret = proxy->end_checkPermissions(iceP_reason, result);
1150 ::IceInternal::CallbackNC<T>::exception(result, ex);
1155 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret, iceP_reason);
1173 template<
class T> Callback_PermissionsVerifier_checkPermissionsPtr
1174 newCallback_PermissionsVerifier_checkPermissions(
const IceUtil::Handle<T>& instance,
void (T::*cb)(
bool, const ::std::string&),
void (T::*excb)(
const ::Ice::Exception&),
void (T::*sentcb)(
bool) = 0)
1176 return new CallbackNC_PermissionsVerifier_checkPermissions<T>(instance, cb, excb, sentcb);
1187 template<
class T> Callback_PermissionsVerifier_checkPermissionsPtr
1188 newCallback_PermissionsVerifier_checkPermissions(T* instance,
void (T::*cb)(
bool, const ::std::string&),
void (T::*excb)(
const ::Ice::Exception&),
void (T::*sentcb)(
bool) = 0)
1190 return new CallbackNC_PermissionsVerifier_checkPermissions<T>(instance, cb, excb, sentcb);
1198 template<
class T,
typename CT>
1199 class Callback_PermissionsVerifier_checkPermissions :
public Callback_PermissionsVerifier_checkPermissions_Base,
public ::IceInternal::TwowayCallback<T, CT>
1206 typedef void (T::*Sent)(bool ,
const CT&);
1207 typedef void (T::*Response)(bool, const ::std::string&,
const CT&);
1209 Callback_PermissionsVerifier_checkPermissions(
const TPtr& obj, Response cb,
Exception excb, Sent sentcb)
1210 : ::IceInternal::TwowayCallback<T, CT>(obj, cb != 0, excb, sentcb), _response(cb)
1215 virtual void completed(const ::Ice::AsyncResultPtr& result)
const
1218 ::std::string iceP_reason;
1222 ret = proxy->end_checkPermissions(iceP_reason, result);
1226 ::IceInternal::Callback<T, CT>::exception(result, ex);
1231 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret, iceP_reason, CT::dynamicCast(result->getCookie()));
1250 template<
class T,
typename CT> Callback_PermissionsVerifier_checkPermissionsPtr
1251 newCallback_PermissionsVerifier_checkPermissions(
const IceUtil::Handle<T>& instance,
void (T::*cb)(
bool, const ::std::string&,
const CT&),
void (T::*excb)(
const ::Ice::Exception&,
const CT&),
void (T::*sentcb)(
bool,
const CT&) = 0)
1253 return new Callback_PermissionsVerifier_checkPermissions<T, CT>(instance, cb, excb, sentcb);
1265 template<
class T,
typename CT> Callback_PermissionsVerifier_checkPermissionsPtr
1266 newCallback_PermissionsVerifier_checkPermissions(T* instance,
void (T::*cb)(
bool, const ::std::string&,
const CT&),
void (T::*excb)(
const ::Ice::Exception&,
const CT&),
void (T::*sentcb)(
bool,
const CT&) = 0)
1268 return new Callback_PermissionsVerifier_checkPermissions<T, CT>(instance, cb, excb, sentcb);
1277 class CallbackNC_SSLPermissionsVerifier_authorize :
public Callback_SSLPermissionsVerifier_authorize_Base,
public ::IceInternal::TwowayCallbackNC<T>
1284 typedef void (T::*Sent)(bool);
1285 typedef void (T::*Response)(bool, const ::std::string&);
1287 CallbackNC_SSLPermissionsVerifier_authorize(
const TPtr& obj, Response cb,
Exception excb, Sent sentcb)
1288 : ::IceInternal::TwowayCallbackNC<T>(obj, cb != 0, excb, sentcb), _response(cb)
1293 virtual void completed(const ::Ice::AsyncResultPtr& result)
const
1296 ::std::string iceP_reason;
1300 ret = proxy->end_authorize(iceP_reason, result);
1304 ::IceInternal::CallbackNC<T>::exception(result, ex);
1309 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret, iceP_reason);
1327 template<
class T> Callback_SSLPermissionsVerifier_authorizePtr
1330 return new CallbackNC_SSLPermissionsVerifier_authorize<T>(instance, cb, excb, sentcb);
1341 template<
class T> Callback_SSLPermissionsVerifier_authorizePtr
1342 newCallback_SSLPermissionsVerifier_authorize(T* instance,
void (T::*cb)(
bool, const ::std::string&),
void (T::*excb)(
const ::Ice::Exception&),
void (T::*sentcb)(
bool) = 0)
1344 return new CallbackNC_SSLPermissionsVerifier_authorize<T>(instance, cb, excb, sentcb);
1352 template<
class T,
typename CT>
1353 class Callback_SSLPermissionsVerifier_authorize :
public Callback_SSLPermissionsVerifier_authorize_Base,
public ::IceInternal::TwowayCallback<T, CT>
1360 typedef void (T::*Sent)(bool ,
const CT&);
1361 typedef void (T::*Response)(bool, const ::std::string&,
const CT&);
1363 Callback_SSLPermissionsVerifier_authorize(
const TPtr& obj, Response cb,
Exception excb, Sent sentcb)
1364 : ::IceInternal::TwowayCallback<T, CT>(obj, cb != 0, excb, sentcb), _response(cb)
1369 virtual void completed(const ::Ice::AsyncResultPtr& result)
const
1372 ::std::string iceP_reason;
1376 ret = proxy->end_authorize(iceP_reason, result);
1380 ::IceInternal::Callback<T, CT>::exception(result, ex);
1385 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret, iceP_reason, CT::dynamicCast(result->getCookie()));
1404 template<
class T,
typename CT> Callback_SSLPermissionsVerifier_authorizePtr
1405 newCallback_SSLPermissionsVerifier_authorize(
const IceUtil::Handle<T>& instance,
void (T::*cb)(
bool, const ::std::string&,
const CT&),
void (T::*excb)(
const ::Ice::Exception&,
const CT&),
void (T::*sentcb)(
bool,
const CT&) = 0)
1407 return new Callback_SSLPermissionsVerifier_authorize<T, CT>(instance, cb, excb, sentcb);
1419 template<
class T,
typename CT> Callback_SSLPermissionsVerifier_authorizePtr
1420 newCallback_SSLPermissionsVerifier_authorize(T* instance,
void (T::*cb)(
bool, const ::std::string&,
const CT&),
void (T::*excb)(
const ::Ice::Exception&,
const CT&),
void (T::*sentcb)(
bool,
const CT&) = 0)
1422 return new Callback_SSLPermissionsVerifier_authorize<T, CT>(instance, cb, excb, sentcb);