示例#1
0
        public void ReplaceToken(ByteArrayToken byteArrayToken, int value)
        {
            if ((byteArrayToken.Index + 1) > _list.Count)
            {
                throw new InvalidOperationException("no more space to add an integer.");
            }

            if (byteArrayToken.BytesToAdd > 2)
            {
                throw new NotSupportedException("ByteArrayBuilder supports only tokens with a length of one or two bytes.");
            }

            if (byteArrayToken.BytesToAdd == 1)
            {
                if (value > byte.MaxValue)
                {
                    throw new ArgumentException("Value to big to pass to an single byte");
                }

                this.ReplaceToken(byteArrayToken, Convert.ToByte(value));
                return;
            }

            var byteArray = IntToByteArray(value);

            this._list[byteArrayToken.Index]     = byteArray[0];
            this._list[byteArrayToken.Index + 1] = byteArray[1];
        }
示例#2
0
        /// <summary>
        /// Adds the length byteArrayToken.
        /// </summary>
        /// <returns>itself</returns>
        public ByteArrayBuilder AddToken(byte length, out ByteArrayToken byteArrayToken)
        {
            byteArrayToken = new ByteArrayToken(this._list.Count, length);

            for (var i = 0; i < length; i++)
            {
                _list.Add(0);
            }

            return(this);
        }
示例#3
0
 public void ReplaceToken(ByteArrayToken byteArrayToken, byte value)
 {
     _list[byteArrayToken.Index] = value;
 }