Лучший подход для создания SWIG API для библиотеки, которая пишет в стандартный вывод? - PullRequest
0 голосов
/ 06 июля 2010

У меня есть набор инструментов C ++ ( bedtools ), которые используются в области геномики / биоинформатики.Несколько пользователей просили, чтобы я создал API для библиотек так, чтобы, например, для Perl и Python были доступны "ловушки" (много запросов для Python).Поэтому меня интересует использование SWIG, так как он поддерживает C ++ и теоретически может использоваться для создания API для нескольких языков.

Однако вышеупомянутые инструменты были написаны так, чтобы их можно было «объединить» в потоке UNIX, и поэтому все библиотеки записывают в стандартный вывод.Я изо всех сил пытаюсь выяснить, как использовать SWIG, чтобы сделать вывод из существующих методов (printfs и couts) доступным как API.Мое идеальное видение было бы, что выходные данные инструментов были бы итератором, который мог бы быть зациклен в Python /

Кто-нибудь имеет опыт с этим?Буду очень признателен за конкретные примеры с примером кода.Надеюсь, мне не хватает чего-то очень очевидного.

С благодарностью, Аарон

1 Ответ

0 голосов
/ 07 июля 2010

@ jobu - Смысл SWIG состоит в том, чтобы обернуть API-интерфейсы кода C ++, чтобы к ним можно было обращаться через другой язык, python, perl и т. Д., И поэтому такой доступ на основе каналов не был бы уместен. Это никоим образом не помешает вам публиковать выходные данные или входные данные по мере необходимости, ваши пользователи должны будут только вызывать соответствующие функции печати на своем родном языке.

Но опять же, все дело в том, чтобы обеспечить доступ на основе функций.

...