Encapsulates a single search result that is in response to an asynchronous search operation.
Inheritance: LdapMessage
コード例 #1
0
        /// <summary>
        ///     Private implementation of getResponse.
        ///     Has an Integer object as a parameter so we can distinguish
        ///     the null and the message number case.
        /// </summary>
        private LdapMessage GetResponse(int?msgid)
        {
            object      resp;
            LdapMessage response;

            if ((resp = Agent.GetLdapMessage(msgid)) == null)
            {
                // blocks
                return(null); // no messages from this agent
            }

            // Local error occurred, contains a LocalException
            if (resp is LdapResponse ldapResponse)
            {
                return(ldapResponse);
            }

            // Normal message handling
            var message = (RfcLdapMessage)resp;

            switch (message.Type)
            {
            case LdapMessage.SearchResponse:
                response = new LdapSearchResult(message);
                break;

            case LdapMessage.SearchResultReference:
                response = new LdapSearchResultReference(message);
                break;

            case LdapMessage.ExtendedResponse:
                response = ExtResponseFactory.ConvertToExtendedResponse(message);
                break;

            case LdapMessage.IntermediateResponse:
                response = IntermediateResponseFactory.ConvertToIntermediateResponse(message);
                break;

            default:
                response = new LdapResponse(message);
                break;
            }

            return(response);
        }
コード例 #2
0
        /// <summary> Private implementation of getResponse.
        /// Has an Integer object as a parameter so we can distinguish
        /// the null and the message number case
        /// </summary>
//		private LdapMessage getResponse(System.Int32 msgid)
        private LdapMessage getResponse(Integer32 msgid)
        {
            System.Object  resp;
            RfcLdapMessage message;
            LdapMessage    response;

            if ((resp = agent.getLdapMessage(msgid)) == null)
            {
                // blocks
                return(null); // no messages from this agent
            }
            // Local error occurred, contains a LocalException
            if (resp is LdapResponse)
            {
                return((LdapMessage)resp);
            }
            // Normal message handling
            message = (RfcLdapMessage)resp;
            switch (message.Type)
            {
            case LdapMessage.SEARCH_RESPONSE:
                response = new LdapSearchResult(message);
                break;

            case LdapMessage.SEARCH_RESULT_REFERENCE:
                response = new LdapSearchResultReference(message);
                break;

            case LdapMessage.EXTENDED_RESPONSE:
                ExtResponseFactory fac = new ExtResponseFactory();
                response = ExtResponseFactory.convertToExtendedResponse(message);
                break;

            case LdapMessage.INTERMEDIATE_RESPONSE:
                response = IntermediateResponseFactory.convertToIntermediateResponse(message);
                break;

            default:
                response = new LdapResponse(message);
                break;
            }
            return(response);
        }
コード例 #3
0
        /// <summary> Private implementation of getResponse.
        /// Has an Integer object as a parameter so we can distinguish
        /// the null and the message number case
        /// </summary>
        //        private LdapMessage getResponse(System.Int32 msgid)
        private LdapMessage getResponse(Integer32 msgid)
        {
            System.Object resp;
            RfcLdapMessage message;
            LdapMessage response;
            if ((resp = agent.getLdapMessage(msgid)) == null)
            {
                // blocks
                return null; // no messages from this agent
            }
            // Local error occurred, contains a LocalException
            if (resp is LdapResponse)
            {
                return (LdapMessage) resp;
            }
            // Normal message handling
            message = (RfcLdapMessage) resp;
            switch (message.Type)
            {

                case LdapMessage.SEARCH_RESPONSE:
                    response = new LdapSearchResult(message);
                    break;

                case LdapMessage.SEARCH_RESULT_REFERENCE:
                    response = new LdapSearchResultReference(message);
                    break;

                case LdapMessage.EXTENDED_RESPONSE:
                    ExtResponseFactory fac = new ExtResponseFactory();
                    response = ExtResponseFactory.convertToExtendedResponse(message);
                    break;

                case LdapMessage.INTERMEDIATE_RESPONSE                       :
                    response = IntermediateResponseFactory.convertToIntermediateResponse(message);
                    break;

                default:
                    response = new LdapResponse(message);
                    break;

            }
            return response;
        }