Implementation
static XdrSCVal decode(XdrDataInputStream stream) {
XdrSCVal decoded = XdrSCVal(XdrSCValType.decode(stream));
switch (decoded.discriminant) {
case XdrSCValType.SCV_U63:
decoded.u63 = XdrInt64.decode(stream);
break;
case XdrSCValType.SCV_U32:
decoded.u32 = XdrUint32.decode(stream);
break;
case XdrSCValType.SCV_I32:
decoded.i32 = XdrInt32.decode(stream);
break;
case XdrSCValType.SCV_STATIC:
decoded.ic = XdrSCStatic.decode(stream);
break;
case XdrSCValType.SCV_OBJECT:
int objPresent = stream.readInt();
if (objPresent != 0) {
decoded.obj = XdrSCObject.decode(stream);
}
break;
case XdrSCValType.SCV_SYMBOL:
decoded.sym = stream.readString();
break;
case XdrSCValType.SCV_BITSET:
decoded.bits = XdrUint64.decode(stream);
break;
case XdrSCValType.SCV_STATUS:
decoded.status = XdrSCStatus.decode(stream);
break;
}
return decoded;
}