Novell.Directory.Ldap.Rfc2251.RfcLdapMessage.RfcLdapMessage C# (CSharp) Method

RfcLdapMessage() private method

private RfcLdapMessage ( Asn1Decoder dec, System in_Renamed, int len ) : System
dec Asn1Decoder
in_Renamed System
len int
return System
        public RfcLdapMessage(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
            : base(dec, in_Renamed, len)
        {
            sbyte[] content;
            System.IO.MemoryStream bais;

            // Decode implicitly tagged protocol operation from an Asn1Tagged type
            // to its appropriate application type.
            Asn1Tagged protocolOp = (Asn1Tagged) get_Renamed(1);
            Asn1Identifier protocolOpId = protocolOp.getIdentifier();
            content = ((Asn1OctetString) protocolOp.taggedValue()).byteValue();
            bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));

            switch (protocolOpId.Tag)
            {

                case LdapMessage.SEARCH_RESPONSE:
                    set_Renamed(1, new RfcSearchResultEntry(dec, bais, content.Length));
                    break;

                case LdapMessage.SEARCH_RESULT:
                    set_Renamed(1, new RfcSearchResultDone(dec, bais, content.Length));
                    break;

                case LdapMessage.SEARCH_RESULT_REFERENCE:
                    set_Renamed(1, new RfcSearchResultReference(dec, bais, content.Length));
                    break;

                case LdapMessage.ADD_RESPONSE:
                    set_Renamed(1, new RfcAddResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.BIND_RESPONSE:
                    set_Renamed(1, new RfcBindResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.COMPARE_RESPONSE:
                    set_Renamed(1, new RfcCompareResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.DEL_RESPONSE:
                    set_Renamed(1, new RfcDelResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.EXTENDED_RESPONSE:
                    set_Renamed(1, new RfcExtendedResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.INTERMEDIATE_RESPONSE:
                    set_Renamed(1, new RfcIntermediateResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.MODIFY_RESPONSE:
                    set_Renamed(1, new RfcModifyResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.MODIFY_RDN_RESPONSE:
                    set_Renamed(1, new RfcModifyDNResponse(dec, bais, content.Length));
                    break;

                default:
                    throw new System.SystemException("RfcLdapMessage: Invalid tag: " + protocolOpId.Tag);

            }

            // decode optional implicitly tagged controls from Asn1Tagged type to
            // to RFC 2251 types.
            if (size() > 2)
            {
                Asn1Tagged controls = (Asn1Tagged) get_Renamed(2);
                //   Asn1Identifier controlsId = protocolOp.getIdentifier();
                // we could check to make sure we have controls here....

                content = ((Asn1OctetString) controls.taggedValue()).byteValue();
                bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
                set_Renamed(2, new RfcControls(dec, bais, content.Length));
            }
            return ;
        }

Same methods

RfcLdapMessage::RfcLdapMessage ( Asn1Object origContent, RfcRequest origRequest, System dn, System filter, bool reference ) : System
RfcLdapMessage::RfcLdapMessage ( Asn1Sequence op ) : System
RfcLdapMessage::RfcLdapMessage ( Asn1Sequence op, RfcControls controls ) : System
RfcLdapMessage::RfcLdapMessage ( RfcRequest op ) : System
RfcLdapMessage::RfcLdapMessage ( RfcRequest op, RfcControls controls ) : System