Имам нужда от имплементация на цикличен буфер, която поддържа четци с възможност за търсене. Моят случай на употреба:
В моя код събирам регистрационни съобщения. В крайна сметка потребителят може да посети страница, която ги показва добре форматирани. За да съм сигурен, че съобщенията не запълват RAM, имам нужда от FIFO структура с фиксиран размер. Ако потребителят не посещава страницата дълго време, съобщенията изчезват. Това е добре.
Докато потребителят остава на страницата, към страницата трябва да се добавят нови регистрационни съобщения. Чрез JavaScript потребителят може да определи колко съобщения да запази. Това е напълно независимо от размера на буфера в моето приложение. Така че имам нужда от четец на структурата на данните, който мога да използвам, за да итерирам всички нови елементи.
Ако потребителят презареди страницата или я зареди за първи път, трябва да настроя четеца на най-стария елемент във FIFO.
Тъй като съобщенията се добавят, четецът трябва да се актуализира. Ако браузърът не успее да извлече новите съобщения достатъчно бързо, четецът в крайна сметка трябва да посочи най-старото съобщение във FIFO. Това означава, че потребителят може да пропусне няколко съобщения. Това не е перфектно, но би трябвало да е необичаен случай. Ако читателят можеше да ми каже „пропуснах 5 съобщения“, това би било идеално, но мога да живея и без това.
Знаете ли съществуваща реализация, която предлага това?