5#ifndef ICE_INCOMING_ASYNC_H
6#define ICE_INCOMING_ASYNC_H
11#ifndef ICE_CPP11_MAPPING
44#if defined(_MSC_VER) && (_MSC_VER >= 1900)
46# pragma warning(disable:4239)
53class ICE_API IncomingAsync :
public IncomingBase,
54#ifdef ICE_CPP11_MAPPING
55 public ::std::enable_shared_from_this<IncomingAsync>
62 IncomingAsync(Incoming&);
64#ifdef ICE_CPP11_MAPPING
66 static std::shared_ptr<IncomingAsync> create(Incoming&);
68 std::function<void()> response()
70 auto self = shared_from_this();
73 self->writeEmptyParams();
79 std::function<void(
const T&)> response()
81 auto self = shared_from_this();
82 return [self](
const T& marshaledResult)
84 self->setMarshaledResult(marshaledResult);
89 std::function<void(std::exception_ptr)> exception()
91 auto self = shared_from_this();
92 return [self](std::exception_ptr ex) { self->completed(ex); };
97 virtual void ice_exception(const ::std::exception&);
98 virtual void ice_exception();
102 void kill(Incoming&);
106#ifdef ICE_CPP11_MAPPING
107 void completed(std::exception_ptr);
112 void checkResponseSent();
119 const ResponseHandlerPtr _responseHandlerCopy;
122#if defined(_MSC_VER) && (_MSC_VER >= 1900)
128#ifndef ICE_CPP11_MAPPING
149 virtual void ice_response(
bool ok,
const std::vector<Ice::Byte>& bytes) = 0;
158 virtual void ice_response(
bool ok,
const std::pair<const Ice::Byte*, const Ice::Byte*>& bytes) = 0;
174 AMD_Object_ice_invoke(IceInternal::Incoming&);
176 virtual void ice_response(
bool,
const std::vector< ::Ice::Byte>&);
177 virtual void ice_response(
bool,
const std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&);
#define ICE_API
Definition Config.h:197
Base class for generated AMD callback classes.
Definition IncomingAsync.h:20
virtual void ice_exception(const ::std::exception &ex)=0
Completes the asynchronous request with the given exception.
virtual void ice_exception()=0
Completes the asynchronous request with an UnknownException.
Base class for the AMD callback for BlobjectAsync::ice_invoke_async.
Definition IncomingAsync.h:137
virtual ~AMD_Object_ice_invoke()
virtual void ice_response(bool ok, const std::vector< Ice::Byte > &bytes)=0
Completes the request.
virtual void ice_response(bool ok, const std::pair< const Ice::Byte *, const Ice::Byte * > &bytes)=0
Completes the request.
Base class for local Slice classes and interfaces.
Definition LocalObject.h:25
Definition BuiltinSequences.h:113