2010-07-06 7 views
0

Je gère un ensemble d'outils C++ (bedtools) utilisés dans le domaine de la génomique/bioinformatique. Plusieurs utilisateurs m'ont demandé de créer des API pour les bibliothèques de sorte que "hooks" soit disponible pour Perl et Python, par exemple (beaucoup de requêtes pour Python). Par conséquent, je suis intéressé à utiliser SWIG, car il a un support pour C++ et en théorie, peut être utilisé pour créer des API à plusieurs langues.Meilleure approche pour créer une API SWIG dans une bibliothèque qui écrit sur stdout?

Toutefois, les outils susmentionnés ont été écrits de sorte qu'ils puissent être "raccordés" ensemble dans un flux UNIX, et en tant que telles, toutes les bibliothèques écrivent dans stdout. J'ai du mal à comprendre comment utiliser SWIG pour rendre la sortie des méthodes existantes (printfs et couts) disponible en tant qu'API. Ma vision idéale serait que la sortie des outils serait un itérateur qui pourrait être bouclé en Python/

Est-ce que quelqu'un a de l'expérience avec ça? Je serais très reconnaissant pour les exemples concrets avec un exemple de code. J'espère qu'il me manque quelque chose de très évident.

Soulagée, Aaron

Répondre

0

@jobu - Le point de SWIG est d'envelopper les années C++ code API afin qu'ils puissent être accessibles par l'autre langue, python, perl, etc et en tant que tel accès par tuyau ne serait pas approprié. Cela ne vous empêcherait en aucun cas de canaliser les sorties ou les entrées si nécessaire, vos utilisateurs n'auraient qu'à appeler les fonctions d'impression appropriées dans leur propre langue.

Mais encore une fois, le but est de fournir un accès basé sur la fonction.