пятница, 12 сентября 2025 г.

25.09.13, Alice, CircularBuffer, Project

 Alice, CircularBuffer, Project

F:\Projects\VS\CircularBufferSln\CircularBufferSln.sln

F:\Projects\VS\CircularBufferSln\CircularBuffer02\CircularBuffer02.csproj

Вот полный список публичных методов и конструкторов класса ThreadSafeCircularBuffer:

Конструкторы

public ThreadSafeCircularBuffer(int size)

Основные операции

// Добавление элементов
public void EnqueueLeft(T item)
public void EnqueueRight(T item)

// Удаление элементов
public T DequeueLeft()
public T DequeueRight()

Итераторы и получение элементов

// Стандартные итераторы
public IEnumerator<T> IteratorFromLeft()
public IEnumerator<T> IteratorFromRight()

// Получение всех элементов в список
public void GetAllFromLeft(List<T> result)
public void GetAllFromRight(List<T> result)

// Получение через IEnumerable
public IEnumerable<T> GetAllFromLeft()
public IEnumerable<T> GetAllFromRight()

// Специальные итераторы с петлей
public IEnumerable<T> LoopIteratorFromLeft()
public IEnumerable<T> LoopIteratorFromRight()

Массовая обработка

// Массовое получение элементов
public void GetAllFromLeft(List<T> result)
public void GetAllFromRight(List<T> result)
public bool TryGetAllFromLeft(List<T> result)
public bool TryGetAllFromRight(List<T> result)

Изменение размера

// Изменение размера буфера
public void ReSizeFromLeft(int newSize)
public void ReSizeFromRight(int newSize)

Сдвиги элементов

// Сдвиги с вытеснением
public void ShiftLeft(int positions)
public void ShiftRight(int positions)

// Циклические сдвиги
public void RotateLeft(int positions)
public void RotateRight(int positions)

Свойства и проверки

// Базовые свойства
public int Count { get; }
public int Capacity { get; }

// Проверки состояния
public bool IsEmpty { get; }
public bool IsFull { get; }

// Получение элемента по индексу
public T Peek(int index)

Дополнительные методы

// Очистка буфера
public void Clear()

Особенности реализации

  • Полная потокобезопасность через ReaderWriterLockSlim

  • Поддержка generic-типа T

  • Автоматическая обработка кольцевого буфера

  • Эффективное использование памяти

Класс предоставляет полный набор инструментов для работы с кольцевым буфером, включая:

  • Базовые операции добавления/удаления

  • Различные способы итерации

  • Массовую обработку данных

  • Гибкую работу с размером

  • Безопасную многопоточную работу

Комментариев нет:

Отправить комментарий