This is an initial refactoring of the dispatch pipeline in Swift. It includes the following:
update the Current class, which used to be generated from local Slice
Most of its properties are now immutable, and adapter is now non-nullable.
update / rename the main dispatcher bridge between Swift and C++. It's now called SwiftDispatcher and implements Ice C++'s Ice::Object directly - no more Blobject.
update the line numbers in the exception classes to be an Int32 instead of Int
simplify the dispatch exception propagation
It was a very convoluted: Error -> ICERuntimeException exception hierarchy -> std::exception_ptr. It's now a much simpler Error -> single ICEDispatchException and ICEDispatchException holds a std::exception_ptr. Nevertheless, this simpler code is temporary since the Swift code should actually marshal the full response, and not create a std::exception_ptr that the C++ code marshals.
removed the interceptor test (interceptor = dispatch interceptor)
This is an initial refactoring of the dispatch pipeline in Swift. It includes the following:
update the Current class, which used to be generated from local Slice Most of its properties are now immutable, and adapter is now non-nullable.
update / rename the main dispatcher bridge between Swift and C++. It's now called SwiftDispatcher and implements Ice C++'s Ice::Object directly - no more Blobject.
update the line numbers in the exception classes to be an Int32 instead of Int
simplify the dispatch exception propagation
It was a very convoluted:
Error -> ICERuntimeException exception hierarchy -> std::exception_ptr
. It's now a much simplerError -> single ICEDispatchException
and ICEDispatchException holds astd::exception_ptr
. Nevertheless, this simpler code is temporary since the Swift code should actually marshal the full response, and not create a std::exception_ptr that the C++ code marshals.