private void ParseHeaders() { foreach (IMessageHeaderConfig hdrCfg in _msgCfg.Headers) { CheckToken(hdrCfg.Length, hdrCfg, null); MessageElement hdr = hdrCfg.GetNewHeader(); byte[] bytes = new byte[hdrCfg.Length]; Array.Copy(_bytes, _token, bytes, 0, hdrCfg.Length); hdr.SetValue(bytes); _struct.Headers.Add(hdr); if (hdrCfg is MessageBitMapConfig) { MessageBitMap bitMap = bytes; bitMap.FieldSeq = 0; _bitMap.Add(bitMap); } else if (hdrCfg is MessageTypeConfig) { _messageType = bytes; } else { MessageHeaderConfig cfg = (MessageHeaderConfig)hdrCfg; if (!String.IsNullOrEmpty(cfg.Name)) { _headers[cfg.Name] = bytes; } } _token += hdrCfg.Length; } }
internal void Add(MessageBitMap bitMap) { bitMap.StartBit = _bitMaps.Count > 0 ? _bitMaps.Last().StartBit + _bitMaps.Last().Length * 8 : 1; _bitMaps.Add(bitMap); }