示例#1
0
func (o *FileInfoTruncated) DecodeXDRFrom(xr *xdr.Reader) error {
	o.Name = xr.ReadStringMax(8192)
	o.Flags = xr.ReadUint32()
	o.Modified = int64(xr.ReadUint64())
	(&o.Version).DecodeXDRFrom(xr)
	o.LocalVersion = int64(xr.ReadUint64())
	_BlocksSize := int(xr.ReadUint32())
	if _BlocksSize < 0 {
		return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000)
	}
	if _BlocksSize > 1000000 {
		return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000)
	}

	buf := make([]byte, 64)
	for i := 0; i < _BlocksSize; i++ {
		size := xr.ReadUint32()
		o.CachedSize += int64(size)
		xr.ReadBytesMaxInto(64, buf)
	}
	return xr.Error()
}