BF2Statistics.Net.BufferManager.BufferManager C# (CSharp) Method

BufferManager() public method

Creates a new instance of BufferManager
public BufferManager ( int NumEventArgs, int BytesToAllocPerEventArg ) : System
NumEventArgs int Specifies the maximum number of SocketAsyncEventArgs objects that will be assigned buffer space at once
BytesToAllocPerEventArg int Specifies the number of bytes each SocketAsyncEventArgs object will be allocated from the buffer
return System
        public BufferManager(int NumEventArgs, int BytesToAllocPerEventArg)
        {
            // Argument Checks
            if (NumEventArgs <= 0)
                throw new ArgumentException("Argument must be greater than 0", "NumEventArgs");
            else if (BytesToAllocPerEventArg <= 0)
                throw new ArgumentException("Argument must be greater than 0", "BytesToAllocPerEventArg");

            // Create the buffer array
            this.Buffer = new byte[NumEventArgs * BytesToAllocPerEventArg];
            this.BytesToAllocPerEventArg = BytesToAllocPerEventArg;
            this.Disposed = false;
            int CurrentOffset = 0;

            // Create our BufferDataTokens
            for (int i = 0; i < NumEventArgs; i++)
            {
                // Create the new data token
                FreeBufferSpace.Push(new BufferDataToken(CurrentOffset, BytesToAllocPerEventArg));

                // Increase the current offset for the next object
                CurrentOffset += BytesToAllocPerEventArg;
            }
        }