Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }