Мы используем некоторую библиотеку C в нашем проекте Java. Несколько лет назад какой-то другой разработчик, который ушел в отставку несколько лет назад (как всегда), создал все оболочки для нас. Оболочки были сгенерированы swig, но файл интерфейса теперь потерян.
Основная идея библиотеки и оболочек для нее следующая:
- Там только одна функция, которая возвращает указатель на некоторый сложный объект. И есть обертка для этой функции.
- Сложный объект представляет собой древовидную структуру с десятками типов и типов узлов (структур C), используемых для их представления. Существуют сотни оболочек для каждого поля каждого типа, и мы пытаемся использовать их все.
Библиотека была обновлена некоторое время назад, и теперь есть некоторые новые данные, о которых мы еще не знаем, но хотели бы использовать. Эти данные содержатся в некоторых объектах, косвенно содержащихся или на которые ссылается объект, созданный функцией, которую мы вызываем (добавлены некоторые новые поля и типы).
Я знаю, что я не должен вносить какие-либо изменения в обертки вручную и должен скорее изменять интерфейс, но, как я уже писал, он отсутствует. Пока я хочу создать оболочки только для нескольких типов, которые добавляются / изменяются, и их в наших старых оболочках, но позже я хочу начать создание файла интерфейса, который определит, «что и как должно быть упаковано».
Все необходимые нам определения определены в одном заголовочном файле. Можно ли сказать swig генерировать оболочки для каждого типа в этом заголовке? Если так, как я могу написать такой файл интерфейса?