[Rcpp-devel] Reading-list when creating a mapping for a semi-complex C++ library
Steffen Neumann
sneumann at ipb-halle.de
Sat Jul 23 23:24:25 CEST 2011
Hi,
I am asking for a reading list (rather than the actual answers,
certainly it is somewhere in the great and vast Documentation!)
or best practices creating R bindings to a moderately complex
C++ library.
We have created https://github.com/sneumann/mzR
which is an R package to read mass spectrometry data,
using the http://proteowizard.sourceforge.net/ (short: pwiz) library.
The first thing we did was to create a C++ wrapper class,
which encapsulated the "complexity" of pwiz, and would have
a number ov Rcpp::List::create(...) to prepare the return
values and a single Rcpp-module to call into the wrapper class.
That works fine, and now we want to go one step further ;-)
The class hierarchy in pwiz has a class "MSData",
which contains a class "Run" which contains a class "SpectrumListPtr"
which is a "boost::shared_ptr<SpectrumList>" etc. You get the idea.
An example of what one can do in C++ is line 60..100
http://proteowizard.svn.sourceforge.net/viewvc/proteowizard/trunk/pwiz/pwiz_tools/examples/mscat.cpp?revision=2874&view=markup
and it would be great to be able to do something similar in R.
Questions:
1) Is it feasible to create Rcpp-modules for each of these classes,
so that accessing them can be programmed in R ?
2) Or does it make more sense to create C++ wrappers which are simpler
to add as Rcpp-module(s), and to keep the R side simpler ?
3) Which of the existing packages using Rcpp comes closest
(in terms of architecture) to what I want, so I can go
and read their code for inspiration ?
Yours,
Steffen
--
IPB Halle AG Massenspektrometrie & Bioinformatik
Dr. Steffen Neumann http://www.IPB-Halle.DE
Weinberg 3 http://msbi.bic-gh.de
06120 Halle Tel. +49 (0) 345 5582 - 1470
+49 (0) 345 5582 - 0
sneumann(at)IPB-Halle.DE Fax. +49 (0) 345 5582 - 1409
More information about the Rcpp-devel
mailing list