#data-structures #ada
Вопрос:
Пакет GNAT.Bounded_Buffers
обеспечивает простую реализацию ограниченного буфера, но, к сожалению, вставку в буферные блоки до тех пор, пока в буфере не освободится место. Мне также не хватает записи для извлечения всех данных, хранящихся в буфере одновременно.
Прежде чем я начну реализовывать свой собственный пакет кольцевого буфера с отсутствующей функциональностью, я хотел бы знать, может ли такой пакет уже быть доступен?
Комментарии:
1. Какое поведение вы хотите, когда буфер заполнен? Два варианта-блокировка записи или перезапись самых старых данных. Перезапись допустима, если вашей системе нужно только выполнить выборку буфера, а не обрабатывать каждое значение, записанное в буфер.
2. Самые старые данные в буфере должны быть перезаписаны.
3. Сколько элементов вам нужно в буфере, если вы производите выборку данных? Если вы читаете весь буфер сразу, как вы хотите указать порядок, в котором записываются данные? Я спрашиваю, потому что обнаружил, что буфер выборки с размером 1 элемент часто-это все, что нужно.
4. Возможно, вы найдете мою статью sworthodoxy.blogspot.com/2015/05/… чтобы быть чем-то полезным.
5. Кроме того, что произойдет, если вы попытаетесь прочитать из пустого буфера?