/// <summary> Выделить новый буфер и перевести его в состояние "используется".</summary> /// <param name="size">Размер буфера в байтах</param> /// <param name="cleanOnRelease">true, если буфер надо очищать при возврате в пул.</param> /// <remarks>Этот метод может выделить буфер не того размера, который был запрошен пользователем. /// Умолчательная реализация метода дополняет размер буфера до кратного <see cref="Granularity"/>.</remarks> /// <seealso cref="Allocate"/> protected virtual Buffer NewAllocatedBuffer(int size, bool cleanOnRelease) { int mod = size % granularity; size = granularity * ((size / granularity) + ((size % granularity > 0) ? 1 : 0)); Buffer r = new Buffer(this, size); r.Allocate(cleanOnRelease); return r; }