Beispiel #1
0
            internal override PduI Parse(UnparsedPdu raw)
            {
                try
                {
                    switch (raw.GetType())
                    {
                        case 1:
                            m_fsm.FireReceived(m_fsm.rq = AAssociateRQ.Parse(raw));
                            m_fsm.ChangeState(m_fsm.STA3);
                            return m_fsm.rq;

                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                            throw new PduException("Unexpected " + raw, new AAbort(AAbort.SERVICE_PROVIDER, AAbort.UNEXPECTED_PDU));

                        case 7:
                            m_fsm.FireReceived(m_fsm.aa = AAbort.Parse(raw));
                            m_fsm.ChangeState(m_fsm.STA1);
                            return m_fsm.aa;

                        default:
                            throw new PduException("Unrecognized " + raw, new AAbort(AAbort.SERVICE_PROVIDER, AAbort.UNRECOGNIZED_PDU));
                    }
                }
                catch (PduException ule)
                {
                    try
                    {
                        Write(ule.AAbort);
                    }
                    catch (System.Exception ignore)
                    {
                    }
                    throw ule;
                }
            }
        public virtual PduI readFrom(System.IO.Stream ins, byte[] buf)
        {
            UnparsedPdu raw = new UnparsedPdu(ins, buf);
            switch (raw.GetType())
            {
                case 1:
                    return AAssociateRQ.Parse(raw);

                case 2:
                    return AAssociateAC.Parse(raw);

                case 3:
                    return AAssociateRJ.Parse(raw);

                case 4:
                    return PDataTF.Parse(raw);

                case 5:
                    return AReleaseRQ.Parse(raw);

                case 6:
                    return AReleaseRP.Parse(raw);

                case 7:
                    return AAbort.Parse(raw);

                default:
                    throw new PduException("Unrecognized " + raw, new AAbort(AAbort.SERVICE_PROVIDER, AAbort.UNRECOGNIZED_PDU));

            }
        }
Beispiel #3
0
            internal override PduI Parse(UnparsedPdu raw)
            {
                try
                {
                    switch (raw.GetType())
                    {
                        case 1:
                        case 2:
                        case 3:
                            throw new PduException("Unexpected " + raw, new AAbort(AAbort.SERVICE_PROVIDER, AAbort.UNEXPECTED_PDU));

                        case 4:
                            return m_fsm.FireReceived(PDataTF.Parse(raw));

                        case 5:
                            PduI pdu = m_fsm.FireReceived(AReleaseRQ.Parse(raw));
                            m_fsm.ChangeState(m_fsm.requestor?m_fsm.STA9:m_fsm.STA10);
                            return pdu;

                        case 6:
                            m_fsm.FireReceived(pdu = AReleaseRP.Parse(raw));
                            m_fsm.ChangeState(m_fsm.STA1);
                            return pdu;

                        case 7:
                            m_fsm.FireReceived(m_fsm.aa = AAbort.Parse(raw));
                            m_fsm.ChangeState(m_fsm.STA1);
                            return m_fsm.aa;

                        default:
                            throw new PduException("Unrecognized " + raw, new AAbort(AAbort.SERVICE_PROVIDER, AAbort.UNRECOGNIZED_PDU));

                    }
                }
                catch (PduException ule)
                {
                    try
                    {
                        Write(ule.AAbort);
                    }
                    catch (System.Exception ignore)
                    {
                    }
                    throw ule;
                }
            }