/// <summary> /// Este método le indica al contexto de análisis y contrucción de mensajes /// que se ha consumido el mensaje que se estaba desformateando. /// </summary> public void MessageHasBeenConsumed() { _currentMessage = null; _currentField = 0; _currentBitMap = null; _signaled = false; _packetHeaderDataStripped = false; _payload = null; }
/// <summary> /// Construye un mapa de bits exactamente igual a otro dado. /// </summary> /// <param name="fieldNumber"> /// Es el número del campo en el mensaje. /// </param> /// <param name="bitmap"> /// Es el mapa de bits que se toma como referencia para crear uno nuevo. /// </param> public BitMapField(int fieldNumber, BitMapField bitmap) : base(fieldNumber) { _lowerFieldNumber = bitmap.LowerFieldNumber; _upperFieldNumber = bitmap.UpperFieldNumber; byte[] bitmapValue = bitmap.GetBytes(); _value = new byte[bitmapValue.Length]; for (int i = 0; i < _value.Length; i++) { _value[i] = bitmapValue[i]; } }
/// <summary> /// Construye un nuevo contexto de análisis y contrucción de mensajes. /// </summary> /// <param name="bufferSize"> /// Es el tamaño inicial del buffer donde residirán los datos a desformatear. /// </param> /// <exception cref="ArgumentException"> /// En caso de que <paramref name="bufferSize"/> sea menor a 1. /// </exception> public ParserContext(int bufferSize) { if (bufferSize < 1) { throw new ArgumentException(SR.MustBeGreaterThanZero, "bufferSize"); } _buffer = new byte[bufferSize]; _lowerDataBound = _upperDataBound = 0; _currentMessage = null; _currentField = 0; _decodedLength = int.MinValue; _currentBitMap = null; _signaled = false; _packetHeaderDataStripped = false; _payload = null; }
/// <summary> /// Retorna la representación XML en una cadena de caracteres de un /// mapa de bits. /// </summary> /// <param name="renderingMap">Es el mapa de todos los objetos que representan /// objetos. Vea log4net.</param> /// <param name="component">Es el BitMap a ser representado en XML.</param> /// <param name="indent">Es la indentación a emplear en la representación /// XML.</param> /// <returns>Retorna una cadena de caracteres con la representación en XML /// del mapa de bits.</returns> public override string DoRender(RendererMap renderingMap, MessagingComponent component, string indent) { if (!(component is BitMapField)) { throw new ArgumentException(SR.ComponentIsNotABitmapField, "component"); } BitMapField bitmap = ( BitMapField)component; StringBuilder render = new StringBuilder(); bool comma = false; string bitmapIndent = indent; if (bitmap.FieldNumber >= 0) { render.Append(indent); render.Append("<"); render.Append(MessagingComponentXmlRendering.XmlFieldTag); render.Append(" "); render.Append(MessagingComponentXmlRendering.XmlNumberAttr); render.Append("=\""); render.Append(bitmap.FieldNumber.ToString(CultureInfo.CurrentCulture)); render.Append("\" "); render.Append(MessagingComponentXmlRendering.XmlTypeAttr); render.Append("=\""); render.Append(MessagingComponentXmlRendering.XmlComponentVal); render.Append("\">"); render.Append(Environment.NewLine); bitmapIndent += " "; } render.Append(bitmapIndent); render.Append("<"); render.Append(MessagingComponentXmlRendering.XmlBitMapTag); render.Append(" "); render.Append(MessagingComponentXmlRendering.XmlValueAttr); render.Append("=\""); for (int i = bitmap.LowerFieldNumber; i <= bitmap.UpperFieldNumber; i++) { if (bitmap.IsSet(i)) { if (comma) { render.Append(string.Format(",{0}", i)); } else { comma = true; render.Append(i); } } } render.Append("\" />"); render.Append(Environment.NewLine); if (bitmap.FieldNumber >= 0) { render.Append(indent); render.Append("</"); render.Append(MessagingComponentXmlRendering.XmlFieldTag); render.Append(">"); } return(render.ToString()); }