El jue, 12-06-2014 a las 17:48 +0900, Martin Jakt escribió: > Hi Fernando and list members, > > > For my purposes, I think I could use S4 objects that make C++ copies of > > themselves at creation time, accessible via an external pointer. All > > methods would then make use of the C++ copies for speed, and at the end > > of the session the S4 copies that live in the R side would be saved. > > I'm wondering how you've gotten on with this. I'm struggling with a somewhat > similar problem in my own package. This uses the 'Rcpp modules' to provide an > interface to a couple of C++ functions. This works very well, but accessing > the objects (created by new()) after a save/reload cycle results in R > crashing. > > I don't really mind to lose the information within the objects and am just > looking for some way to avoid R trying to access invalid pointers after a > reload. My thought was to somehow subvert the 'save' process such that the > pointer address is not written. Can this be done? I tried to set the > serialize() function for the class, but this seems not to be used by save(). > > The behaviour I would be happy with, is something similar to what you get > with > RMySQL connections. These (understandably) get dropped between sessions, and > need to be recreated by calling the constructor. > > I would appreciate any advice or pointers. I've tried searching the > documentation for answers, but have failed to find anything that I can find. > > I'd also like to say that I _really_ appreciate Rcpp, especially the > sourceCpp > function; it's makes R comfortable to use. Thanks to the developers. > > Martin >
If losing the information is no problem, and you only want to make sure your pointers are valid, perhaps you could add a timestamp to them when created. On loading your package you would have to note the time (perhaps setting a global variable?) and then before using each pointer check that it is current. ft. _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel