Thomas Friedrichsmeier
2005-Sep-12 16:02 UTC
[Rd] ptr_R_EditFile, R_WriteConsole, and R_ShowMessage
Hi! I have an application embedding R. For that of course, it is great, that since R 2.1.0 the pointers in Rinterface.h allow me to override some callbacks, easily. However, after implementing/overriding a couple of those, I'm a bit confused about when exactly they get called. So, here are a few specific questions: ptr_R_EditFile: I can find exactly one point in the R-sources where ptr_R_EditFile acutally seems to be used (at least if non-NULL). By default the pointer is set to NULL with the comment "for futur expansion". I wonder: 1) Why is this needed at all? Shouldn't the more generic R_EditFiles (ptr_R_EditFiles) suffice for the more specific case of editing a single file? 2) Why is ptr_R_EditFiles only available on aqua? Ok, it says on other platforms this does not currently work. But if I'd be able to create a working implementation in my application, why shouldn't I be allowed to override it (ok, I still can by just declaring it extern, but it's not exported in rinterface.h)? R could still check ptr_R_EditFiles for NULL before using it. 3) Am I correct in assuming that the parameter char* buf is supposed to keep the filename? R_ShowMessage (ptr_R_ShowMessage): This one, too, seems to have very few use-cases (but at least some). Most seem to be for errors during startup. I wonder: 1) If this callback is most useful during startR (...), can it even be used in a meaningful way? After all, startR () also initializes all the callbacks to the standard values. 2) That aside, what is the policy for R_ShowMessage? Can I assume all messages being shown this way are errors of some sort? Or could there also be mere informational messages (which in a GUI would be presented in slightly different ways)? R_WriteConsole (ptr_R_WriteConsole): This is a great callback. It will allow me to get rid of my hacky sinks (currently I use a sink to a file to retrieve the output). Even better would be an additional callback ptr_R_WriteErr. Is there any particular reason, why this does not exist? Could it be added? Thanks! Thomas
Thomas Friedrichsmeier
2005-Sep-12 16:37 UTC
[Rd] ptr_R_EditFile, R_WriteConsole, and R_ShowMessage
> R_ShowMessage (ptr_R_ShowMessage): > This one, too, seems to have very few use-cases (but at least some). Most > seem to be for errors during startup. > I wonder: > 1) If this callback is most useful during startR (...), can it even be used > in a meaningful way? After all, startR () also initializes all the > callbacks to the standard values.Sorry, of course I meant to write Rf_initEmbeddedR (...). I got confused as I have this and a few other initialization calls in a functions called startR (...).