decode method
Implementation
static XdrStellarMessage decode(XdrDataInputStream stream) {
XdrStellarMessage decodedStellarMessage = XdrStellarMessage();
XdrMessageType discriminant = XdrMessageType.decode(stream);
decodedStellarMessage.discriminant = discriminant;
switch (decodedStellarMessage.discriminant) {
case XdrMessageType.ERROR_MSG:
decodedStellarMessage.error = XdrError.decode(stream);
break;
case XdrMessageType.HELLO:
decodedStellarMessage.hello = XdrHello.decode(stream);
break;
case XdrMessageType.AUTH:
decodedStellarMessage.auth = XdrAuth.decode(stream);
break;
case XdrMessageType.DONT_HAVE:
decodedStellarMessage.dontHave = XdrDontHave.decode(stream);
break;
case XdrMessageType.GET_PEERS:
break;
case XdrMessageType.PEERS:
int peerssize = stream.readInt();
decodedStellarMessage.peers = List<XdrPeerAddress>(peerssize);
for (int i = 0; i < peerssize; i++) {
decodedStellarMessage.peers[i] = XdrPeerAddress.decode(stream);
}
break;
case XdrMessageType.GET_TX_SET:
decodedStellarMessage.txSetHash = XdrUint256.decode(stream);
break;
case XdrMessageType.TX_SET:
decodedStellarMessage.txSet = XdrTransactionSet.decode(stream);
break;
case XdrMessageType.TRANSACTION:
decodedStellarMessage.transaction =
XdrTransactionEnvelope.decode(stream);
break;
case XdrMessageType.GET_SCP_QUORUMSET:
decodedStellarMessage.qSetHash = XdrUint256.decode(stream);
break;
case XdrMessageType.SCP_QUORUMSET:
decodedStellarMessage.qSet = XdrSCPQuorumSet.decode(stream);
break;
case XdrMessageType.SCP_MESSAGE:
decodedStellarMessage.envelope = XdrSCPEnvelope.decode(stream);
break;
case XdrMessageType.GET_SCP_STATE:
decodedStellarMessage.getSCPLedgerSeq = XdrUint32.decode(stream);
break;
}
// TODO: survey
return decodedStellarMessage;
}