Ограниченное окно видимости на динамически обновляемом графике

У меня есть эта нетривиальная задача (по крайней мере, для меня) создать API для работы с набором данных, который является своего рода графиком, который необходимо динамически обновлять (изменения количества вершин, их свойств и связей между ними).

Набор данных имеет геопространственные данные. Связи между вершинами обрабатываются с помощью идентификаторов объектов и их отношений. Итак, это база данных PostGIS в интерпретации C ++.

Приемлемым ограничением является то, что мы разрешаем обновления только для данных, которые «далеки» от наблюдаемого в данный момент местоположения. Это предполагает, что API ограничивает видимость графика определенной областью. Это окно ограниченной видимости движется по известной траектории.

Теперь вопрос заключается в том, как должны выглядеть API и внутренняя реализация, чтобы обеспечить доступ к данным (вершинам, их свойствам и соединениям) таким образом, чтобы нам не приходилось сохранять след после инициализации (и предоставления через API). ) данных за все время работы программы. По сути, пользователь должен иметь возможность работать с данными, отображаемыми через текущее окно ограниченной видимости, и не должен иметь доступа к данным, которые были доступны через старое окно, но не в текущем.

Простой пример API-интерфейса, который может дать сбой: предоставить прямой доступ к данным в графе. Пользователь может сохранить необработанный указатель на данные. После перемещения окна этот указатель может стать недействительным, но пользователь никогда не узнает об этом. Некоторые из пользовательских указателей будут по-прежнему указывать на существующие данные (доступные через текущее окно), тогда как другие будут указывать на неуправляемую память (потому что старые данные были освобождены).

Такие вещи, как общие указатели, не применимы, потому что граф имеет круглые связи.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector