Exemple #1
0
        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));
        }
Exemple #2
0
        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}");
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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));
        }