예제 #1
0
        public bool serialize(byte[] byteStream, ref Int32 offset)
        {
            ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>();

            if (null == value_ || 0 == value_.Length)
            {
                element_count.value_ = 0;
            }
            else
            {
                element_count.value_ = (UInt32)value_.Length;
            }
            if (!element_count.serialize(byteStream, ref offset))
            {
                return(false);
            }
            if (null == value_ || 0 == value_.Length)
            {
                return(true);
            }
            ProtoCRT_t <T> tmp = new ProtoCRT_t <T>();

            foreach (var item in value_)
            {
                tmp.value_ = item;
                if (!tmp.serialize(byteStream, ref offset))
                {
                    return(false);
                }
            }
            return(true);
        }
예제 #2
0
        public bool serialize(byte[] byteStream, ref Int32 offset)
        {
            byte[] r_byte = null;
            ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>(0);

            if (null == value_ || 0 == value_.Length)
            {
                element_count.value_ = 0;
            }
            else
            {
                r_byte = StringHelper.String2GB2312(value_);
                element_count.value_ = (UInt32)r_byte.Length;
            }
            if (!element_count.serialize(byteStream, ref offset))
            {
                return(false);
            }
            if (null == r_byte)
            {
                return(true);
            }
            if (offset + r_byte.Length > byteStream.Length)
            {
                return(false);
            }

            Buffer.BlockCopy(r_byte, 0, byteStream, offset, r_byte.Length);
            offset += r_byte.Length;
            return(true);
        }
예제 #3
0
        public bool serialize(byte[] byteStream, ref Int32 offset)
        {
            ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>((UInt32)base.Count);

            if (!element_count.serialize(byteStream, ref offset))
            {
                return(false);
            }
            foreach (var item in this)
            {
                if (!item.serialize(byteStream, ref offset))
                {
                    return(false);
                }
            }
            return(true);
        }