NetworkCommsDotNet.Tools.StreamTools.ThreadSafeStream.ToArray C# (CSharp) Method

ToArray() public method

Returns data from the specified portion of Stream
public ToArray ( long start, long length, int numberZeroBytesPrefix, int numberZeroBytesAppend ) : byte[]
start long The start position of the desired bytes
length long The total number of desired bytes, not including the zero byte prefix and append parameters
numberZeroBytesPrefix int If non zero will append N 0 value bytes to the start of the returned array
numberZeroBytesAppend int If non zero will append N 0 value bytes to the end of the returned array
return byte[]
            public byte[] ToArray(long start, long length, int numberZeroBytesPrefix = 0, int numberZeroBytesAppend = 0)
            {
                if (length > int.MaxValue)
                    throw new ArgumentOutOfRangeException("length", "Unable to return array whose size is larger than int.MaxValue. Consider requesting multiple smaller arrays.");

                lock (streamLocker)
                {
                    if (start + length > _innerStream.Length)
                        throw new ArgumentOutOfRangeException("length", "Provided start and length parameters reference past the end of the available stream.");

                    _innerStream.Seek(start, SeekOrigin.Begin);
                    byte[] returnData = new byte[length + numberZeroBytesPrefix + numberZeroBytesAppend];
                    _innerStream.Read(returnData, numberZeroBytesPrefix, (int)length);
                    return returnData;
                }
            }

Same methods

StreamTools.ThreadSafeStream::ToArray ( int numberZeroBytesPrefex ) : byte[]