/// <summary> /// offset부터 시작하여 내부의 내용을 복사하고, 다음으로 넣어야 할 offset을 리턴한다. /// </summary> /// <param name="targetBuffer">Target이 되는 Buffer</param> /// <param name="offset">byte size 버퍼 시작점.</param> /// <returns>다음 offset</returns> public int GetDataToBuffer(Array targetBuffer, int offset = 0) { Header.DataSizeField.DataValue = _data.ByteSize; //offset += Header.GetDataToBuffer(targetBuffer, offset);//.copyBufferToArray(targetBuffer, offset); //offset += _data.Fields.GetDataToBuffer(targetBuffer, offset); offset += Header.copyBufferToArray(targetBuffer, offset); _data.GetDataToBuffer(targetBuffer, offset); offset += _data.copyBufferToArray(targetBuffer, offset); return(offset); }
public int GetDataToBuffer(Array targetBuffer, int nowOffset) { if (VariableSizeField != null && VariableField != null) { VariableSizeField.DataValue = Buffer.ByteLength(VariableField.TargetBuffer); //크기 지정.. } foreach (XmlCommandField item in FieldList.Values) { XmlCommandField field = item as XmlCommandField; nowOffset = field.GetDataToBuffer(targetBuffer, nowOffset); } foreach (XmlCommandFields item in FieldsList.Values) { XmlCommandFields fields = item as XmlCommandFields; nowOffset = fields.GetDataToBuffer(targetBuffer, nowOffset); } return(nowOffset); }