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

            if (!element_count.build(byteStream, ref offset))
            {
                return(false);
            }
            if (0 == element_count.value_)
            {
                value_ = null;
                return(true);
            }

            value_ = new T[element_count.value_];
            ProtoCRT_t <T> tmp = new ProtoCRT_t <T>();

            for (UInt32 i = 0; i < element_count.value_; ++i)
            {
                if (!tmp.build(byteStream, ref offset))
                {
                    return(false);
                }
                value_[i] = tmp.value_;
            }
            return(true);
        }
Exemple #2
0
        public bool build(byte[] _byte_stream, ref Int32 _offset)
        {
            ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>();

            if (!element_count.build(_byte_stream, ref _offset))
            {
                return(false);
            }
            for (UInt32 i = 0; i < element_count.value_; ++i)
            {
                T item = new T();
                if (!item.build(_byte_stream, ref _offset))
                {
                    return(false);
                }
                else
                {
                    base.Add(item);
                }
            }
            return(true);
        }
Exemple #3
0
        public bool build(byte[] byteStream, ref Int32 offset)
        {
            ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>();

            if (!element_count.build(byteStream, ref offset))
            {
                return(false);
            }
            if (0 == element_count.value_)
            {
                value_ = "";
                return(true);
            }
            else if (offset + element_count.value_ > byteStream.Length)
            {
                return(false);
            }

            byte[] b_data = new byte[element_count.value_];
            Buffer.BlockCopy(byteStream, offset, b_data, 0, (int)element_count.value_);
            offset += (int)element_count.value_;
            value_  = StringHelper.GB2312ToString(b_data);
            return(true);
        }