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); }
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; }