private IAkkaPdu DecodeControlPdu(AkkaControlMessage controlPdu) { switch (controlPdu.CommandType) { case CommandType.ASSOCIATE: if (controlPdu.HasHandshakeInfo) { var handshakeInfo = controlPdu.HandshakeInfo; return(new Associate(new HandshakeInfo(DecodeAddress(handshakeInfo.Origin), (int)handshakeInfo.Uid))); } break; case CommandType.DISASSOCIATE: return(new Disassociate(DisassociateInfo.Unknown)); case CommandType.DISASSOCIATE_QUARANTINED: return(new Disassociate(DisassociateInfo.Quarantined)); case CommandType.DISASSOCIATE_SHUTTING_DOWN: return(new Disassociate(DisassociateInfo.Shutdown)); case CommandType.HEARTBEAT: return(new Heartbeat()); } throw new PduCodecException(string.Format("Decoding of control PDU failed, invalid format, unexpected {0}", controlPdu)); }
private IAkkaPdu DecodeControlPdu(AkkaControlMessage controlPdu) { switch (controlPdu.CommandType) { case CommandType.Associate: var handshakeInfo = controlPdu.HandshakeInfo; if (handshakeInfo != null) // HasHandshakeInfo { return(new Associate(new HandshakeInfo(DecodeAddress(handshakeInfo.Origin), (int)handshakeInfo.Uid))); } break; case CommandType.Disassociate: return(new Disassociate(DisassociateInfo.Unknown)); case CommandType.DisassociateQuarantined: return(new Disassociate(DisassociateInfo.Quarantined)); case CommandType.DisassociateShuttingDown: return(new Disassociate(DisassociateInfo.Shutdown)); case CommandType.Heartbeat: return(new Heartbeat()); } throw new PduCodecException($"Decoding of control PDU failed, invalid format, unexpected {controlPdu}"); }
private static ByteString ConstructControlMessagePdu(CommandType code, AkkaHandshakeInfo handshakeInfo = null) { var controlMessage = new AkkaControlMessage() { CommandType = code }; if (handshakeInfo != null) { controlMessage.HandshakeInfo = handshakeInfo; } return new AkkaProtocolMessage() { Instruction = controlMessage }.ToByteString(); }
private ByteString ConstructControlMessagePdu(CommandType code, AkkaHandshakeInfo.Builder handshakeInfo = null) { var controlMessageBuilder = AkkaControlMessage.CreateBuilder() .SetCommandType(code); if (handshakeInfo != null) { controlMessageBuilder = controlMessageBuilder.SetHandshakeInfo(handshakeInfo); } return (AkkaProtocolMessage.CreateBuilder().SetInstruction(controlMessageBuilder.Build()).Build().ToByteString()); }
private IAkkaPdu DecodeControlPdu(AkkaControlMessage controlPdu) { switch (controlPdu.CommandType) { case CommandType.ASSOCIATE: if (controlPdu.HasHandshakeInfo) { var handshakeInfo = controlPdu.HandshakeInfo; return new Associate(new HandshakeInfo(DecodeAddress(handshakeInfo.Origin), (int)handshakeInfo.Uid)); } break; case CommandType.DISASSOCIATE: return new Disassociate(DisassociateInfo.Unknown); case CommandType.DISASSOCIATE_QUARANTINED: return new Disassociate(DisassociateInfo.Quarantined); case CommandType.DISASSOCIATE_SHUTTING_DOWN: return new Disassociate(DisassociateInfo.Shutdown); case CommandType.HEARTBEAT: return new Heartbeat(); } throw new PduCodecException(string.Format("Decoding of control PDU failed, invalid format, unexpected {0}", controlPdu)); }