Noble Connect
Add relays and punchthrough to Mirror or UNet
NobleConnect.BufferPool Class Reference

Inherits IDisposable.

Public Member Functions

 BufferPool (int numBuffers, int bufferSize, int frontPadding=0)
 
PoolBuffer GetFreeBuffer ()
 
void Dispose ()
 

Public Attributes

int usedBufferCount = 0
 
object disposeLock = new object()
 
Semaphore usedBufferLock
 This is how GetFreeBuffers() waits for a buffer to be free More...
 

Properties

int totalBuffers [get]
 

Constructor & Destructor Documentation

◆ BufferPool()

NobleConnect.BufferPool.BufferPool ( int  numBuffers,
int  bufferSize,
int  frontPadding = 0 
)

Member Function Documentation

◆ Dispose()

void NobleConnect.BufferPool.Dispose ( )

◆ GetFreeBuffer()

PoolBuffer NobleConnect.BufferPool.GetFreeBuffer ( )

Member Data Documentation

◆ disposeLock

object NobleConnect.BufferPool.disposeLock = new object()

◆ usedBufferCount

int NobleConnect.BufferPool.usedBufferCount = 0

◆ usedBufferLock

Semaphore NobleConnect.BufferPool.usedBufferLock

This is how GetFreeBuffers() waits for a buffer to be free

There are numBuffers unlocked locks initially, representing the unused buffers. GetGreeBuffers() tries to get an unlocked lock. If there are none available, WaitOne() will wait for one. Getting the lock automatically locks it. Freeing a buffer unlocks a lock.

Property Documentation

◆ totalBuffers

int NobleConnect.BufferPool.totalBuffers
get