예제 #1
0
        public XmlCommandHeader Clone()
        {
            XmlCommandHeader newHeader = new XmlCommandHeader();
            int count = 0;

            foreach (XmlCommandField field in FieldList.Values)
            {
                XmlCommandField newField = field.Clone();
                newHeader.FieldList.Add(field.Name, newField);
                newHeader.addItem(count++, field.DataSize, true);
                if (field.FieldType == FieldTypes.DataSize)
                {
                    newHeader._dataSizeField = newField;
                }
                else if (field.Name.ToLower().Equals("id"))
                {
                    newHeader._idField = newField;
                }
                else if (field.Name.ToLower().Equals("tag"))
                {
                    newHeader._tagField = newField;
                }
            }
            newHeader.setBuffSize();
            int offset = 0;

            foreach (XmlCommandField field in newHeader.FieldList.Values)
            {
                field.SetTargetBuffer(newHeader.buffer, offset);
                offset    += field.DataSize;
                field.Data = FieldList[field.Name].Data;
            }

            return(newHeader);
        }
예제 #2
0
        public XmlCommandStructDefinition(String headerFileName, StructType structType)
            : base()
        {
            _structType = structType;

            _header = new XmlCommandHeader();
            _data   = new XmlCommandFields(null, _structType);


            if (HeaderPath == null)
            {
                HeaderPath = Path.GetFullPath(Directory.GetCurrentDirectory() + "\\..\\TestNgineData\\Headers");
            }
            _headerFileName = headerFileName;
        }