/ src / ARMeilleure / Common / Allocator.cs
Allocator.cs
 1  using System;
 2  
 3  namespace ARMeilleure.Common
 4  {
 5      unsafe abstract class Allocator : IDisposable
 6      {
 7          public T* Allocate<T>(ulong count = 1) where T : unmanaged
 8          {
 9              return (T*)Allocate(count * (uint)sizeof(T));
10          }
11  
12          public abstract void* Allocate(ulong size);
13  
14          public abstract void Free(void* block);
15  
16          protected virtual void Dispose(bool disposing) { }
17  
18          public void Dispose()
19          {
20              Dispose(true);
21              GC.SuppressFinalize(this);
22          }
23      }
24  }