DispatchStatus Ice::BlobjectArray::__dispatch(Incoming& in, const Current& current) { pair<const Byte*, const Byte*> inEncaps; Int sz; in.readParamEncaps(inEncaps.first, sz); inEncaps.second = inEncaps.first + sz; vector<Byte> outEncaps; bool ok = ice_invoke(inEncaps, outEncaps, current); if(outEncaps.empty()) { in.__writeParamEncaps(0, 0, ok); } else { in.__writeParamEncaps(&outEncaps[0], static_cast<Ice::Int>(outEncaps.size()), ok); } if(ok) { return DispatchOK; } else { return DispatchUserException; } }
DispatchStatus Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current) { const Byte* inEncaps; Int sz; in.readParamEncaps(inEncaps, sz); AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in); try { ice_invoke_async(cb, vector<Byte>(inEncaps, inEncaps + sz), current); } catch(const ::std::exception& ex) { cb->ice_exception(ex); } catch(...) { cb->ice_exception(); } return DispatchAsync; }
DispatchStatus Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current) { pair<const Byte*, const Byte*> inEncaps; Int sz; in.readParamEncaps(inEncaps.first, sz); inEncaps.second = inEncaps.first + sz; AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in); try { ice_invoke_async(cb, inEncaps, current); } catch(const ::std::exception& ex) { cb->ice_exception(ex); } catch(...) { cb->ice_exception(); } return DispatchAsync; }