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;
}
}