示例#1
0
        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;
            }
        }
示例#2
0
 private void CompileHeaders()
 {
     foreach (IMessageHeaderConfig hdrCfg in _msgCfg.Headers)
     {
         MessageElement hdr = hdrCfg.GetNewHeader();
         _struct.AddHeader(hdr);
     }
 }
示例#3
0
 internal void AddHeader(MessageElement hdr)
 {
     _headers.Add(hdr);
     if (hdr is MessageBitMap)
     {
         ((MessageBitMap)hdr).FieldSeq = 0;
         _bitMap.Add((MessageBitMap)hdr);
     }
     if (hdr is MessageTypeHeader)
     {
         this.MessageType = (MessageTypeHeader)hdr;
     }
 }