summaryrefslogtreecommitdiff
path: root/cpp/src/slice2swift/Gen.cpp
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2019-03-18 13:22:11 -0400
committerJoe George <joe@zeroc.com>2019-03-18 13:22:11 -0400
commite05a325acf76f9f5afee8c0f6d29779f2f382c7c (patch)
tree636d085f03a937e73fcf815ff41f84f4d234200c /cpp/src/slice2swift/Gen.cpp
parentAsync fixes (diff)
downloadice-e05a325acf76f9f5afee8c0f6d29779f2f382c7c.tar.bz2
ice-e05a325acf76f9f5afee8c0f6d29779f2f382c7c.tar.xz
ice-e05a325acf76f9f5afee8c0f6d29779f2f382c7c.zip
Proxy unmarshaling cleanup for streaming
Diffstat (limited to 'cpp/src/slice2swift/Gen.cpp')
-rw-r--r--cpp/src/slice2swift/Gen.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/cpp/src/slice2swift/Gen.cpp b/cpp/src/slice2swift/Gen.cpp
index 86d25b75bad..1041d9c0b2c 100644
--- a/cpp/src/slice2swift/Gen.cpp
+++ b/cpp/src/slice2swift/Gen.cpp
@@ -866,6 +866,26 @@ Gen::ProxyVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "return " << prxI << ".uncheckedCast(prx: prx, facet: facet, context: context) as " << prxI << "?";
out << eb;
+ //
+ // InputStream extension
+ //
+ out << sp;
+ out << nl << "public extension " << getUnqualified("Ice.InputStream", swiftModule);
+ out << sb;
+
+ out << nl << "func read(_ prx: " << prx << ".Protocol) throws -> " << prx << "?";
+ out << sb;
+ out << nl << "return try read() as " << prxI << "?";
+ out << eb;
+
+ out << sp;
+ out << nl << "func read(tag: Int32, prx: " << prx << ".Protocol) throws -> " << prx << "?";
+ out << sb;
+ out << nl << "return try read(tag: tag) as " << prxI << "?";
+ out << eb;
+
+ out << eb;
+
out << sp;
out << nl << "public extension " << prx;
out << sb;