Apache.NMS.ActiveMQ.OpenWire.BaseDataStreamMarshaller.TightUnmarshalBrokerError C# (CSharp) Method

TightUnmarshalBrokerError() protected method

protected TightUnmarshalBrokerError ( OpenWireFormat wireFormat, BinaryReader dataIn, BooleanStream bs ) : Apache.NMS.ActiveMQ.Commands.BrokerError
wireFormat OpenWireFormat
dataIn System.IO.BinaryReader
bs BooleanStream
return Apache.NMS.ActiveMQ.Commands.BrokerError
        protected virtual BrokerError TightUnmarshalBrokerError(
            OpenWireFormat wireFormat,
            BinaryReader dataIn,
            BooleanStream bs)
        {
            if (bs.ReadBoolean())
            {
                BrokerError answer = new BrokerError();

                answer.ExceptionClass = TightUnmarshalString(dataIn, bs);
                answer.Message = TightUnmarshalString(dataIn, bs);
                if (wireFormat.StackTraceEnabled)
                {
                    short length = dataIn.ReadInt16();
                    StackTraceElement[] stackTrace = new StackTraceElement[length];
                    for (int i = 0; i < stackTrace.Length; i++)
                    {
                        StackTraceElement element = new StackTraceElement();
                        element.ClassName = TightUnmarshalString(dataIn, bs);
                        element.MethodName = TightUnmarshalString(dataIn, bs);
                        element.FileName = TightUnmarshalString(dataIn, bs);
                        element.LineNumber = dataIn.ReadInt32();
                        stackTrace[i] = element;
                    }
                    answer.StackTraceElements = stackTrace;
                    answer.Cause = TightUnmarshalBrokerError(wireFormat, dataIn, bs);
                }
                return answer;
            }
            else
            {
                return null;
            }
        }