Le 26/05/11 17:04, Simon Urbanek a écrit :


On May 26, 2011, at 10:40 AM, Romain Francois wrote:

Hello,

I'm looking for examples of how to handle serialization of external pointers.

We use external pointers intensively in Rcpp for modules and one popular 
request is to have persistence. And I guess we need to be able to 
serialize/deserialize external pointers for this.

Also, module objects are all instances of reference classes, so maybe that can 
be handled at the R level ?


Reference classes have nothing to do with EXTPTR - they are simply built around 
environments and as such have no issues with serialization.

Sure. I understand that.

It just happens that our classes end up encapsulating an external pointer, so I figured instead of dealing with this at the xp level, I could deal with it higher up.

Sort of looking for a class specific serialization. But the comments in serialize.c sounds like a "maybe later" answer to my question.

As for EXTPTR, well, you can perform custom serialization (see refhook in 
serialize() and unserialize()), so to answer your question, yes it's easy to 
serialize EXPPTRs - you just have to provide functions that convert them to 
some string representation and back.

So far, so good, but if you were thinking of using save()/save.image()/load() 
to automatically serialize references in a workspace then the bad new is you 
can't since there is no way to provide the hooks (that's why rJava caches 
serialized representation inside the object so that you can restore the 
pointers on load when you see a NULL pointer with a serialized cache - less 
ideal solution, but doable).

Yes. That's what I'm looking for. I'll check what rJava does. Thanks.

Cheers,
Simon


--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
http://romain-francois.com
|- http://bit.ly/hdKhCy : Rcpp article in JSS
|- http://bit.ly/elZJRJ : Montpellier Comedie Club - Avril 2011
`- http://bit.ly/fhqbRC : Rcpp workshop in Chicago on April 28th

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to